Computer Science
Course Descriptions
CSC 160 Introduction to Computer Science and Communication
An introduction to computer science topics in hardware, software, theory, and computer communications: algorithm design, logical circuits, network concepts, the internet, and programming. (Prereq.: MPG 3, recommend concurrent registration with MAT 171 or complete CSC 160 prior to taking MAT 171)
CSC 170 Introduction to Programming
A study of problem-solving, algorithm development, and programming using a high level programming language. (Three hours of lecture, one-and-one-half hours of lab. Prereq.: CSC 160 and MPG 3, pass CT assessment or GST 100; MAT 171 recommended)
CSC 210 Data Structures
Data structures such as linked lists, stacks, and queues; recursion. (Three hours of lecture, one-and-one-half hours of lab. Prereq.: CSC 170, MPG 4, and one of MAT 145 or MAT 171; pass CT assessment or GST 100)
CSC 240 Introduction to Networking and Communications
Principles and methods of data communications, information theory, distributed processing systems, network protocols and security, standards, network management, and general computer interfacing. (Prereq.: CSC 160 and MPG 3)
CSC 272 UNIX and C
Study of UNIX operating system and the C programming language. It is assumed that the student has knowledge of programming methods and has done programming in some other language. (Prereq.: CSC 170 or another course with a study of a programming language)
CSC 320 Algorithms
A systematic study of algorithms and their complexity, including searching and sorting algorithms, mathematical algorithms, scheduling algorithms, and tree and graph traversal algorithms. The classes P and NP, NP-complete problems, and intractable problems. (Prereq.: CSC 210, MPG 4, and one of MAT 145 or MAT 171; pass CT assessment or GST 100)
CSC 345 Principles of Computer Organization
An introduction to computer architecture, binary representation of data, processors, instruction sets, and assembly language programming. (Prereq.: CSC 210 and MPG 4)
CSC 352 Database Management and Design
Structure of database management systems, query facilities, file organization and security, and the development of database systems. (Prereq.: CSC 210)
CSC 353 Database Architecture and Design
An introduction to the physical design and tuning of database systems. Topics include data storage, indexing, query processing, and transaction processing with a focus on the relation database. Advanced topics include security, other types of databases (e.g., distributed databases, client-server architectures, object-oriented), emerging technologies, and applications. (Prereq.: CSC 210; CSC 352 recommended)
CSC 373 Symbolic Programming and Artificial Intelligence
An introduction to programming in functional, symbolic languages, such as Lisp or Scheme. A study of the foundation algorithms used in the field of artificial intelligence. Applications to selected problems from artificial intelligence. (Prereq.: CSC 210 and pass CT assessment or GST 100)
CSC 385 Formal Logic and Computation Theory
An introduction to sentential and first-order logic including logical connectives, proof theory, and quantification. Formal models of computation including finite state automata, pushdown automata, and Turing machines. Incompleteness and uncomputability. (Prereq.: CSC 210 and one of MAT 145 or MAT 171)
CSC 431 Introduction to AI Robotics
Robot components, robotic paradigms, mobile robots, task planning, sensing, sensor fusion, basic control concepts. (Prereq.: CSC 210 and ENL 111 or 112 or HON 111)
CSC 440 Advanced Networking and Operating Systems
Network management; client/server databases and workstations; TCP/IP and other network examples. Elements of operating systems, memory and process management, interactions among major components of computer systems, and a detailed study of the effects of computer architecture on operating systems. (Prereq.: CSC 240 and 345)
CSC 450 Programming Languages and Compilers I
Principles that govern the design and implementation of programming languages. Topics include formal languages, programming language syntax and semantics, parsing, and interpretation. Emphasis on design issues. (Prereq.: CSC 345 or concurrent registration, CSC 385 or concurrent registration, CSC 320, and ENL 111 or 112 or HON 111)
CSC 451 Programming Languages and Compilers II
Continuation of CSC 450: compilers, data structures, control structures, and the runtime environment. Emphasis on implementation issues. (Prereq.: CSC 345, CSC 450, and CSC 385)
CSC 457 Computer Graphics
A study of the foundational algorithms required for computer graphics. Topics include geometric algorithms, geometric modeling, graphics techniques, graphical user interfaces, human-centered software development, computer animation, virtual environments, and 3D immersive rendering. (Prereq.: CSC 210, MPG 4)
CSC 495 Advanced Topics in Computer Science
Study of advanced topics from areas of computer science not included in other courses. This course may be repeated, but may not be counted more than twice as part of the requirements for the major. (Prereq.: Consent of instructor)
Internships and Independent Study Courses
CSC 199 Internship
P/N grading only.
CSC 299 Directed Study
CSC 399 Internship
P/N grading only.
CSC 499 Independent Study/Research