Computer Science Course Listings
To view course descriptions scroll down to the desired entry. You may also view Data Science course listings, Mathematics course listings or Statistics course listings
140. Introduction to Computer Programming.
An introduction to programming using a high-level language. Assumes no prior knowledge of programming and focuses on essential skills. Students learn to create programs ranging from practical utilities to simple games.
219. Techniques of Computer Science.
An in-depth look at computing and programming in a high-level language. Introduces more advanced programming problems and more principled programming techniques. Prerequisite: CS 140 or permission of instructor.
220. Computer Organization.
An in-depth look at the underlying organization and architecture of modern computer systems. Topics include data representation, the organization of CPUs including caches and the memory hierarchy, machine language, and an introduction to assembly language programming. Prerequisite: CS 219. Offered in spring semesters.
250. Computer Science Seminar.
Explores topics of interest beyond the core Computer Science curriculum. The course is worth 0.25 credit, meets once per week, and is graded pass/fail. As topics vary from one offering to the next, it is possible for students to repeat the course for credit. Prerequisite: may vary. Offered as scheduling allows.
256. Data Structures.
An in-depth look at the essential strategies for the organization, retrieval, and processing of data. Topics include arrays, lists, stacks, queues, maps, and trees, as well as an introduction to algorithm analysis. Prerequisite: CS 219.
302. Symbolic Logic.
A study of elementary symbolic logic. Topics include sentential and predicate logic. Prerequisite: MATH 280 or CS 220 or PHIL 202. Offered as scheduling allows. Also offered as PHIL 302 and MATH 302.
318. Graph Theory.
Deals with the study of a finite set of points connected by lines. Problems in such diverse areas as transportation networks, social networks and chemical bonds can be formulated and solved by the use of graph theory. Topics include theory, algorithms, applications, and history. Prerequisite: MATH 217 or MATH 280. Offered as scheduling allows. Also offered as MATH 318.
321. Computer Networking.
An overview of computer networking and the technologies behind the internet. Topics include protocols at the application level (HTTP, DNS, etc.), transport level (TCP/UDP), and network level (IP), as well as issues related to network security. Prerequisite: CS 256, with CS 220 strongly recommended. Offered as scheduling allows.
332. Web Programming.
Introduces the concepts and languages of modern web programming. Topics include HTML/CSS, client-side and server-side scripting, and interaction with a database. Prerequisite: CS 256. Offered as scheduling allows.
340. Software Engineering.
Examines the challenge of creating reliable, maintainable software in teams. Introduces modern tools and strategies for design, version control, testing, debugging, and documentation. Prerequisite: CS 256, with either CS 220 or DATA 234 strongly recommended. Offered as scheduling allows.
345. Database Systems.
A look at how data is logically organized, physically stored on a digital device, and queried. Focuses primarily on relational database systems and structured queries. Other topics include non-relational data models, privacy, security, performance, and reliability. Corequisite: CS 256. Either CS 220 or DATA 234 strongly recommended. Offered in fall semesters. Also offered as DATA 345.
352. Statistical & Machine Learning
Introduces techniques for developing advanced models from datasets, for the purposes of better understanding the data and making predictions about future data. Techniques include linear and regularized regression, nearest neighbor classification, support vector machines, decision tree ensembles, and neural networks. Examines real-world applications, both successes and failures, the latter of which often involve data with embedded biases. Students will develop both technical and ethical competence in using some of the most powerful computational tools in data science. Prerequisites: STAT 213, CS 219, and MATH 217, or permission of instructor. Offered in spring semesters. Also offered as DATA 352 and STAT 352.
362. Algorithm Analysis.
An investigation of core techniques for designing and analyzing algorithms for computational problem-solving. Introduces well-known algorithms for common types of problems and teaches students to evaluate algorithm efficiency. Prerequisites: MATH 280 and CS 256, with CS 220 strongly recommended. Offered in fall semesters.
364. Programming Languages.
Addresses several advanced topics in programming: the process of code interpretation, the principles behind the design of programming languages, and the paradigms of functional and concurrent programming. Prerequisite: CS 256, with CS 220 strongly recommended. Offered as scheduling allows.
370. Operating Systems.
An overview of operating system principles. Topics include process scheduling and synchronization, memory management including virtual memory, file system interfaces and implementations, and design considerations for desktop/mobile platforms. Prerequisite: CS 256, with CS 220 strongly recommended. Offered as scheduling allows.
374. Artificial Intelligence.
A programming-intensive introduction to the concepts and uses of artificial intelligence. Teaches students to implement agents for problem-solving, game-playing, and decision-making. Prerequisite: CS 256, with CS 362 strongly recommended. Offered as scheduling allows.
380. Theory of Computation
Addresses the theoretical basis of computer science. Introduces a hierarchy of computational models and the types of problems they can and cannot solve, as well as a set of problem complexity classes and their relationships. Prerequisite: MATH 280. Offered as scheduling allows. Also offered as MATH 380.
450. SYE Seminar
Offered in spring semesters. Seniors only.
489. SYE: Senior Project
Permission required. Seniors only.
498. SYE: Honors Project
Permission required. Seniors only.