Catalog

Computer Science Courses

CSC 110 Authoring for the Web (3)
Application of site design, interface design, and page design principles to building a web site. For the final project, students use current tools to create content and assemble resources into a functional web site.

CSC 120 Programming Fundamentals (GE) (3)
Fundamental ideas in computer science will be covered in the context of algorithmic problem solving and the expression of algorithms in modern, object-oriented programming languages. Students should have prior computer programming experience, place in at least MAT 114 or have consent of the instructor to enroll in this course.

CSC 175R Topics in Computer Science (3)
Topics in computer science.

CSC 210 Advanced Authoring for the Web (3)
Application of site design, interface design and page design principles to building a web site. For the final project, students use current tools to create dynamic database driven content and assemble resources into a functional web site. Usability and site management issues are addressed. Prerequisite: CSC 110.

CSC 220 Data Structures (3)
Theory of data structures and abstract programming interfaces, including the study of the properties of specific data structures often encountered in computer science (Stacks, Queues, Trees, Hash tables, Graphs, etc). Prerequisite: CSC 120.

CSC 222 Discrete Mathematics (3)
An introduction to fundamental mathematical concepts used in mathematics as well as computer science, with an emphasis on writing mathematical arguments. The course presents the principles of mathematical logic and methods of proof such as direct and indirect proofs and mathematical induction. Other topics include sets, functions, relations, recursion, matrix algebra, and techniques from elementary combinatorics and graph theory. Prerequisite: MAT 115 or MAT 241.

CSC 230 Computer Organization (3)
Organization of modern computer hardware, including logic design and data representation, assembly level organization, microprocessors, CPU design, RISC and CISC concepts, pipelining, superscalar processing, memory, cache, paging, segmentation, virtual memory, parallel architectures, bus protocols, and I/O devices. Prerequisite: CSC 220.

CSC 240 Theory of Computation (3)
Formal models of computation (regular expressions, finite state automata, recursive functions, formal grammars and Turing machines) and their application to the questions of computability and complexity. Prerequisite: CSC 220 and CSC 222.

CSC 250 Software Engineering (3)
Programming in the large, including: models of the software development lifecycle (requirements analysis, specification, design, implementation, and testing), development artifacts, and project management along with accompanying software tools. Prerequisite: CSC 220.

CSC 330 Operating Systems (3)
Theory, design and implementation of the software layer between application programs and computing hardware, including: synchronization, communication and scheduling of processes, allocation of memory, virtual memory, file systems, device drivers, and security. Prerequisite: CSC 230.

CSC 332 Networking Systems (3)
Modern networking hardware and protocols, including interconnect systems (hubs, switches, routers, etc.), point-to-point links, packet switching, internetworking, end-to-end protocols, congestion control, and security. Prerequisite: CSC 230.

CSC 334 Programming Languages (3)
Properties of the languages of modern programming paradigms (function-oriented, imperative, object-oriented, and logic-oriented) including syntax, naming, state, data, control, concurrency, non-determinism, and types. Prerequisite: CSC 230.

CSC 340 Artificial Intelligence (3)
Fundamental concepts and methods for developing computer systems that acquire and reason about knowledge, including: knowledge representation, problem solving and search, planning, vision, natural language comprehension and production, learning, common sense reasoning, and expert systems. Prerequisite: CSC 240.

CSC 342 Cyber Security (3)
Fundamental concepts and methods for developing computer systems that acquire and reason about knowledge, including: knowledge representation, problem solving and search, planning, vision, natural language comprehension and production, learning, common sense reasoning, and expert systems. Prerequisite: CSC 240.

CSC 350 Database Systems (3)
Relational database management systems, including: data models, data storage and access methods, query languages, query evaluation and optimization, transaction management, concurrency control, and recovery. Prerequisite: CSC 250.

CSC 352 Mobile/Game Development (3)

Prerequisite: CSC 250.

CSC 375R Special Topics in Computer Science (3)
Special topics in computer science.

CSC 385R Directed Studies in Computer Science (3)
Independent studies in computer science.

CSC 399R Internship/Practicum in Computer Science (var.)
Internship or practicum in field of potential employment or advanced study. Internship proposal must be approved before registration. 

CSC 498 Senior Capstone (1)

CSC 499 Senior Internship/Practicum in CSC (var.)
Internship or practicum in field of potential employment or advanced study. Internship proposal must be approved before registration. Prerequisite: senior class standing and consent of instructor.