Computer Science
View courses in
- Computer Science
- All Departments
- African American Studies
- American & New England Studies
- Anthropology
- Archaeology
- Astronomy
- Biochemistry & Molecular Biology
- Biology
- Chemistry
- Classical Studies
- Cognitive & Neural Systems
- Comparative Literature
- Computer Science
- Core Curriculum
- Earth Sciences
- Economics
- Editorial Studies
- English
- French Studies
- Geography & Environment
- History
- History of Art & Architecture
- Humanities
- International Programs
- International Relations
- Italian Studies
- Marine Science
- Mathematics & Statistics
- Modern Greek
- Modern Languages: African Languages & Linguistics
- Modern Languages: Arabic
- Modern Languages: Chinese
- Modern Languages: French
- Modern Languages: German
- Modern Languages: Hausa
- Modern Languages: Hebrew
- Modern Languages: Hindi
- Modern Languages: Italian
- Modern Languages: Japanese
- Modern Languages: Korean
- Modern Languages: Linguistics
- Modern Languages: Persian
- Modern Languages: Portuguese
- Modern Languages: Russian
- Modern Languages: Spanish
- Modern Languages: Turkish
- Money & Finance
- Music
- Natural Sciences
- Neuroscience
- Nigerien Studies
- Philosophy
- Physics
- Political Science
- Psychology
- Religion
- Social Sciences
- Sociology
- Spanish Studies
- Special Programs
- Women’s Studies
- Writing
-
CAS CS 410: Advanced Software Systems
Systems programming including such topics as project management, tools, I/O networking, multiprocessing, exception handling, and system services. Other topics are explored using C and Perl under the UNIX operating system. Requires a working knowledge of the C programming language and experience with UNIX as a user, or equivalent. -
CAS CS 411: Software Engineering
Introduction to the construction of reliable software. Topics may include software tools, software testing methodologies, retrofitting, regression testing, structured design and structured programming, software characteristics and quality, complexity, entropy, deadlock, fault tolerance, formal proofs of program correctness, chief program teams, and structured walk-throughs. -
CAS CS 440: Introduction to Artificial Intelligence
Introduction to computer systems that exhibit intelligent behavior, in particular, perceptual and robotic systems. Topics include human computer interfaces, computer vision, robotics, game playing, pattern recognition, knowledge representation, planning. -
CAS CS 450: Computer Architecture I
Overview of computer architecture. Topics include representation of information, combinational and sequential circuits, design and analysis; techniques of implementing algorithms in hardware: parallelism, pipelining; Von Neumann and data flow models of computation, and hardware implementations of both models. -
CAS CS 455: Computer Networks
Concepts underlying the design of high-performance computer networks and scalable protocols. Topics include Internet design principles and methodology, TCP/IP implementation, packet switching and routing algorithms, multicast, quality of service considerations, error detection and correction, and performance evaluation. -
CAS CS 460: Introduction to Database Systems
Introduction to database management systems. Examines entity-relationship, relational, and object-oriented data models; commercial query languages: SQL, relational algebra, relational calculus, and QBE; file organization, indexing and hashing, query optimization, transaction processing, concurrency control and recovery,integrity, and security. -
CAS CS 470: Performance Analysis
Introduction to measurement, modeling, and simulation of computer systems. Applications of probability and stochastic processes to computer systems modeling; queues and queuing networks; discrete event simulation. Applications in client/server systems and networking are emphasized. -
CAS CS 480: Introduction to Computer Graphics
Introduction to computer graphics algorithms, programming methods, and applications. Focus on fundamentals of two- and three-dimensional raster graphics: scan-conversion, clipping, geometric transformations, and camera modeling. Introduces concepts in computational geometry, computer-human interfaces, animation, and visual realism. -
CAS CS 491: Directed Study
-
CAS CS 492: Directed Study
-
CAS CS 511: Object-Oriented Software Principles
Specification, programming, and analysis of large-scale, reliable, and reusable Java software using object-oriented design principles. Topics may include object-oriented programming, object models, memory models, inheritance, exceptions, namespaces, data abstraction, design against failure, design patterns, reasoning about objects. -
CAS CS 520: Programming Languages
Concepts of programming languages: data, storage, control, and definition structures; concurrent and distributed programming; functional and logic programming. -
CAS CS 525: Compiler Design Theory
Covers the basic mathematical theory underlying the design of compilers and other language processors and shows how to use that theory in practical design situations. Topics may include lexical analysis, parsing, syntax-directed translation, code optimization, and code generation. -
CAS CS 530: Analysis of Algorithms
Studies the design and efficiency of algorithms in several areas of computer science. Topics are chosen from graph algorithms, sorting and searching, NP-complete problems, pattern matching, parallel algorithms, and dynamic programming. -
CAS CS 532: Computational Geometry
Studies the design, analysis, and implementtion of algorithms and data structures for solving geometric problems that arise in such diverse settings as computer graphics, robotics, databases, data mining, parallel computing, statistics, and pure mathematics. -
CAS CS 535: Complexity Theory
Covers topics of current interest in the theory of computation chosen from computational models, games and hierarchies of problems, abstract complexity theory, informational complexity theory, time-space trade-offs, probabilistic computation, and recent work on particular combinatorial problems. -
CAS CS 537: Randomness in Computing
Survey of probabilistic ideas of the theory of computation. Topics may include Monte Carlo and Las Vegas probabilistic computations; average case complexity and analysis; random and pseudorandom strings; games and cryptographic protocol; information; inductive inference; reliability;others. (Offered alternate years.) -
CAS CS 538: Fundamentals of Cryptography
Basic Algorithms to guarantee confidentiality and authenticity of data. Definitions and proofs of security for practical constructions. Topics include perfectly secure encryption, pseudorandom generators, RSA and Elgamal encryption, Diffie-Hellman key agreement, RSA signatures, secret sharing, block and stream ciphers. -
CAS CS 539: Methods of Scientific Computing
(Meets with CAS MA 539). An introductory survey of topics including computational linear algebra, solutions of linear equations, numerical integration and solution of differential equations, finite element methods, and methods of stochastic simulation (i.e., Monte Carlo methods). -
CAS CS 542: Machine Learning
Introduction to modern machine learning concepts, techniques, and algorithms. Topics include regression, kernels, support vector machines, feature selection, boosting, clustering, hidden Markov models, and Bayesian networks. Programming assignments emphasize taking theory into practice, through applications on real-world data sets.
Note that this information may change at any time.

