X

Plan of Study – Computer Science

Note: A Semester Hour (s.h.) is a unit of academic credit representing an hour of class (such as lecture class) or three hours of laboratory work each week for an academic semester. Most courses are two, three or four semester hours.

Computer Science: Bach Sci

Computer Science: Bachelor of Science

Major Courses (Minimum of 36 semester hours required.)
An introductory course in the field of computer science. Topics include fundamentals of computation and algorithmic problem solving, data types, procedures, control structures, arrays, and applications. Recommended as the first computer science course taken by students in mathematics and science, as well as by those wishing to concentrate in computer science.
This course, built in collaboration with Google, provides a gentle, but thorough, introduction to programming using Python. Students will learn the core concepts and techniques needed to create programs and perform basic data analysis. By the end of this course, students will be ready to pursue further study in computer science and unlock more advanced programming courses.
This course continues on from Programming for Everyone I. In the first half of the course, students will learn how to use their Python skills to treat the Internet as a source of data. The second half of the course will teach students the fundamentals of Structured Query Language (SQL) and database design. By the end of the course, students will have improved their programming skills and learn how to build a range of applications. Pre-requisite: CSC 2500.
This course, built in collaboration with Google, covers everything students need to know in order to build a website from scratch. Students will learn HTML, CSS and Javascript - the core technologies which power modern websites - and build a website of their own. By the end of this course students will be able to create interactive, aesthetically pleasing websites for any purpose one can imagine. Pre-requisite: CSC 2550 or MTH 2510.
Exploration of contemporary software development tools and practices essential for transitioning from programmer to software engineer. Topics include Docker, Jira, cloud computing, and GitHub, focusing on their applications in building scalable, secure, and user-centered products. Emphasis on understanding the industry impact of these technologies and applying them to real-world projects. Prerequisite: CSC 2500.
Acquire the skills to build dynamic, database-driven web applications using backend technologies like NodeJS, focusing on API creation, middleware development, secure access control, and full-stack integration. Perquisites: CSC 2500, CSC 2700.
Introduction to advanced front-end development. Build sleek, responsive web applications using frameworks like React and Angular, with a focus on state management, API integration, authentication, and cloud deployment. Prerequisite: CSC 3210.
Comprehensive study of the software development lifecycle (SDLC) from concept to implementation. Emphasis on version control using Git, quality assurance through testing, and deployment using continuous integration and continuous delivery (CI/CD) pipelines. Exploration of design patterns and best practices for effective software design and development. Prepares students to manage and execute software projects with confidence. Prerequisites: CSC 2500, CSC 2700, CSC 3210, and CYS 2110.
This course explores algorithms from a coding-focused perspective, uing Python. Students will learn about the issues that arise in the design of algorithms for solving computational problems and will explore a number of standard algorithm design paradigms and their applicability. Students will also become familiar with concepts of runtime, recursion, implementation and evaluation. This course features a heavy emphasis on practical applicaion of algorithms to common development and engineering challenges. Pre-requisites: CSC 2500, CSC 2550, MTH 2510 and CSC 3610.
This course will teach students how to understand and use data structures. Data structures are used by almost every program and application to store, access and modify the vast quantities of data that are needed by modern software. By the end of this course students will learn what data structures are and learn how to use them in the applications you build. Pre-requisites: CSC 2500 and CSC 2550.
Introduction to the foundational principles of computer architecture and system operations through the C programming language. Topics include operating systems, memory management, file systems, and microprocessor functionality. Emphasis on understanding how instructions are executed, peripheral devices interact with systems, and performance optimization techniques. Prerequisite: CSC 2500.
This course is intended as a culmination of all of a student's work in in their Computer Science major. Students will work in groups to launch a web app prototype that meets the following requirements: 1. Uses Database concepts from the Computer Science Core, Data Structures and Algorithms. 2. Meets faculty approval. Students will pitch their product, select the necessary technologies, work in groups to build an application, and create a webpage from which the application can be accessed. Students will be evaluated based on whether their product meets the goals they initially established, and on thier internal project management processes. Pre-requisites: CSC 2080, MTH 2460, MTH 2510, CSC 3480, CSC 3610, CSC 3450 and CSC 4120.

Required Support Courses

Support Courses (Minimum of 8 semester hours required. Both courses must be completed with a grade of C (2.0) or better within the first 20 hours of the Computer Science major.)
Topics include data collection and graphic presentation; measures of central tendency; measures of dispersion; normal and binomial distributions; regression and correlation; sampling methods; design of experiments; probability and simulation; sampling distributions; statistical inference including confidence intervals and hypothesis testing for one-sample and two-sample problems; chi-square distribution and test of significance; ANOVA. Prerequisite: MTH 1040 or placement based on the mathematics sub-score of the SAT/ACT standardized test or departmental placement exam.
     MTH 1050/MTH 2460 Option (Choose 1 from: MTH 1050 or MTH 2460.)
Topics include linear and nonlinear systems of equations, complex numbers, analyzing polynomial, rational, exponential and logarithmic functions, sequences and series, and counting principles; applications and problem-solving. Prerequisite: MTH 1040 or placement based on the mathematics sub-score of the SAT/ACT standardized test or departmental placement exam. This course does not apply toward a mathematics major or minor.
Mathematical logic, sets, functions, mathematical induction, recursion, combinatorics, probability, relations, graph theory, trees, and Boolean algebra. Prerequisite: MTH 1050.