Courses
Natural Sciences
Computer Science (CSCI)
- CSCI-A 121 Cyberspace Influences on Privacy, Security and Society (3 cr.) P: CSCI-C 106 or EDUC-W 200 with a C or better. Examines the impacts of computerization in the United States. From family life, private organizations, and public organizations to government at all levels, computerization is affecting and creating the complex interdependencies between technology and social groups. We will survey recent changes to many topics, including intellectual property rights, e-government, online security, online privacy, digital currency, online gambling, universal access, online education, medical devices, and media convergence.
- CSCI-A 201 Introduction to Programming (3 cr.) Fundamental programming constructs, including loops, arrays, classes, and files. General problem-solving techniques. Emphasis on modular programming, user-interface design, and developing good programming style. Not intended for computer science majors or minors.
- CSCI-A 202 Computer Programming (3 cr.) P: CSCI-A201 or CSCI-C 201 with a C or better. Computer programming, algorithms, program structure, arrays, stacks-procedures, functions, modularization parameter-passing-mechanisms, recursion vs. iteration, and issues of programming style. Computer solutions of problems in diverse fields.
- CSCI-A 205 Computer Programming (4 cr.) Computer programming, algorithms, program structure, arrays, stacks-procedures, functions, modularization parameter-passing-mechanisms, recursion vs. iteration, and issues of programming style. Computer solutions of problems in diverse fields.
- CSCI-A 211 Word Processing Applications (3 cr.) P: CSCI-C 106 or EDUC-W 200 with a C or better. This course introduces the student to word processing techniques used in creating letters, forms, and reports. The student will use styles, outlines, tables, and field codes in documents and templates. Advanced topics include merging documents, customizing the Word environment, and integrating the features of Word with other software applications.
- CSCI-A 212 Spreadsheet Applications (3 cr.) P: CSCI-C 106 or EDUC-W 200 with a C or better. This course introduces the student to spreadsheet techniques used in creating professional-looking worksheets. Students will use formulas, functions, charts, graphs, and logical functions. Advanced topics include advanced filtering, importing data, creating pivot tables, database functions, and integrating Excel with other software applications.
- CSCI-A 213 Database Applications (3 cr.) P: CSCI-C 106 or EDUC-W 200 with a C or better. This course introduces the student to database techniques. The student will develop tables, custom forms, reports, and queries. Advanced topics include developing ASP pages for the World Wide Web, developing and understanding relationship database design, macros, managing, securing a database, and integrating Access with the Web and other programs.
- CSCI-A 221 Multimedia Programming (1.5 cr.) P: CSCI-C 106 or EDUC-W 200 with a C or better. This course introduces the student to creating dynamic Web pages. Emphasis is placed on problem-solving techniques using a Web-based programming language. Lecture and laboratory.
- CSCI-A 247 Network Technologies and Administration (3 cr.) P: CSCI-C 106 or EDUC-W 200 with a C or better. Introduction to network principles and current network technology, both hardware and software. Network administration tools and techniques. Laboratory provides practical experience.
- CSCI-A 290 TOOLS FOR COMPUTING (3 cr.) Exploration of topics in computing. Common topics include tools for power users.
- CSCI-A 346 USER-INTERFACE PROGRAMMING (3 cr.) Learn to prototype and build graphical user interfaces for computer applications. Contemporary software design methodology. Students design and implement prototype interfaces to applications provided by the instructor. Extensive use will be made of both commercial and experimental software tools.
- CSCI-A 348 Mastering The World Wide Web (3-4 cr.) P: Two semesters of programming experience, or equivalent, and some knowledge of operating systems. Project-oriented course leading to ability to maintain a fully functional web site. Topics include internet network protocols and web programming, server administration, protocols, site design, and searching and indexing technologies.
- CSCI-B 438 Fundamentals of Computer Networks (3 cr.) P: CSCI-C 202 or INFO-I 211 with a C or better. Theory and practice of data communications between computing devices. Topics include network architecture and topology, wide-area networks, local-area networks, and ISO network layers.
- CSCI-B 439 Network Security (4 cr.) The study and practice of network security. Threats to information confidentiality, integrity, and availability in different internet layers, and defense mechanisms that control these threats. The course also provides a foundation in network security: cryptography, primitives/protocols, authentication, authorization and access control technologies; programming assignments, security tools, and a project.
- CSCI-B 461 Database Concepts (4 cr.) P: CSCI-C 251 or INFO-I 201, CSCI-C 335 and CSCI-C 343 with grades of C or better. Introduction to database concepts and systems. Topics include database models and systems: hierarchical, network, relational, and object-oriented; database design principles; structures for efficient data access; query languages and processing; database applications development; views; security; concurrency; recovery. Students participate in a project to design, implement, and a query a database, using a standard database system.
- CSCI-B 481 Interactive Graphics (3 cr.) P: CSCI-C 343, MATH-M 303. Computer graphics techniques. Introduction to graphics hardware and software. Two-dimensional graphics methods, transformations, and interactive methods. Three-dimensional graphics, transformations, viewing geometry, object modeling, and interactive manipulation methods. Basic lighting and shading. Video and animation methods. Credit given for only one of CSCI-B 481 and CSCI-B 581.
- CSCI-B 490 SEMINAR IN COMPUTER SCIENCE (3 cr.) Special topics in computer science.
- CSCI-B 503 ALGORITHMS DESIGN AND ANALYSIS (3 cr.) Models, algorithms, recurrences, summations, growth rates. Probabilistic tools, upper and lower bounds; worst-case and average-case analysis, amortized analysis, dynamization. Comparison-based algorithms: search, selection, sorting, hashing. Information extraction algorithms (graphs, databases). Graphs algorithms: spanning trees, shortest paths, connectivity, depth-first search, breadth-first search.
- CSCI-B 545 Enterprise Hardware Infrastructure (3 cr.) P: CSCI-C 335 and CSCI-B 438 with grades of C or better, or instructor consent. This course explores the management of technology resources across the infrastructure with a focus on hardware. Topics include network architecture and its management, the relationship of network hardware to operating systems and network protocols, and infrastructure communication.
- CSCI-B 549 ENTERPRISE SFTWRE ARCHITECTURE (3 cr.) This course explores the analysis, design, implementation, evaluation, and management of enterprise IT solutions. Emphasis will be placed on planning and modeling characteristics of the enterprise. Topics include functional modeling, physical architecture design, security planning and recovery issues, project management, emerging technologies, and ethical, financial and global considerations.
- CSCI-B 561 ADVANCED DATABASE CONCEPTS (3 cr.) Database models and systems: especially relational and object-oriented; relational database design theory; structures for efficient data access; query languages and processing; database applications development; views. Transaction management: concurrency and recovery.
- CSCI-C 100 Computing Tools (1 cr.) An introduction to computing applications useful in college and career work. Topics include microcomputer operating systems; word processing; spreadsheet, database, and communications software; and other software applications.
- CSCI-C 105 Introduction to C/C++ Programming (3 cr.) This course is an introduction to computer programming using C/C++. The emphasis is on structured programming principles, and understanding the basic concepts that apply to scientific and engineering problems. Among topics covered in this course are: problem solving using top down design, using flowcharts to explain the program logic, selection structure, repetition structure, bitwise operations, arrays, pointers, strings, passing arguments, and sequential files.
- CSCI-C 106 Introduction to Computers and Their Use (3 cr.) An introduction to computers and their use in information systems: use of standard application programs; foundations of information systems design and development; survey of programming languages. Satisfies the basic computer literacy requirement.
- CSCI-C 201 Computer Programming II (4 cr.) Two years of high school mathematics and some programming experience is recommended. Computer programming and algorithms. Basic programming and program structure. Computer solutions of problems. A computer language will be taught. Lecture and discussion.
- CSCI-C 202 Computer Programming (4 cr.) P: CSCI-C 201 or INFO-I 210 with a C or better. Computer programming, algorithms, program structure, arrays, stacks, queues, binary trees; procedures, functions, parameter-passing mechanisms, recursion vs. iteration, and issues of programming style. Computer solutions of problems such as data analysis, sorting, searching, and string and text manipulation.
- CSCI-C 203 Cobol and File Processing (3-4 cr.) P: CSCI-C 201. Computer programming and algorithms. Application to large file processing functions of an organization.
- CSCI-C 237 Operating Systems and Job Processing (3-4 cr.) P: CSCI-C 202, CSCI-C 335. A functional level approach to the study of operating systems. The major components of at least two operating systems are studied. Various jobs are run under these operating systems.
- CSCI-C 251 Foundations of Digital Computing (4 cr.) P: CSCI-C 201 or INFO-I 210 and MATH-M 118 or higher with grades of C or better. MATH-M 119 is recommended. Boolean algebra and propositional logic. Set algebra, including mappings and relations. Elements of graph theory and statistical analysis. Application of all topics to computer programming.
- CSCI-C 311 Programming Languages (4 cr.) P: CSCI-C 202 or INFO-I 211 and CSCI-C 335 with grades of C or better. Systematic approach to programming languages. Relationships among languages, properties and features of languages, and the computer environment necessary to use languages. Lecture and laboratory.
- CSCI-C 335 Computer Structures (4 cr.) P: CSCI-C 201 or INFO-I 210 with a C or better. CSCI-C 202 or INFO-I 211 is recommended. Structure and internal operation of computers, stressing the architecture and assembly language programming of a specific computer. Additional topics include digital hardware and microprogramming. Lecture and laboratory.
- CSCI-C 343 Data Structures (4 cr.) P: CSCI-C 202 or INFO-I 210 and CSCI-C 251 or INFO-I 201 with grades of C or better. Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structure data, techniques for operation on data structures. Lecture and laboratory.
- CSCI-C 346 Software Engineering (4 cr.) P: CSCI-C 343 with a C or better. The theory and practice of software engineering applied to the design and implementation of software systems. Course topics include practical issues of software requirement analysis and specification, design, modeling, tools, project management, construction, testing, deployment, and operation and maintenance, as well as computing ethics and professional practice.
- CSCI-C 390 Individual Programming Laboratory (1-3 cr.) P: Department consent. Before enrolling, a student must arrange for an instructor to supervise the activity. Student will design, program, verify, and document a special project assignment selected in consultation with the instructor. May be repeated up to a maximum of 6 credits.
- CSCI-C 421 Digital Design (3-4 cr.) P: CSCI-C 251, CSCI-C 335. Organization and logic design of digital systems. Course presents a structured design philosophy, emphasizing hardware building blocks, circuit synthesis, microprogramming. In the laboratory students build, study, and debug a working minicomputer from elementary hardware components. Lecture and laboratory.
- CSCI-C 431 Assemblers and Compilers I (4 cr.) P: CSCI-C 311, CSCI-C 335, and CSCI-C 343 with grades of C or better. Design and construction of assemblers, macroprocessors, linkers, loaders, and interpreters. Compiler design and construction, including lexical analysis, parsing, code generation, and optimization.
- CSCI-C 437 Computer Security (4 cr.) Introduction to the principles, mechanisms, policies, and implementation for computer security; learn how attacks are carried out, defenses against attacks, and designing systems to withstand them.
- CSCI-C 445 Information Systems I (3-4 cr.) P: CSCI-C 343. Analysis, design and implementation of information systems from user needs to a running system. Hardware organization and its impact on storage structures. Structures and techniques for accessing and updating information: primary and secondary indices, sequential and multilinked files. Computer modeling of information using hierarchal, network and relational techniques and operations with these models. Current database system and query languages.
- CSCI-C 455 Analysis of Algorithms (4 cr.) P: MATH-M 216 or MATH-M 120 and CSCI-C 343 with grades of C or better. Models, algorithms, recurrences, summations, growth rates. Probabilistic tools, upper and lower bounds; worst-case and average case analysis, amortized analysis, dynamization. Comparison-based algorithms: search, selection, sorting, hashing. Information extraction algorithms (graphs, databases). Graph algorithms: spanning trees, shortest paths, connectivity, depth-first search, breadth-first search.
- CSCI-C 458 Intelligent Robots (4 cr.) P: CSCI-C 343 with C or better or consent of instructor. This course presents a broad overview of robotics in practice and research with topics including: robot control, perception, localization, planning, mapping, navigation, learning, and swarm approaches. The course focuses on a hands-on approach to introducing the concepts in robotics, using autonomous mobile robots.
- CSCI-C 463 Artificial Intelligence I (4 cr.) P: CSCI-C 311 and CSCI-C 343 with grades of C or better. Historical roots, philosophical thesis, and goals of artificial intelligence research. Basic problem-solving methods. Heuristics and heuristic search. Game-playing programs. Reasoning and knowledge representation. Predicate calculus, semantic networks, frames, and other representation systems. Introduction to production systems. Goal-directed systems.
- CSCI-C 490 Seminar in Computer Science (1-3 cr.) P: Consent of instructor. Special topics in computer science. May be repeated for a maximum of 6 credit hours.
- CSCI-N 211 Introduction to Databases (3 cr.) P: CSCI-C 106 or EDUC-W 200 with a C or better. Summary of basic computing topics. Introduction to database design concepts, creation of user forms, development of databases, querying techniques, and building reports. Focus on relational database systems from development and administration point of view. Lecture and laboratory.
- CSCI-N 223 Digital Fluency (3 cr.) This course provides a fundamental understanding of technology planning, choosing computer applications, utilizing multiple data sources in the digital world, extracting and presenting data using different digital application platforms.
- CSCI-N 341 Introduction to Client-side Web Programming (3 cr.) P: CSCI-C 201 or INFO-I 210 with a C or better. Introduction to programming focusing on the client sided programming environment. Essential algorithm design, client-side programming using languages commonly embedded in Web browsers. Lecture and laboratory.
- CSCI-N 342 Server-side Programming for the Web (3 cr.) P: CSCI-C 201 or INFO-I 210 with a C or better. Designing and building applications on a Web server. Focuses on issues of programming applied to Web servers. Emphasis on relational databases concepts, data design, languages used on the server, transaction handling, and integration of data into Web applications.
- CSCI-P 422 Web Enterprise Systems (4 cr.) In this class, you will learn to use various software packages that support web programming systems. Topics include appropriate programming language essentials, database design and development, application configuration, web controls, user authentications, form validations, master pages, email notifications, payment handling, transaction security, etc. Students will develop an advanced web/database application with respect to current industry standards of web/database applications.
- CSCI-P 434 Distributed Systems (4 cr.) P: CSCI-C 343 and CSCI-C 237. Principles of distributed systems including system design, distributed algorithms, consistency and concurrency, and reliability and availability. The role of these foundational issues in distributed file systems, distributed computing, and data-driven systems.
- CSCI-P 435 Mobile Computing (4 cr.) This course explores a number of different mobile computing related topics and technologies. The course requires the completion of a number of smaller programming labs in order to get hands on experience with some of these topics. Additionally, there is a semester long project that requires the student to design, develop, and implement his or her own app. Mobile computing topics include but are not limited to: model view controller, XML, JSON, parsing of XML and/or JSON, interprocess communication, basics of built-in GUI widgets and components, persistent data, user interface design, event handling and callback operations, touches and swipes, utilizing and communicating with cloud-based services, monetizing an app.
- CSCI-P 436 Introduction to Operating Systems (4 cr.) P: CSCI-C 343 & CSCI-C335 with a C or better. C: CSCI-C311. Organization and construction of computer systems that manage computational resources. Topics include specification and implementation of concurrency, process scheduling, storage management, device handlers, and mechanisms for event coordination. Lecture and laboratory.
- CSCI-P 445 Capstone Project I Design (2-4 cr.) P: CSCI-C 346 and ENG-W 234 or ENG-W 290 with grades of C or better. Student teams, under supervision of university faculty or an external sponsor, choose a design project, investigate alternate solutions and submit a preliminary project design. Periodic oral and written project progress reports are required. Course topics include practical issues of software design, development, quality assurance, and deployment, as well as computing ethics and professional practice. This course should be completed in the student's final Fall semester. CSCI-P445 and P446 must be completed as a Fall/Spring Sequence. If a student fails to complete CSCI-P446 the semester immediately following the completion of CSCI-P445, the student must repeat CSCI-P445 in a future semester in order to complete the sequence.
- CSCI-P 446 Capstone Project II Implementation (2-4 cr.) P: CSCI-P 445 with a C or better in the semester immediately preceding enrollment in P446. Student teams, under the supervision of university faculty or an external sponsor, complete the design and implement the project began in CSCI-P 445. Periodic oral and written project progress reports are required. The project will result in a software application, written report, and final presentation. Course topics include practical issues of software design development, quality assurance, and deployment, as well as computing ethics and professional practice. This course should be completed in the student's final Spring semester. CSCI-P445 and P446 must be completed as a Fall/Spring Sequence. If a student fails to complete CSCI-P446 the semester immediately following the completion of CSCI-P445, the student must repeat CSCI-P445 in a future semester in order to complete the sequence.