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 4A systematic introduction to the methodology of problem solving with computers. Emphasizes the design and development process, data abstraction and fundamental data structures, programming for reuse and the development of large programs. Introduces the basic notions of software engineering and analysis of algorithms. Discusses ethical issues in computing.
CS 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 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 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 based 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 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 4This is a laboratory-oriented course dealing with analog and digital circuits. Circuit theory is developed for diodes, transistors, operational amplifiers and integrated circuits. These components are used to construct a range of devices, including power supplies, oscillators, amplifiers and logic circuits. Laboratory work will allow students to gain an operational understanding of these basic concepts. Skills debugging, circuit building, and reading circuit diagrams will be stressed.
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 375: Cyberethics in the Current Age
Credits 3In this course, students grapple with ethical issues related to technology. We examine who benefits and who is harmed by technologies - especially insofar as these technologies might amplify existing marginalities and privileges. We also consider unintended consequences of technologies and develop various lenses to examine technologies for their social, ethical, and social justice consequences.
CS 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 Computers
Credits 3This course combines traditional approaches to composing and arranging for the Western symphony orchestra with a software-based approach using MIDI and sampled acoustic instruments. Both approaches will be taught in conjunction with analyses of classic and contemporary film scoring techniques. Projects can be realized using either traditional music notation or the MIDI system. A final project will include the scoring of an original short video or a video in public domain.
CS 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 student, adviser and the on-site supervisor. Depending on the specifics of the experience students may develop their software development, system analysis, communication, or other critical skills.
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.