Computer Science Department Course Offerings

Download information regarding checklists for graduation requirements as well as view the Catalogue.

Major Course Requirements:
32 hours of Computer Science Courses including: CSC111, 112, 121, 122, 211, 212, 221, 222, 311, 312, 321, 322, 411, 412, 441, and 442.

Additional Course Requirements:
3 hours of Mathematics including:  MAT303 and proficiency up to Calculus I (MAT207).

Minor Course Requirements:
20 hours of Computer Science Courses.

111 Programming Fundamentals (3).
Fundamental concepts of programming. Syntax and semantics of the Python programming language. Built-in data types, flow control, functions, and I/O. Training the brain to think like a computer scientist to aid in using computers to solve problems in all disciplines: science, mathematics, business, entertainment, etc. (Fall only)
112 Programming Fundamentals Lab (1). Co-requisites: CSC111 or instructor consent.
Will explore more advanced topics like unit-testing, networked services, object orientation, image/audio manipulation, and information visualization. (Fall only)
121 Interactive Programming (3).
Application of fundamental programming concepts in a 3D graphical programming environment, Alice 3D (www.alice.org), with a focus on interactivity, simple animation, and game-play.  Project planning and storyboarding. Hands-on approach with instruction interleaved with programming exercises. (Spring only)
122 Interactive Programming Lab (1). Co-requisites: CSC121 or instructor consent.
Intensive laboratory for CS majors/minors. Will experiment with advanced interaction and animation techniques. (Spring only)
211 Application Design (3). Prerequisites: MAT 101 and CSC111 or CSC121 or instructor consent.
Integrate previously-learned programming concepts into complete problem- and user-focused applications. Introduction of software lifecycle concepts. Advanced programming techniques such as recursion, user interfaces, design patterns, parallelism, and networking. (Fall only)
212 Application Design Lab (1). Prerequisites: CSC111/112 or CSC121/122 or instructor consent. Co-requisites: CSC211 or instructor consent. (Fall only)
221 Effective Programming (3). Prerequisites: MAT 101 and CSC111 or CSC121 or instructor consent.
How to live and work effectively developing on different environments: Linux, Mac OSX and Windows. Explore quality of life improvements for programmers: IDEs, text editors, OS shells. BASH shell concepts and hacks: filters, I/O redirection, environment, process management, runtime architecture. Introduction to enterprise and cloud architectures. (Spring only)
222 Effective Programming Lab (1). Prerequisites: CSC111/112 or CSC121/122 or instructor consent. Co-requisites: CSC221 or instructor consent. (Spring only)
311 Data Science (3). Prerequisites: MAT101 or instructor consent.
Application of basic probability and statistics to problems requiring computation. Focus on using industry-standard open-source packages like pandas (pandas.pydata.org) to perform statistical analysis and modeling on real data sets. (Fall, odd years only)
312 Applied Data Science Laboratory (1). Prerequisites: MAT101 or instructor consent. Co-requisites: CSC311 or instructor consent.
Will explore more advanced topics like information visualization, social network analysis and will explore solutions and approaches to real-world problems requiring data analysis. (Fall, odd years only)
321 Network Management (3). Prerequisites: CSC221 or instructor consent.
What is the internet, how was it built, and what is the underlying network stack? Topics discussed: routers, firewalls, IP addresses and datagram formats, static and dynamic routing algorithms, control messages, UDP and TCP, file transfer protocols, email and the web. (Fall, even years only)
322 Networking Laboratory (1). Prerequisites: CSC221/222 or instructor consent. Co-requisites: CSC321 or instructor consent.
Intensive laboratory for experimenting with modern networking architectures and technologies. (Fall, even years only)
351 Computer Science Research and Development (1). Prerequisites: instructor consent.
Special research and development assignments for computer science majors. This course can be taken multiple times.
401 Programming Languages (3). Prerequisites: CSC211/212 and CSC221/222 and MAT303 or instructor consent.
Formal syntax and semantics; compilers and interpreters; virtual machines; representation of data types; sequence and data control; type checking; run-time storage management; functional, logic, and object-oriented programming paradigms; concurrency and multi-threading. Study major programming paradigms, their realization in programming languages, and their impact on application design and implementation. (Fall, even years only)
404 Cyber Security (3). Prerequisites: CSC211/212 and CSC221/222 and MAT303 or instructor consent. Offered: Conventional (symmetric and public-key cryptography).
Message encryption and authentication. Secure communication between computers in a hostile environment, including E-mail (PGP), virtual private networks (IPSec), remote access (SSH), and E-commerce (SSL). Firewalls. Learn about threats including phishing and keylogging and how to mitigate. Importance of shared situational awareness. (Fall, even years only)
411 Software Architecture (3). Prerequisites: CSC211/212 and CSC221/222 and MAT303 or instructor consent.
Design and implementation of large-scale software systems, software development life cycle, software requirements and specifications, software design patterns and implementation, verification and validation, project management and team-oriented software development. (Spring, even years only)
414 Game Design (3). Prerequisites: CSC211/212 and CSC221/222 and MAT303 or instructor consent. Offered: Fall odd.
Explore the what and how of designing and building interactive entertainment. Learn about various gaming environments, engines, styles, tropes and gameplay conceits. (Fall only)
415 Game Design Studio (1). Corequisites: CSC414 or instructor consent.
Develop and workshop tools, skills and techniques. Integrate gameplay, character design/animation and application engineering into a playable product. (Fall, odd years only)
421 Operating Systems (3). Prerequisites: CSC211/212 and CSC221/222 and MAT303 or instructor consent. Introduction to operating systems.
Looks at the internal design and operation of a modern operating system. Topics include interrupt handling, process scheduling, memory management, virtual memory, demand paging, file space allocation, file and directory management, file/user security and file access methods. (Spring, odd years only)
441 Topics in Computer Science (1). Prerequisites: Senior standing or instructor consent.
A study of current topics taken from the areas including but not limited to: cyber security, graphics, high-performance computing, human-computer interaction, software engineering, artificial intelligence and machine learning. The senior computer science major will research a topic of assigned or particular interest and present it before a group of peers. (Fall only)
442 Computer Science Project (1). Prerequisites: Senior standing or instructor consent.
Given a research topic of interest, the senior computer science major will create an application that applies this topic to a significant real-world problem. (Spring only)
431 Independent Studies in Computer Science (1–3). Prerequisites: Junior standing or instructor consent.