The Undergraduate Computer Science Major
The field of computer science studies the process of computing,
using ideas drawn from the fields of system design, mathematics, and
engineering. The mathematical ideas are reflected in the courses on formal
languages, algorithms, and the theory of computation; ideas from system
design and engineering are reflected in the courses on data structures,
computer structure and organization, and compilers.
The various courses in the computer science curriculum are discussed
below; for additional details, consult the catalog descriptions of the
courses. Students may also consult the department's
advisory committee (DADCOM).
Gateway Courses
Computer Science I and II (COMP 211, 212) constitute the introductory
sequence. These courses focus on algorithmic problem-solving (as
embodied in programming) and the role of data structures in supporting
the development of algorithms and software systems. Computer Structure
and Operation (COMP 231) studies the organization and operation of
computers. The course on discrete mathematics (MATH 228) is typically
taken concurrently with COMP 212.
These four courses are typically taken in the first two years of study.
Core Courses
Formal Languages and Automata Theory (COMP 301) studies formal models
of computing devices and the the foundations of complier technology.
Algorithms and Complexity (COMP 312) studies the design
of algorithms and analyzes time and space requirements. Programming
Languages (COMP 321) studies various types of programming languages
and language issues such as data abstraction, modules, and concurrency
while Compilers (COMP 322) studies grammars, parsing, syntax-directed
translation, and code generation.
Electives
In addition to the core courses, the program provides several advanced
courses as well as a selection of topics courses under the heading
COMP 360.
For example, in the last few years courses have been offered
on cryptography, networking, databases, software development, as
well as several other topics.
In addition, exceptionally well prepared majors can enroll in graduate
courses in computer science.
Undergraduate Courses for Non-Majors
Many Wesleyan students may want to take some computer science courses
without necessarily completing a computer science major. The following
courses provide this opportunity.
-
Introduction to Programming (COMP 112) provides a detailed introduction to
programming and data structures using an imperative programming language.
-
Logic and Computation (COMP 131) is a first-year initiative (FYI) course.
It is a seminar-style course that introduces some
of the basic ideas in logic and computation and the connections between
the two fields.
-
Computing, Security, and Privacy (COMP 132) is a first-year initiative
(FYI) course. Technical and ethical issues related to computing are
covered in a lecture and discussion format.
|