CS Major Courses
Computer Science required core courses:
- CS 141 Discrete Mathematics for Computer Science I (3) - Includes logic, sets, functions, matrices, algorithmic concepts, mathematical reasoning, recursion, counting techniques, probability theory. Not open to students with credit in Math 310. Pre: MATH 104 or MATH 104F and MATH 104G.
- CS 150 Introduction to Computer Science I (3) - Intended for Computer Science majors and all others interested in the first course in programming. An overview of the fundamentals of computer science emphasizing problem solving, algorithm development, implementation, and debugging/testing using an object-oriented programming language. Co-req: MATH 104 or MATH 205.
- CS 151 Introduction to Computer Science II (3) - Reinforces and strengthens problem solving skills using more advanced features of programming languages and algorithms such as recursion, pointers, and memory management. Emphasizes the use of data structures such as arrays, lists, stacks, and queues. Pre: CS 150.
- CS 241 Discrete Mathematics for Computer Science II (3) - Includes functions, matrices, graph theory, trees and their applications, Boolean algebra, introduction to formal languages and automata theory. Pre: CS 141 and MATH 205. Offered in Fall Semester only.
- CS 266 Computer Organization and Assembly Language (3) - Organization of computers; assembly language; instruction sets: CPU; memory; input/output; interrupts; DMA. Pre: CS 150.
- CS 321 Data Structures (3) - Basic concepts of space/time efficiencies Algorithms and data structures for searching (binary search trees, AVL trees, hash tables) and sorting. Graph algorithms. Data compression using Huffman codes. Pre: CS 151 and 241, or instructor's consent.
- CS 407 Introduction to Numerical Analysis I (3) - Solutions of equations in one variable, direct and iterative methods for systems of linear equations, the algebraic eigenvalue problem, interpolation and polynomial approximation, error analysis and convergence for specific methods. Offered spring semester. Pre: C in MATH 206 and MATH 311 and programming experience. (Same as MATH 407).
- CS 410 Elements of Computer Architecture (3) - Basic Machine Architecture, Cache Memory, Computer Arithmetic, RISC, Instructional-level Parallelism, Superscalar Processors, Microprogrammed Control, Parallel Processing. Performance Evaluation. Pre: CS 266 and 321.
- CS 420 Database Internals (3) - Concepts and methods for managing persistent data. Study of stream, sequential, relative and indexed organizations. Implementation techniques and performance. Introduction to SQL. XML as a data transport and storage mechanism. Pre: CS 321.
- CS 430 Operating Systems (3) - Covers the concepts, issues and design of modern operating systems. Topics include processes and state, concurrency, resource management algorithms for memory, processors and I/O devices, protection and security. Case studies of popular workstation, server and mainframe operating systems. Laboratory projects teach concurrent programming and OS implementation techniques. Pre: CS 266, CS 321.
- CS 450 Organization of Programming Languages (3) - Advanced introduction to the concepts and issues in the design of computer programming languages. Topics include classification of languages, types, semantics, special forms parameter passing, closures, object-orientation, continuations, concurrency, exceptions, interpreters and garbage collection. Laboratory projects highlight design decisions and teach interpreter implementation techniques. Pre: CS 321.
- CS 460 Software Engineering I (3) - Emphasizes planning, analysis, and design phases of the Software Development Life Cycle with one model of the SDLC covered. Goal is to learn tools and techniques for sound requirement assessment and, working as a team, produce a verified design of a real software product. Pre: CS 321, ENG 209 or ENG 225.
- CS 461 Software Engineering II (3) - Emphasizes implementation, installation and maintenance phases of the SDLC covered in CS 460. Goals are to learn specific techniques and tools for product development testing, measurement and documentation. Team will complete product. Pre: C or better grade in CS 460. semester.
- CS 470 Theory of Computing (3) - Study of various models of computation and their relation to formal languages: finite automata, push-down automata, Turing machines, regular, context-free, and recursively enumerable languages. Unsolvability, NP completeness. Pre: CS 321.
- CS 495 CS Professional Seminar (1) - Computer science and software engineering are careers demanding technological and ethical application of computer hardware, software, and human resources. Course emphasis is on entry into and growth in these careers showing the balancing of needs amongst technology, employee, employer, and society. Co-req: CS 461.
Check the latest course catalog for times and locations, available at the Admissions Office.