Computer Science
Programs
-
Computer Science, Major,Minor
Courses
BIOL 383: Bioinformatics: Code & Chromosomes
Credits 3BIOL/CS 383 introduces students to key concepts in the field of bioinformatics. Students work in cross-discipline pairs to process real genomic data sets. Students learn about types of DNA sequencing, analysis and visualization software (Qiime2 and R), building and running complex scientific workflows.
CS 128: Programming & Problem Solving
Credits 4This course provides an introduction to foundational computer science concepts centered on analytical thinking, programming, and problem-solving skills. Through a rigorous approach to dissecting and systematically solving challenges, students develop core algorithmic techniques for addressing real-world issues. The course focuses on fostering an understanding of computational solutions while strengthening critical thinking, logic, and creativity.
CS 130: Symbolic Logic
Credits 3CS 256: Data Structures
Credits 4CS 266: Computing Skills
Credits 1CS 275: Computing for Social Good
Credits 3This course critically examines some important “for social good” problems that computer science and technology can help address. Students will study topics such as ethical community engagement, engineering for social justice, ways to advocate for social change, and models to implement “for social good” projects. This course does not involve computer programming and is open to any student interested in social justice, community engagement, ethical application of technology, and similar social issues.
CS 281: Applied Groups
Limited to members of the Computer Science Applied Groups. Working under the direction of a faculty or staff member, groups of CS students provide infrastructure support for the CS Department and the College. Current groups include: CS System Administrators, Hardware Interfacing Project, Helping Others Program, CS for Social Good, and Web Development. No more than three credits total in an academic career.
CS 310: Algorithms
Credits 3CS 320: Principles of Computer Organization
Credits 3CS 325: Systems Engineering & Administration
Credits 3This course is an introduction to the engineering and administration or computing systems and the associated storage and networking systems required to support users of modern science and commerce platforms. The course material is built around a sequence of hands-on labs which cover topics from the design of computing systems and facilities through the full provisioning of a machine which supports end users. Additional topics include the ethics of system administration, data privacy and protection.
CS 330: Computational Science
Credits 3An introduction to Functional Programming, one of the three major programming paradigms. Focuses on well-structured interactive program development using a modern functional programming language. Introduces the formal study of data types and the meaning of programs.
CS 335: Advanced Data Structures
Credits 3Data structures are a central topic in computer science. Building on the material developed in CS 256 Data Structures, this course covers more advanced approaches to organizing data on network, tree and string based structures. Problems are chosen from data-intensive domains, motivating students to solve complex problems by using efficient data structures.
CS 340: Robotic Animals
Credits 4CS 345: Software Engineering
Credits 3The theory, techniques and technologies associated with the deconstruction, and testing of software systems, particularly large software systems. Students learn various approaches to procedural decomposition and system architecture and build multiple large collaborative software projects. Explores the tools used for building and testing software systems, particularly in the context of open source software.
CS 350: Electronics & Instrumentation
Credits 3A laboratory-oriented course dealing with analog and digital circuits. Circuit theory is developed for diodes, transistors, operational amplifiers and simple digital circuits. Components are used to construct a range of devices, including power supplies, oscillators and amplifiers. Check the Physics cross-listing for this course.
CS 355: Computer Game Design
Credits 3This course covers a variety of software engineering and user experience topics through the lens of game design. Students construct several games over the course of the term, first individually and then collaboratively, putting theory into practice.
CS 360: Parallel & Distributed Computation
Credits 3This course covers the development and application of parallel programming and problem-solving techniques to solve computationally intensive problems in a variety of disciplines. Parallel computation invites new ways of thinking about problems and is an important skill in corporate and research environments. Students learn about programming paradigms used in parallel computation, the organization of parallel systems, and the application of programs and systems to solving problems in biology, physics, geography, and other disciplines.
CS 365: Artificial Intelligence and Machine Learning
Credits 3This course offers an introduction to topics in Artificial Intelligence and Machine Learning and covers their theoretical underpinnings while providing opportunities to put various techniques into practice. Topics covered may include search, planning, game-playing neutral networks and other machine learning approaches.
CS 370: Computer Graphics
Credits 3CS 375: Cyberethics in the Current Age
Credits 3CS 380: Theory of Computation
Credits 3CS 382/482: Special Topics
Credits 3CS 383: Bioinformatics: Code & Chromosomes
Credits 3BIOL/CS 383 introduces students to key concepts in the field of bioinformatics. Students work in cross-discipline pairs to process real genomic data sets. Students learn about types of DNA sequencing, analysis and visualization software (Qiime2 and R), building and running complex scientific workflows.
CS 388: Methods For Research and Dissemination in Computer Science
Credits 3This course provides an introduction to the process of proposal writing. In the course, students focus primarily on the learning of how to select an advanced topic, write an annotated bibliography, review related literature, and finally write a proposal.
CS 410: Networks & Networking
Credits 3CS 420: Operating Systems
Credits 3CS 430: Database Systems
Credits 3CS 440: Programming Languages
Credits 3CS 455: Computer Game Design Studio
Credits 1CS 474: Programming Music for Computer
Credits 3CS 481: Internship (requires departmental approval)
Credits 0 3An internship or practicum organized by the student in consultation with the adviser. Credits for the experience must be negotiated between the adviser and the on-site supervisor. The experience involves one of the following: (a) teaching or tutoring a second language, (b) a special research project or (c) interpreting / translation. Depending on the experience, students enhance their communicative skills, develop a critical understanding of linguistic and cultural differences, connect to other disciplines through languages, come to a deeper understanding of the role of translation in cross-cultural communication, and/or reflect on career and life goals.
CS 484: Faculty/Student Collaborative Research
Credits 1 3CS 485: Independent Study
Credits 1 3Investigation of a specific topic conceived and planned by the student in consultation with a faculty supervisor. Culminates in a comprehensive report prepared in the style of a thesis or research paper.
CS 488: Senior Seminar
Credits 3Each participant completes a semester-long capstone project in a research group setting. Weekly meetings are scheduled with the instructor individually and with the group as a whole. In addition, explores topics from the cultural, ethical, historical or broader scientific context of computer science in readings and discussion. Culminates in a public seminar and student presentation.