Computer Science

CSC 103 Technology Tools (GE) (1)
An overview of technology software including word processing and presentation software. Note: CSC 103 was discontinued after Fall 2008 and replaced with LIB 203.

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

CSC 213 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 223 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 224 Dynamic Web Development (3)
This course covers client side (javascript) and server side (php, perl) scripting languages. Students also learn how to design, implement, and communicate with databases to create dynamic data driven web pages.

CSC 313 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 213.

CSC 316 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 213.

CSC 323 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 223.

CSC 324 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 213.

CSC 326 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 213.

CSC 327 Algorithms (3)
Fundamental algorithmic strategies (induction, divide-and-conquer, dynamic programming, and greedy algorithms), including techniques for analyzing complexity, and verifying correctness. Prerequisite: CSC 213.

CSC 343 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 213.

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 443 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 326.

CSC 447 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 336.

CSC 453 Networking (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 326.

CSC 457 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 336.

CSC 499 Senior Internship/Practicum in CSC (1)
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.