Computer Science Courses

Courses

Course usage information

CS 102. Fundamentals of Computer and Information Security. 4 Credits.

This course introduces fundamental concepts, terminologies, principles, methods, and scenarios of computer and information security.

Course usage information

CS 110. Fluency with Information Technology. 4 Credits.

Introduction to information technology (IT), the study of computer-based information systems. Basics of the Internet and World Wide Web. Students create websites using XHTML and CSS.

Course usage information

CS 111. Introduction to Web Programming. 4 Credits.

Project-based approach to learning computer programming by building interactive web pages using JavaScript and XHTML. Programming concepts including structured and object-oriented program design. CS 110 recommended preparation.
Prereq: MATH 101 or equivalent.

Course usage information

CS 122. Introduction to Programming and Problem Solving. 4 Credits.

Computational problem solving, algorithm design, data structures, and programming using a multi-paradigm programming language. Introduces techniques for program design, testing, and debugging.
Prereq: MATH 101 or equivalent.

Course usage information

CS 196. Field Studies: [Topic]. 1-2 Credits.

Repeatable.

Course usage information

CS 198. Workshop: [Topic]. 1-2 Credits.

Repeatable.

Course usage information

CS 199. Special Studies: [Topic]. 1-5 Credits.

Repeatable.

Course usage information

CS 199L. Special Studies in Computer Science: [Topic]. 1-5 Credits.

Repeatable.

Course usage information

CS 210. Computer Science I. 4 Credits.

Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence with CS 211, CS 212.
Prereq: MATH 112Z. Prior programming experience strongly encouraged.

Course usage information

CS 211. Computer Science II. 4 Credits.

Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence with CS 210, CS 212.
Prereq: CS 210.

Course usage information

CS 212. Computer Science III. 4 Credits.

Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence with CS 210, CS 211.
Prereq: CS 211.

Course usage information

CS 299. Special Studies: [Topic]. 1-5 Credits.

Repeatable.

Course usage information

CS 313. Intermediate Data Structures. 4 Credits.

Design and analysis of data structures as means of engineering efficient software; attention to data abstraction and encapsulation. Lists, trees, heaps, stacks, queues, dictionaries, priority queues.
Prereq: CS 210, CS 211, CS 212, MATH 231, MATH 232 with grades of B- or better.

Course usage information

CS 314. Computer Organization. 4 Credits.

Introduction to computer organization and instruction-set architecture -- digital logic design, binary arithmetic, design of central processing unit and memory, machine-level programming.
Prereq: CS 210, CS 211, CS 212 with grades of B- or better.

Course usage information

CS 315. Intermediate Algorithms. 4 Credits.

Algorithm design, worst-case and average-behavior analysis, correctness, computational complexity.
Prereq: CS 313.

Course usage information

CS 322. Introduction to Software Engineering. 4 Credits.

A project-intensive introduction to software engineering intended to build skills, knowledge, and habits of mind that prepare students for 400-level computer science courses, internships, and other software.
Prereq: CS 210, CS 211, CS 212 with grades of B- or better.

Course usage information

CS 330. C/C++ and Unix. 4 Credits.

Practical software design and programming activities in a C/C++ and Unix environment, with emphasis on the details of C/C++ and good programming style and practices.
Prereq: CS 314.

Course usage information

CS 333. Applied Cryptography. 4 Credits.

This course provides a systematic study of cryptography and its application. It covers cryptographic algorithms, including symmetric-key cryptography, public-key cryptography, cryptanalysis, cryptographic hash functions, and their usage toward message authentication codes, digital signatures, key management and distribution, and user authentication protocols.
Prereq: CS 212.

Course usage information

CS 372M. Machine Learning for Data Science. 4 Credits.

Introduction to Machine Learning, with an emphasis on topics relevant for data science. Multilisted with DSCI 372M.
Prereq: CS 212, DSCI 345M, MATH 342.

Course usage information

CS 399. Special Studies: [Topic]. 1-5 Credits.

Repeatable when the topic changes.

Course usage information

CS 400M. Temporary Multilisted Course. 1-5 Credits.

Repeatable

Course usage information

CS 401. Research: [Topic]. 1-16 Credits.

Repeatable.
Prereq: CS 313.

Course usage information

CS 402. Supervised College Teaching. 1-2 Credits.

Repeatable.
Prereq: CS 313.

Course usage information

CS 403. Thesis. 1-12 Credits.

Repeatable.
Prereq: CS 313.

Course usage information

CS 404. Internship: [Topic]. 1-4 Credits.

Repeatable.
Prereq: CS 313.

Course usage information

CS 405. Reading and Conference: [Topic]. 1-12 Credits.

Repeatable up to five times.
Prereq: CS 313.

Course usage information

CS 406. Practicum: [Topic]. 1-2 Credits.

Supervised consulting. Students provide learning assistance in computer science courses. Repeatable for a maximum of 4 credits.
Prereq: CS 313.

Course usage information

CS 407. Seminar: [Topic]. 1-5 Credits.

Repeatable when the topic changes. Opportunity to study in greater depth specific topics arising out of other courses.
Prereq: CS 313.

Course usage information

CS 408. Workshop: [Topic]. 1-21 Credits.

Repeatable.
Prereq: CS 313.

Course usage information

CS 409. Terminal Project. 1-12 Credits.

Repeatable.
Prereq: CS 313.

Course usage information

CS 410. Experimental Course: [Topic]. 1-5 Credits.

Repeatable when the topic changes.

Course usage information

CS 413. Advanced Data Structures. 4 Credits.

Complex structures, storage management, sorting and searching, hashing, storage of texts, and information compression.
Prereq: CS 315.

Course usage information

CS 415. Operating Systems. 4 Credits.

Principles of operating system design. Process and memory management, concurrency, scheduling, input-output and file systems, security.
Prereq: CS 330.

Course usage information

CS 420. Automata Theory. 4 Credits.

Provides a mathematical basis for computability and complexity. Models of computation, formal languages, Turing machines, solvability. Nondeterminism and complexity classes.
Prereq: CS 315.

Course usage information

CS 422. Software Methodology I. 4 Credits.

Technical and nontechnical aspects of software development, including specification, planning, design, development, management and maintenance of software projects. Student teams complete projects.
Prereq: CS 313.

Course usage information

CS 423. Software Methodology II. 4 Credits.

Application of concepts and methodologies covered in CS 422/CS 522. Student teams complete a large system design and programming project. Final system specification, test plan, user documentation, and system walk throughs.
Prereq: CS 422 with a grade of B- or better.

Course usage information

CS 425. Principles of Programming Languages. 4 Credits.

Syntax and semantics. Scope rules, environments, stores, denoted and expressed values, procedures, and parameters. Definitional interpreters. Types, overloading, parametric polymorphism, and inheritance. Varieties of abstraction.
Prereq: CS 315.

Course usage information

CS 429. Computer Architecture. 4 Credits.

RISC (reduced instruction-set computer) and CISC (complex instruction-set computer) design, storage hierarchies, high-performance processor design, pipelining, vector processing, networks, performance analysis.
Prereq: CS 313, CS 314, CS 330.

Course usage information

CS 431. Introduction to Parallel Computing. 4 Credits.

Parallel architecture, theory, algorithms, and programming with emphasis on parallel programming, focusing on models, languages, libraries, and runtime systems.
Prereq: CS 330.

Course usage information

CS 432. Introduction to Networks. 4 Credits.

Principles of computer network design. Link technologies, packet switching, routing, inter-networking, reliability. Internet protocols. Programming assignments focus on protocol design.
Prereq: CS 330. CS 415 recommended.

Course usage information

CS 433. Computer and Network Security. 4 Credits.

Security for various aspects of computers and networks. Elementary cryptography, program security, trusted operating systems, network security, privacy, and legal and ethical issues.
Prereq: CS 415.

Course usage information

CS 434. Computer and Network Security II. 4 Credits.

This course covers security threats and solutions for distributed systems and networks, particularly the Internet, the Internet of Things, and distributed systems based on them.
Prereq: CS 433.

Course usage information

CS 436. Secure Software Development. 4 Credits.

This course establishes a foundation for applying security principles to the lifecycle of software development in order to minimize software vulnerabilities and counter cyber threats.
Prereq: CS 330.

Course usage information

CS 441. Introduction to Computer Graphics. 4 Credits.

Introduction to the hardware, geometrical transforms, interaction techniques, and shape representation schemes that are important in interactive computer graphics. Programming assignments using contemporary graphics hardware and software systems.
Prereq: CS 330.

Course usage information

CS 443. User Interfaces. 4 Credits.

Introduction to user interface software engineering. Emphasis on theory of interface design, understanding the behavior of the user, and implementing programs on advanced systems.
Prereq: CS 313.

Course usage information

CS 445. Modeling and Simulation. 4 Credits.

Theoretical foundations and practical problems for the modeling and computer simulation of discrete and continuous systems. Simulation languages, empirical validation, applications in computer science.
Prereq: CS 315, CS 330.

Course usage information

CS 451. Database Processing. 4 Credits.

Fundamental concepts of DBMS. Data modeling, relational models and normal forms. File organization and index structures. SQL, embedded SQL, and concurrency control.
Prereq: CS 313, CS 314.

Course usage information

CS 453. Data Mining. 4 Credits.

Databases, machine learning, artificial intelligence, statistics, and data visualization. Examines data warehouses, data preprocessing, association and classification rule mining, and cluster analysis.
Prereq: CS 451/CS 551.

Course usage information

CS 461. Introduction to Compilers. 4 Credits.

Lexical analysis, parsing, attribution, code generation.
Prereq: CS 314, CS 425. CS 420 strongly recommended.

Course usage information

CS 471. Introduction to Artificial Intelligence. 4 Credits.

Basic themes, issues, and techniques of artificial intelligence, including agent architecture, knowledge representation and reasoning, problem solving and planning, game playing, and learning.
Prereq: CS 315.

Course usage information

CS 472. Machine Learning. 4 Credits.

A broad introduction to machine learning and its established algorithms. Topics include concept learning, decision trees, neural network.
Prereq: CS 315.

Course usage information

CS 473. Probabilistic Methods for Artificial Intelligence. 4 Credits.

Fundamental techniques for representing problems as probability distributions, performing inference, and learning from data. Topics include Bayesian and Markov networks, variable elimination, loopy belief propagation, and parameter.
Prereq: CS 315.

Course usage information

CS 500M. Temporary Multilisted Course. 1-5 Credits.

Repeatable.

Course usage information

CS 503. Thesis. 1-16 Credits.

Repeatable.

Course usage information

CS 507. Seminar: [Topic]. 1-5 Credits.

Repeatable. Opportunity to study in greater depth specific topics arising out of other courses.

Course usage information

CS 508. Workshop: [Topic]. 1-21 Credits.

Repeatable.

Course usage information

CS 510. Experimental Course: [Topic]. 1-5 Credits.

Repeatable.

Course usage information

CS 513. Advanced Data Structures. 4 Credits.

Complex structures, storage management, sorting and searching, hashing, storage of texts, and information compression.

Course usage information

CS 520. Automata Theory. 4 Credits.

Provides a mathematical basis for computability and complexity. Models of computation, formal languages, Turing machines, solvability. Nondeterminism and complexity classes.

Course usage information

CS 522. Software Methodology I. 4 Credits.

Technical and nontechnical aspects of software development, including specification, planning, design, development, management and maintenance of software projects. Student teams complete projects.

Course usage information

CS 523. Software Methodology II. 4 Credits.

Student teams complete a large system design and programming project. Final system specifications, test plan, user documentation, and system walk-through.
Prereq: CS 522.

Course usage information

CS 529. Computer Architecture. 4 Credits.

RISC (reduced instruction-set computer) and CISC (complex instruction-set computer) design, storage hierarchies, high-performance processor design, pipelining, vector processing, networks, performance analysis.

Course usage information

CS 531. Introduction to Parallel Computing. 4 Credits.

Parallel architecture, theory, algorithms, and programming with emphasis on parallel programming, focusing on models, languages, libraries, and runtime systems.

Course usage information

CS 532. Introduction to Networks. 4 Credits.

Principles of computer network design. Link technologies, packet switching, routing, inter-networking, reliability. Internet protocols. Programming assignments focus on protocol design.

Course usage information

CS 533. Computer and Network Security. 4 Credits.

Security for various aspects of computers and networks. Elementary cryptography,program security, trusted operating systems, network security, privacy, and legal and ethical issues.

Course usage information

CS 534. Computer and Network Security II. 1-4 Credits.

This course covers security threats and solutions for distributed systems and networks, particularly the Internet, the Internet of Things, and distributed systems based on them.

Course usage information

CS 536. Secure Software Development. 4 Credits.

This course establishes a foundation for applying security principles to the lifecycle of software development in order to minimize software vulnerabilities and counter cyber threats.

Course usage information

CS 541. Introduction to Computer Graphics. 4 Credits.

Introduction to the hardware, geometrical transforms, interaction techniques, and shape representation schemes that are important in interactive computer graphics. Programming assignments using contemporary graphics hardware and software systems.

Course usage information

CS 543. User Interfaces. 4 Credits.

Introduction to user interface software engineering. Emphasis on theory of interface design, understanding the behavior of the user, and implementing programs on advanced systems.

Course usage information

CS 545. Modeling and Simulation. 4 Credits.

Theoretical foundations and practical problems for the modeling and computer simulation of discrete and continuous systems. Simulation languages, empirical validation, applications in computer science.

Course usage information

CS 551. Database Processing. 4 Credits.

Fundamental concepts of DBMS. Data modeling, relational models and normal forms. File organization and index structures. SQL, embedded SQL, and concurrency control.

Course usage information

CS 553. Data Mining. 4 Credits.

Databases, machine learning, artificial intelligence, statistics, and data visualization. Examines data warehouses, data preprocessing, association and classification rule mining, and cluster analysis.
Prereq: CS 551.

Course usage information

CS 561. Introduction to Compilers. 4 Credits.

Lexical analysis, parsing, attribution, code generation.
Prereq: CS 314 or equivalent. CS 520 strongly recommended.

Course usage information

CS 571. Introduction to Artificial Intelligence. 4 Credits.

Basic themes, issues, and techniques of artificial intelligence, including agent architecture, knowledge representation and reasoning, problem solving and planning, game playing, and learning.

Course usage information

CS 572. Machine Learning. 4 Credits.

A broad introduction to machine learning and its established algorithms. Topics include concept learning, decision trees, neural network.

Course usage information

CS 573. Probabilistic Methods for Artificial Intelligence. 4 Credits.

Fundamental techniques for representing problems as probability distributions, performing inference, and learning from data. Topics include Bayesian and Markov networks, variable elimination, loopy belief propagation, and parameter.

Course usage information

CS 601. Research: [Topic]. 1-16 Credits.

Repeatable.

Course usage information

CS 603. Dissertation. 1-16 Credits.

Repeatable.

Course usage information

CS 604. Internship: [Topic]. 1-4 Credits.

Repeatable.

Course usage information

CS 605. Reading and Conference: [Topic]. 1-16 Credits.

Repeatable.

Course usage information

CS 606. Field Studies: [Topic]. 1-16 Credits.

Repeatable.

Course usage information

CS 607. Seminar: [Topic]. 1-5 Credits.

Repeatable. Research topics are presented.

Course usage information

CS 608. Workshop: [Topic]. 1-16 Credits.

Repeatable.

Course usage information

CS 609. Terminal Project. 1-16 Credits.

Repeatable. Final project for master's degree without thesis.

Course usage information

CS 610. Experimental Course: [Topic]. 1-5 Credits.

Repeatable.

Course usage information

CS 621. Algorithms and Complexity. 4 Credits.

Design and analysis of algorithms, strategies for efficient algorithms, introduction to complexity theory including NP-completeness.
Prereq: CS 520 recommended.

Course usage information

CS 624. Structure of Programming Languages. 4 Credits.

Introduction to axiomatic, operational, and denotational semantics. Environments, stores, and continuations. Type theory, subtypes, polymorphism, and inheritance. Functional and logic programming.

Course usage information

CS 630. Distributed Systems. 4 Credits.

Principles of distributed computer systems: interprocess communication, distributed file systems, distributed timing and synchronization, distributed programming, transactions, process scheduling, distributed shared memory.
Prereq: CS 529.

Course usage information

CS 631. Parallel Processing. 4 Credits.

Advanced topics in parallel processing including massively parallel computer architecture, supercomputers, parallelizing compiler technology, performance evaluation, parallel programming languages, parallel applications.
Prereq: CS 529.

Course usage information

CS 632. Computer Networks. 4 Credits.

Advanced issues in computer networks, focusing on research to extend the services offered by the Internet.
Prereq: CS 532.

Course usage information

CS 633. Advanced Network Security. 4 Credits.

Classic and state-of-the-art research topics in network security; threats and attacks, defense algorithms and mechanisms, measurement and evaluation of both security problems and solutions. Offered alternate years.
Prereq: CS 533.

Course usage information

CS 640. Writing in Computer Research. 2 Credits.

Students learn to provide and accept constructive criticism of writing samples in a workshop format.

Course usage information

CS 670. Data Science. 4 Credits.

Data science is the development of methods to study large and complex data sets. Methods that scale to very large data sets are of particular interest. This course introduces state-of-art data science methods focused on processing very large data sets of real-world data.
Prereq: CS 551.