Computer Science Course Listings

To view course descriptions scroll down to the desired entry. You may also view Mathematics and Statistics course listings.

CS 140 Introduction to Computer Programming This course gives students an introduction to programming using a high-level language, with emphasis on problem-solving and algorithm development. Computer programming skills are enhanced through individual student projects.

CS 219 Techniques of Computer Science An in-depth look at computing and programming using high-level languages. Topics include advanced programming techniques and efficient algorithms for the solution of problems on a computer. Students complete a large programming project. Prerequisite: CS 140 or the equivalent.

CS 220 Computer Organization Topics include data representations, digital circuits, the organization of CPUs, machine language, and an introduction to assembly language programming. Prerequisite: CS 219. Offered spring semester only.

CS 250 Computer Science Seminar This laboratory-based course covers topics important for a well-rounded computer science education. Topics vary from week to week and may include problem-solving in the context of programming competitions, advanced operating system topics in linux; practical applications of computer science such as Web,file and database server administration: advanced debugging and profiling techniques: practical cryptography; and computer science history. This course is worth 0.25 credits, meets once per week, and is graded pass/fail. Since topics vary from semester to semester, students may repeat the course for credit. Prerequisite: Computer Science 219.

CS 256 Data Structures Techniques and algorithms for the organization, representation and processing of data on the computer. Topics include strings, lists, stacks, queues, trees and graphs, as well as their applications. Prerequisite: CS 219. Offered in fall semester.

CS 302 Symbolic Logic Offered Through the Philosophy Department.  A study of elementary symbolic logic. Topics include sentential and predicate logic. Prerequisite: Philosophy 202 or Mathematics 280 or permission of instructor. Also offered as Math 302 and Philosophy 302.

CS 318 / Math 318 Graph Theory Graph theory deals with the study of a finite set of points connected by lines. Problems in such diverse areas as transportation networks, organizational structure, chemical bonds, allocation and distribution of good and services, genealogical family trees, group structure in psychology and sociology, tournaments and electrical circuit analysis can be formulated and solved by the use of graph theory. The course includes theory algorithms, applications and history. Prerequisite: Math 217 or 280. Also offered as Math 318.

CS 321 Computer Networking This course presents an overview of computer networking while focusing on the technological issues which have made the internet successful. Topics include protocols associated at the application level (HTTP, DNS, FTP, BitTorrent, etc.) transport level (TCP/UDP) network level (IP/ATM), and issues related to network security. Students will gain experience with common networking tools, writing programs that operate on the transport layer, and the Linux operating system. Prerequisite: Computer Science 256.

CS 324 / Math 324 Numerical Analysis Topics covered include finite differences, interpolation, numerical integration and differentiation, numerical solution of differential equations and related subjects. Prerequisites: Math 217. Also offered as Math 324.

CS 332 Web Programming The course introduces terminology of the Web and the Hypertext Markup Language (HTML) as well as concepts of distributed computing, including client-side and server-side programming. Prerequisite: Computer Science 219 or permission of the instructor.

CS 340 Software Engineering  This course examines the problem of creating reliable, maintainable software systems.  It introduces modern tools and strategies for design, version control, testing, debugging, and documentation of software. To develop software design skills students will implement a large team based softwar project.

CS 345 Database Systems This course introduces core concepts of database systems and how data is logically organized, physically stored on a digital device, and subsequently processed and queried. The primary focus is on the relational model and SQL (Structured Query Language) in the context of a real relational database management system. Other topics include nonrelational data models, privacy, security, performance, and reliability. Students will explore a real world database problem by designing and then implementing a team project culminating in an end of semester presentation. Prerequisite: CS256 (Data Structures).

CS 362 Algorithm Analysis Students learn techniques and methods for designing, analyzing and testing the efficiency and performance of computer algorithms. The course also includes an introduction to the theory of polynomial reducibility. Prerequisite: CS 256 and Math 280.

CS 364 Programming Languages This course consists of two parts: a comparison of various computer languages and their uses, and a study of the concepts and organization of computer languages. Prerequisite: CS 220 or 256.

CS 370 Operating Systems An introduction to computer system design and use. Topics may include assemblers, interpreters, compilers, loaders, macro-processors and operating systems. Prerequisite: CS 220.

CS 374 Artificial Intelligence This course introduces the concepts and uses of artificial intelligence. Possible topics include search strategies, natural language processing, expert systems, neural nets, and robotics. Prerequisite: CS 256.

CS 380 / Math 380 Theory of Computation This course fosters a depth of understanding of the basic theoretical underpinnings of computer organization and programming. Students will learn the Chomsky hierarchy of languages and how to design various classes of automata to recognize computer languages. Application of mathematical proof techniques to the study of automata and grammars enhances students' understanding of both proof and language. Prerequisite: CS 256 and Math 280. Also offered as Math 380.

CS 389/390 Independent Projects in Computer Science Permission required.

CS 489 SYE: Senior Project for Majors Permission required

CS 498 SYE: Senior Honors Project for Majors Permission required.