Computer Science Courses

CSC-150 Computer Science I: Intro to Computer Science and Programming4 credits

Prerequisites:MAT-150, MAT-175, or MAT-275 or placement. The prerequisite course must be passed with a minimum grade of C.

An introduction to fundamental principles of computer science. A brief introduction to computers, including data representation and storage and digital computation. Program design and implementation skills are developed using a high-level language. Topics may include fundamental programming constructs (e.g., functions, branching, looping), algorithm design, data abstraction, recursion, and object-oriented programming.

CSC-152 Computer Science II: Data Structures4 credits

Prerequisites:CSC-150. The prerequisite course must be passed with a minimum grade of C.

This course continues CSC-150 with further study of data abstraction, algorithm design, and object-oriented principles. Topics may include inheritance, polymorphism, method overloading, recursion, lists, stacks, queues, trees, and searching and sorting algorithms, all using abstract data structures.

CSC-160 Introduction to Computer Architecture3 credits

Prerequisites:MAT-150, MAT-175 or MAT-275 or placement. The prerequisite course must be passed with a minimum grade of C.

A broad introduction to computing systems beginning with an introduction to digital logic and progressing through other topics including machine-level representation of data and instructions, controller and data-path design, instruction-set considerations, reduced instruction-set computers, and basic pipelining.

CSC-235 Programming Languages3 credits

Prerequisites:CSC-152. The prerequisite course must be passed with a minimum grade of C.

An examination of the principles of programming language design, together with tools and techniques of implementation. Specific instances of several families of languages are investigated, together with theoretical considerations; these families may include object-oriented, functional, and data-flow languages.

CSC-270 Applied Databases3 credits

Prerequisites:CSC-150. The prerequisite course must be passed with a minimum grade of C.

An introduction to the fundamental concepts of database design and management. Topics may include entity-relationship and relational data models, normalization, relational database design and implementation, SQL, and administration.

CSC-294 Independent Study1 - 3 credits

Prerequisites:Instructor permission

May be repeated up to a maximum of 4 credits and is subject to arrangement with the Mathematical and Physical Sciences Department. This course does not fulfill the core requirement for independent work. See independent study guidelines. See independent study guidelines.

CSC-340 Design and Analysis of Algorithms3 credits

Prerequisites:CSC-152. The prerequisite course must be passed with a minimum grade of C.

Study of algorithm design, implementation, and behavior analysis. Topics may include divide-and-conquer, greedy algorithms, dynamic programming, sorting techniques, data structures and advanced data structures, and graph algorithms, including minimal spanning trees. Selected topics such as parallel/multithreaded algorithms may be covered as time permits.

CSC-350 Formal Languages and Automata3 credits

Prerequisites:CSC-160 and MAT-252. The prerequisite courses must be passed with minimum grades of C.

An introduction to the theoretical foundations of computing, including the theory of formal languages, decidability, recursion, and complexity. Topics may include finite-state automata, regular languages, context-free grammars, decidability and halting, Turing machines, and the complexity hierarchy of algorithms.

CSC-440 Introduction to Operating Systems3 credits

Prerequisites:CSC-160 and CSC-340. The prerequisite courses must be passed with minimum grades of C.

Operating system design and implementation. This course investigates the theory and application of resource management in modern operating systems through a hands-on approach. Topics may include: file systems, memory management, process management, interprocess communication, resource sharing, I/O, networking, and distributed computing models.

CSC-450 Advanced Computer Architecture3 credits

Prerequisites:CSC-160, CSC-340, and CSC-350. The prerequisite courses must be passed with minimum grades of C.

Continued investigation of the principles and theory behind the design of modern computing systems with a quantitative emphasis on issues of performance, efficiency, and reliability. Topics may include: pipelining, instruction set design, caches and memory hierarchy, superscalar architectures, out-of-order and multithreaded architectures, parallel computing, and cloud-based computing.

CSC-455 Numerical Computation3 credits

Prerequisites:CSC-152 and MAT-361. The prerequisite courses must be passed with minimum grades of C.

This course is concerned with numerical methods for applied mathematical problems beginning with development and proceeding through implementation and analysis. Topics may include error analysis, root finding, interpolation and polynomial approximation, numerical differentiation and integration, numerical solution of linear and nonlinear systems of equations, and approximation theory.

CSC-480 Software Engineering and Senior Design I2 credits

Prerequisites:Senior standing, CSC-235, CSC-270, and CSC-350. CSC-270 and CSC-350 may be taken concurrently with CSC-480. The prerequisite courses must be passed with minimum grades of C

First course in a three-semester sequence in which students learn and apply sound principles and methods of software engineering. Topics may include models of software development, requirement solicitation and definition, system design and organization, documentation, verification, and validation.

CSC-481 Software Engineering and Senior Design II1 credit

Prerequisites:CSC-480. The prerequisite course must be passed with a minimum grade of C

Continuation of CSC-480. Second course in a three-term sequence in which students learn and apply sound principles and methods of software engineering. Topics may include models of software development, requirement solicitation and definition, system design and organization, documentation, verification, and validation.

CSC-482 Software Engineering and Senior Design III3 credits

Prerequisites:CSC-481. The prerequisite course must be passed with a minimum grade of C.

Continuation of CSC-481. The final course in a three-term sequence in which students learn and apply sound principles and methods of software engineering. The course culminates in the design and implementation of software systems for industry, non-profit, or academic sponsors.

CSC-494 Independent Study1 - 3 credits

Prerequisites:Junior or Senior standing and permission

May be repeated up to a maximum of 4 credits and is subject to arrangement with the Mathematical and Physical Sciences Department. See independent study guidelines. See independent study guidelines.

CSC-497 Internship1 - 3 credits

Prerequisites:Junior or Senior standing and permission.

Individually arranged programs of work and study with the department, academic institutions, private industries, or government agencies. See internship guidelines.