Computer Science
View courses in
- Computer Science
- All Departments
- African American Studies
- African Studies: Culture (in English)
- African Studies: East & South African Languages: Amharic, isiZulu
- African Studies: East African Languages: Swahili
- African Studies: South African Languages: isiXhosa
- African Studies: West African Languages: Hausa
- African Studies: West African Languages: Wolof
- Anthropology
- Arabic: Language, Literature, Culture (including courses in English)
- Archaeology
- Astronomy
- Biochemistry & Molecular Biology
- Biology
- Chemistry
- Chinese: Language, Literature, Culture (including courses in English)
- Classical Studies: incl. Classical Civilization and Tradition (in English), Ancient Greek, and Latin
- Classical Studies: Modern Greek
- Comparative Literature
- Computer Science
- Core Curriculum
- Earth Sciences
- Economics
- Editorial Studies
- English
- First Year Experience
- French: Language, Literature, Linguistics, Culture (including courses in English)
- Geography & Environment
- German: Language, Literature, Culture (including courses in English)
- Hebrew: Language, Literature, Culture (including courses in English)
- Hindi-Urdu: Language, Literature, Culture (including courses in English)
- History
- History of Art & Architecture
- Humanities
- International Relations
- Italian: Language, Literature, Culture (including courses in English)
- Japanese: Language, Literature, Culture (including courses in English)
- Korean: Language, Literature, Culture (including courses in English)
- Linguistics
- Marine Science
- Mathematics & Statistics
- Music
- Natural Sciences
- Neuroscience
- Persian: Language, Literature, Culture (including courses in English)
- Philosophy
- Physics
- Political Science
- Portuguese: Language, Literature, Culture (including courses in English)
- Psychology
- Religion
- Russian: Language, Literature, Culture (including courses in English)
- SEA Semester
- Sociology
- Spanish: Language, Literature, Culture (including courses in English)
- Turkish: Language, Literature, Culture (including courses in English)
- Women’s, Gender, & Sexuality Studies
- Writing
-
CAS CS 101: Introduction to Computers
The computer is presented as a tool that can assist in solving a broad spectrum of problems. This course provides a general introduction designed to dispel the mystery surrounding computers and introduces the fundamental ideas of programs and algorithms. (Does not count for CS major or minor credit.) Carries MCS divisional credit in CAS. -
CAS CS 103: Introduction to Internet Technologies and Web Programming
Introduction to the basic architecture and protocols underlying the operation of the Internet with an emphasis on Web design, Web application programming, and algorithmic thinking. General familiarity with the Internet is assumed. (Does not count for CS major credit.) Carries MCS divisional credit in CAS. -
CAS CS 105: Introduction to Databases and Data Mining
General introduction to databases. Topics include database technology and data modeling; knowledge discovery and data mining; data visualization. Applications are drawn from a variety of disciplines. (Does not count for CS major credit.) Carries MCS divisional credit in CAS. -
CAS CS 107: Computing in Machines and Nature
What is computing? Where can it take place? How can we recognize computing occurring in nature? This course looks beyond traditional electronic computers to present a modern view of computation, its limitations, and its realization in varying settings. (Does not count for CS major credit.) Carries MCS divisional credit in CAS. -
CAS CS 108: Introduction to Applications Programming
Introduction to object-oriented and procedural programming, including understanding fundamental constructs and patterns present in programming languages; using abstraction to simplify complex problems into concrete subtasks; methodical and efficient programming and debugging. Suitable for students not majoring in Computer Science. (Cannot be taken for credit in addition to CAS CS 111.) (Does not count for CS major credit.) Carries MCS divisional credit in CAS. -
CAS CS 109: The Art and Science of Quantitative Reasoning
Buying music on-line, making phone calls, predicting the weather, or controlling disease outbreaks would be impossible without mathematics, statistics, and computer science. Focuses on methods of reasoning common to these disciplines, and how they enable the modern world. (Does not count for CS major credit.) Also offered as CAS MA 109. Carries MCS divisional credit in CAS. -
CAS CS 111: Introduction to Computer Science I
The first course for computer science, mathematics, and physical science majors and others wishing a more technical approach than CAS CS 101 through 108. Develops basic skills in computer programming using the Java programming language. (Counts as a CS Background Course for the CS major and minor.) Carries MCS divisional credit in CAS. -
CAS CS 112: Introduction to Computer Science II
Covers advanced programming techniques and data structures. Topics include recursion, algorithm analysis, linked lists, stacks, queues, trees, graphs, tables, searching, and sorting. (Counts as a CS Background Course for the CS major and minor.) Carries MCS divisional credit in CAS. -
CAS CS 131: Combinatoric Stuctures
Representation, analysis, techniques, and principles for manipulation of basic combinatoric structures used in computer science. Rigorous reasoning is emphasized. (Counts as a CS Background Course for the CS major and minor.) Formerly CAS CS 113, therefore cannot be taken for credit in addition to CAS CS 113. -
CAS CS 132: Geometric Algorithms
Basic concepts, data structures, and algorithms for geometric objects. Examples of topics: Cartesian geometry, transformations and their representation, queries and sampling, triangulations. Emphasis on rigorous reasoning and analysis, advancing algorithmic maturity and expertise in its application. (Counts as a CS Background Course for the CS major and minor.) Formerly CAS CS 232, therefore cannot be taken for credit in addition to CAS CS 232. -
CAS CS 210: Computer Systems
Fundamental concepts of computer systems and systems programming. Hardware fundamentals including digital logic, memory systems, processor design, buses, I/O subsystems, data representations, computer arithmetic, and instruction-set architecture. Software concepts including assembly language programming, operating systems, assemblers, linkers, and systems programming in C. (Counts as a CS Background Course for the CS major and minor.) -
CAS CS 211: Object-Oriented Programming Paradigms
Intensive study of object-oriented generic programming paradigms, including inheritance, templates, generic patterns, and the Standard Template Library. Students design, implement, and test large-scale C++/C# programs involving file systems, databases, and graphical interfaces using integrated development platforms. (Does not count for CS major credit.) -
CAS CS 212: Distributed Programming Paradigms
Intensive study of object-oriented, distributed programming using C# in the .NET framework and the Common Language Runtime environment. Students develop networked applications involving web services and database managment systems. (Does not count for CS major credit.) -
CAS CS 235: Algebraic Algor
This course description is currently under construction. -
CAS CS 237: Probability in Computing
Introduction to basic probabilistic concepts and methods used in computer science. Develops an understanding of the crucial role played by randomness in computing, both as a powerful tool and as a challenge to confront and analyze. Emphasis on rigorous reasoning, analysis, and algorithmic thinking. (Counts as a CS Background course for the CS major and minor.) -
CAS CS 320: Concepts of Programming Languages
Concepts involved in the design of programming languages. Bindings, argument transmission, and control structures. Environments: compile-time, load-time, and run-time. Interpreters. -
CAS CS 330: Introduction to Analysis of Algorithms
Examines the basic principles of algorithm analysis; techniques of efficient programming; analysis of sorting and searching; graph algorithms; string-matching algorithms; matrix algorithms; integer and polynomial arithmetic; the fast Fourier transform; and NP-hard and NP-complete problems. -
CAS CS 332: Elements of the Theory of Computation
The basic concepts of the theory of computation are studied. Topics include models of computation, polynomial time, Church's thesis; universal algorithms, undecidability and intractability; time and space complexity, nondeterminism, probabilistic computation and reductions of computational problems. -
CAS CS 401: Senior Independent Work
-
CAS CS 402: Senior Independent Work

