Undergraduate Courses

The following complete listing provides an overview of available courses; course titles link to individual course home pages where available.

For brief descriptions of courses and scheduled instructors, please consult the official Dartmouth Course Descriptions and Requirements published by the Office of the Registrar.  For detailed information about the terms and times that courses will be offered, the most reliable source is the Timetables page on the Registrar's site.  (Click on Subject Area(s), then search for COSC courses.)

A Note for Graduate Students

Certain undergraduate courses can be taken for graduate credit, although they do not count toward the Ph.D. degree requirement. Undergraduate courses that may be taken for graduate credit include 39, 55, 57, 58, 59, 60, 61, 76, and 81. Students taking these courses for graduate credit will be asked to do assignments in addition to those required of undergraduates taking these courses.

Course Dependency Graph

The course dependency graph below shows undergraduate courses in grey, undergraduate courses that can be taken for graduate credit in red, and graduate courses in blue. The arrows indicate prerequisite listed in the ORC. Click the image below to open a PDF version where each node is a link to the corresponding ORC entry.


COSC 1. Introduction to Programming and Computation

COSC 2. Programming for Interactive Audio-Visual Arts

COSC 10. Problem Solving via Object-Oriented Programming

COSC 11. renumbered to COSC 70.01

COSC 16. Introduction to Computational Neuroscience

COSC 20. Motion Study

COSC 21. Foundations of Digital Design

COSC 22. 3D Digital Modeling

COSC 24. Computer Animation: The State of the Art

COSC 25.01. UI/UX Design I

COSC 25.02. UI/UX Design II

COSC 27. Projects in Digital Arts

COSC 28. Advanced Projects in Digital Arts

COSC 29. Topics in Digital Arts

COSC 30. Discrete Mathematics in Computer Science

COSC 31. Algorithms

COSC 35. Data Stream Algorithms

COSC 39. Theory of Computation

COSC 40. Computational Complexity

COSC 49. Topics in Algorithms and Complexity

COSC 50. Software Design and Implementation

COSC 51. Computer Architecture

COSC 52. Full-Stack Web Development

COSC 55. Security and Privacy

COSC 56. Digital Electronics

COSC 57. Compilers

COSC 58. Operating Systems

COSC 59. Principles of Programming Languages

COSC 60. Computer Networks

COSC 61. Database Systems

COSC 62. Applied Cryptography

COSC 63. Programming Parallel Systems

COSC 65. Smartphone Programming

COSC 67. Introduction to Human-Computer Interaction

COSC 69. Topics in Computer Systems

COSC 70.01. Foundations of Applied Computer Science

COSC 71. Numerical Methods in Computation

COSC 72. Accelerated Computational Linguistics

COSC 73. Computational Photography

COSC 74. Machine Learning and Statistical Data Analysis

COSC 75. Introduction to Bioinformatics

COSC 76. Artificial Intelligence

COSC 77. Computer Graphics

COSC 78. Deep Learning

COSC 81. Principles of Robot Design and Programming

COSC 83. Computer Vision

COSC 84. Mathematical Optimization and Modeling

COSC 86. Computational Structural Biology

COSC 87. Rendering Algorithms

COSC 89. Topics in Applied Computer Science

COSC 91. Writing, Presenting, and Evaluating Technical Papers in Computer Science

COSC 94. Reading Course

COSC 98.01 Senior Design and Implementation Project I

COSC 98.02 Senior Design and Implementation Project II

COSC 99.01. Thesis Research I

COSC 99.02 Thesis Research II