A. Computer Data Science Core
CS101 Computer Science Fundamentals (3 cr.)
This course provides a foundation in computing and algorithmic principles. Students are introduced to the basic conceptual building blocks of computer hardware and software systems. The tools and principles of algorithmic problem solving and systems design are explored. In the second half of the semester, students gain experience with simple programming challenges. Credit is not granted for this course and CS106.
CS110 Computer Science I: Introduction to Programming (3 cr.)
This course introduces students to the practice of software development. Students learn the fundamentals of programming, algorithm development, and basic design principles.
CS111 Computer Science I Laboratory (1 cr.)
The laboratory course complements CS110 lectures.
CS210 Computer Science II: Advanced Programming and Data Structures (4 cr.)
This course is a continuation of CS111. CS210 expands on the programming techniques covered in CS1, adding discussion of recursion and data structures such as lists, stacks, queues, balanced trees, graphs and heaps. Specific algorithms that use these structures efficiently and general algorithm techniques and their analysis are also covered.
CS220 Discrete Mathematics (3 cr.)
This course provides the theoretical foundation of modern computer hardware and software. It provides that foundation in the form of mathematical tools and concepts geared toward computer science applications. Topics covered include: logic and set theory; functions and relations; simple algorithm analysis; and an introduction to graph theory.
B. All of the following:
CS325 Computer Science III Software Design and Testing (4 cr.)
This third course in the three semester programming sequence emphasizes the principle and practices of software design and testing which result in quality software. Object-oriented design is covered in conjunction with refactoring, unit testing and continuous integration. This class highlights the connection between software design and software reliability.
CS355 Database Management Systems (3 cr.)
A study of fundamental database management systems. Course topics include: data modeling, database design and structured query language (SQL), transaction management, data integrity and security. Object-relational mapping techniques and technologies will also be covered.
CS380 Web Systems Analysis, Design, and Implementation (3 cr.)
This course introduces students to the design and implementation of web applications. Using n-tier architectures as a starting point, students learn the concepts and practices involved in the development of dynamic and stateful web applications integrated with a database system. Both server-side and client-side web technologies are discussed.
CS400 Programming Paradigms, Theory and Translation (4 cr.)
This course introduces the formal study of programming language syntax, data types, and control structures; methods of executing higher-level constructs at run-time; and, data structures and algorithms used in compilation and interpretation. Laboratory work emphasizes acquisition of skill in a variety of programming paradigms.
CS415 Systems Software and Hardware Interface (4 cr.)
This course provides an introduction to computer hardware organization, systems programming and the hardware/ software interface. Students learn the basic combinational and sequential logic components of computer processors along with their functional organization and operation. Students also learn how systems software such as operating systems, assemblers, linkers and loaders interact with hardware to in order to run application programs. Students apply their learning by writing and/or modifying systems code.
CS485 Software Development Practice I (4-6 cr.)
This course is the first semester course of a two semester project experience wherein students apply the principles of design and development learned in earlier courses toward the implementation of a large-scale software system. Working in teams, students explore software life-cycle models, software development methodologies, software revision control, and project management as applied to a real world project.
C. One of the following:
CS490/491 Capstone Project (1-17 cr.)
This course provides the student an opportunity to complete a large programming project which can either be for an organization or the student's project.
CS496/497 Internship (1–17 cr.)
An opportunity for qualified juniors or seniors to participate in an internship under the guidance and supervision of competent professionals. Credit offered under this course listing involves internships in the computer science field but not directly related to the goals of the senior year practicum experience in software development.