|
|
 |
Computer
Science
Computer Science encompasses both the theoretical and the practical
aspects of the study of computers and algorithmic processes. Students
majoring in computer science at Oberlin are prepared both for further
graduate studies in the discipline and also for careers in the industries
and businesses that actively recruit computer scientists with a liberal
arts background. Computer Science at Oberlin is taught within the
context of a liberal arts degree, with emphasis on the lasting principles
of the discipline rather than on specific training in particular tools
and techniques. The CS Program stresses the fundamentals of computer
science while maintaining a highly current and relevant curriculum
utilizing state-of-the-art methodologies and tools. More detailed
information about the Computer Science major and minor can be found
below. Information about the Cognitive Sciences Concentration, which
also involves computer Science courses, can be found in that section
of this course catalog.
Advanced Placement. Students who have received a
score of 4 or 5 on the Advanced Placement AB examination in Computer
Science or a 6 or 7 on the International Baccalaureate Higher Level
examination are normally awarded eight hours of credit equivalent
to Computer Science 150 and 151. Students who have received a score
of 3 on the AB examination, a score of 3 or higher on the A examination,
or a 5 on the International Baccalaureate Higher Level Examination
in Computer Science are normally awarded four hours of credit equivalent
to Computer Science 150 and are encouraged to enroll in Computer Science
151 or 160 in their first semester. In some cases the advanced placement
examination booklet may be reviewed by the Computer Science faculty
before credit is granted. Other students with exceptional backgrounds
who believe that they have sufficient preparation to elect courses
for which Computer Science 150 or 151 are prerequisite should consult
with the director of the Computer Science Program to discuss appropriate
placement.
Entry-Level Course Sequence Suggestions. Students
who wish to begin their study of computer science will normally elect
Computer Science 150, the first course counted toward the major or
minor in computer science. Since the requirements for the major in
computer science are substantial, students planning to major in the
discipline are encouraged to begin their course work in the first
year at Oberlin, taking Computer Science 150 and 151 during that year
along with Mathematics 133 and 220. Students with significant prior
programming experience should consult with a faculty member to determine
an appropriate introductory course.
Students who are interested in developing significant computer skills
but are not interested in computer science per se are advised to enroll
in one of our 100-level non-major courses when offered.
Major. Computer Science courses that are applicable
to the major are listed below in the section "Courses in Computer
Science." The major consists of 10 such courses, including Computer
Science 210, 275, 280, and 383 and at least three other computer science
courses numbered 300 or above. Private Reading courses for fewer than
three hours do not normally count toward the major. Each Private Reading
course that is meant to count toward the major is subject to prior
approval by the CS faculty. In addition, a student is required to
complete successfully Mathematics 133, 220, and 232. Students may
substitute Mathematics 331 for one of the elective 300-level computer
science courses. More information about the Computer Science major
can be found on the CS
web server.
Minors. The Computer Science Program offers a minor
in Computer Science. Courses that are applicable toward this minor
are the same courses listed in the section "Courses in Computer Science."
The minor consists of five courses drawn from this listing. One of
these five courses must be a 300-level course.
The Third Stream Computing minor, which has been
offered in the past, will not be offered in 2003-2004.
Honors Program. In the spring of the junior year,
students may apply for admission to the Computer Science Honors Program
by submitting a proposal for a project they will undertake in their
final year. Admission to the program will be based on performance
in classes as well as the
quality and feasibility of the proposal. Those admitted to the program
will normally elect three or four credit hours of independent work
(Computer Science 401) each semester under the direction of a faculty
supervisor. Both theoretical investigations and actual implementations
are appropriate as honors projects.
Honors students take a comprehensive examination, with both written
and oral parts, at the end of the senior year. This examination is
normally administered by a scholar from outside the College and is
designed to test the candidate's mastery of undergraduate computer
science.
Winter Term. Some members of the computer science
faculty will be available during Winter Term to sponsor student projects.
Winter Term is an ideal time to learn new computer languages, to work
on major programming projects, or to approach areas of computer science
that are not covered by regular courses. Students are encouraged to
begin thinking about Winter Term projects early in the fall semester.
Computing Equipment. In addition to using the computer
laboratories maintained by the College Center for Information Technology
(CIT), the Computer Science Program maintains two computer-teaching
labs of its own in the King Building exclusively for the use of CS
students. Both of these labs feature late model Intel based computers
running both Linux and Windows operating systems. Altogether there
are 44 workstations in two labs, 24 in one lab and 20 in the other.
Students receive accounts on the CS Program's Sun Fire 280R Unix server
and on the CS Program's Windows domain servers thereby affording them
complete access to all College and CS networking services.
Courses
in General Computing
100. The Internet and Beyond 3 hours
3NS
First
Semester. A hands-on course in Internet web site development. Primary
emphasis is on each person building a complex web site focused on
some area of academic interest and competence using (a) the HTML mark-up
language, (b) programs supportive of web site construction (e.g. PhotoShop,
Dreamweaver), and (c) the Javascript scripting language, with strong
emphasis on the latter. About one-half the course deals with Javascript.
Enrollment Limit: 32.
Mr. Gegg-Harrison
101. Introduction to Computers and Computing 3 hours
3NS
Next
offered 2004-2005.
FYSP 155. Information, Knowledge and the Internet 3
hours
3NS,WR
First
Semester. For description, please see "First-Year Seminar Program"
in this catalog. Enrollment Limit: 14.
Mr. Geitz
221. Object-Oriented Computing 3 hours
3NS, QPf
Next
offered 2004-2005.
235. Computer Application Development 3 hours
3NS, QPf
Next
offered 2004-2005.
299. Seminar: Mind and Machine 3 hours
3NS
Second
Semester. An interdisciplinary exploration of how we think and how
machines "think". Contributions to our understanding of the mind from
artificial intelligence, neural networks, cognitive psychology, philosophy
of mind, linguistics, and neuroscience will be covered. The course
will be focused around 3 questions: How do we study the mind? How
can the mind be modeled? Do machines have a mind? No background in
computer use, programming or neuroscience is required. However, students
with a background in any or all of these areas will find this course
useful and are encouraged to enroll. Note: Open to students from all
departments and programs at all class levels. Enrollment Limit: 18.
Mr. Borroni
339. Projects in Computer Application Development 3
hours
3NS, QPf
Next
offered 2004-2005.
Courses
in Computer Science
150, 151. Principles of Computer Science 4 hours
4NS, QPf
First
and Second Semester. These courses introduce students to the major
concepts of algorithm design and problem solving using a computer.
Students are introduced to the fundamental concepts of programming
and the object-oriented programming methodology using the Java programming
language. Topics in CSCI 150 include basic data types and their operators,
classes, control structures, recursion, exception handling, and input/output.
Topics in CSCI 151 include object-oriented problem solving (inheritance,
polymorphism, and design patterns), elementary data structures (lists,
stacks, queues, hash tables, binary trees, binary search trees, and
binary heaps), and mathematical properties of program solutions (program
verification and the analysis of algorithm complexity). Note: Students
considering a computer science major are strongly encouraged to take
these courses in their first year. Prerequisite: CSCI 150 is a prerequisite
for CSCI 151. Enrollment Limit: 44.
Mr. Geitz, Mr. Gegg-Harrison
160. Advanced Principles of Computer Science 4 hours
4NS, QPf
First
Semester. Algorithm design and problem solving using the Java programming
language. Topics include object-oriented programming (inheritance,
polymorphism, and design patterns), elementary data structures (lists,
stacks, queues, hash tables, binary trees, binary search trees, and
binary heaps), and mathematical properties of program solutions (program
verification and the analysis of algorithm complexity). Note: Students
may not receive credit for both CSCI 151 and CSCI 160. Consent of
instructor required.
Mr. Donaldson
210. Computer Organization 3 hours
3NS, QPf
Second
Semester. An introduction to computer architecture and assembly language
programming. This course describes the organization of computers at
the digital logic, register transfer, and instruction set architecture
levels. Emphasis is placed on the design of a CPU and on the role
of the CPU within a computer system. The course will teach an assembly
language using the computer laboratory facilities.
Mr. Donaldson
215. Cryptography 3 hours
Next
offered 2004-2005.
241. Systems Programing (C/C++ Programming) 3 hours
3NS, QPf
First
Semester. This course will consider the C programming language and
its relationship to the Unix operating system. It will also introduce
the C++ language and focus on differences between the Java and C++
Apls. Some Unix system programminig issues will also be included.
The course will require a significant amount of programming. Prerequisite:
CSCI 151, or CSCI 160 or CSCI 210.
Mr. Salter
275, 280. Algorithms, Structures and Abstractions 4
hours
4NS, QPf
First
(275) and Second Semester (280). Taken in sequence, these two courses
provide a one-year introduction to intermediate and advanced topics
in computer science, including functional programming (higher-order
functions, recursive data structures and recursive algorithms); imperative
programming (state, mutable data structures and imperative algorithms);
objects, classes and templates; type systems; procedural, data and
control abstractions; algorithmic design and analysis; data structure
design. Note: CSCI 280 no longer includes instruction in the C programming
language. For this see CSCI 241. Prerequisite: CSCI 151 or consent
of the instructor. Co-requisite: MATH 220. Enrollment Limit: 50.
Mr. Salter, Mr. Geitz
307. Programming Languages 3 hours
3NS
First
Semester. This course will address advanced topics in programming
languages, including a survey of different programming paradigms (functional,
imperative, logic, etc.) the theory of data types, and semantic models
(operational, axiomatic and denotational). The course will include
significant hands-on experimentation (i.e. programming) in different
paradigms to illustrate theoretical concepts. Prerequisite: CSCI 280
or consent of instructor.
Mr. Gegg-Harrison
309. VLSI Physical Design Automation 3 hours
3NS
Next
offered 2004-2005.
311. Database Systems 3 hours
3NS
Second
Semester. This course examines the logical organization of databases:
the entity-relationship, network, relational, and object-oriented
models, and their languages. Other topics include security and integrity:
concurrency control and distributed database systems. Prerequisite:
CSCI 275 or consent of the instructor.
Mr. Donaldson
313. Human Computer Interaction 3 hours
3NS
Next
offered 2004-2005.
317. Computer Architecture 3 hours
Next
offered 2004-2005.
331. Compilers 3 hours
3NS,
QPf
First Semester. A laboratory course on translating programs to machine
language. Emphasis will be given to the four main steps of compilation:
lexical analysis, parsing, type checking and code generation; some
attention will also be paid to code optimization. Alternative strategies
will be considered for a language developed for this course. Given
in alternate years only. Prerequisites: CSCI 210 and CSCI 275 or consent
of the instructor.
Mr. Donaldson
341. Operating Systems 3 hours
3NS
Next
offered 2004-2005.
342. Computer Networks 3 hours
3NS, QPf
Next
offered 2004-2005.
357. Computer Graphics 3 hours
3NS
Next
offered 2004-2005.
360. Bioinformatics 3 hours
3NS
Next
offered 2004-2005.
362. Advanced Software Development 3 hours
3NS
Next
offered 2004-2005.
364. Artificial Intelligence 3 hours
3NS
Next
offered 2004-2005.
366. Logic Programming 3 hours
3NS
Next
offered 2004-2005.
383. Theory of Computer Science 3 hours
3NS, QPf
Second
Semester. A study of computability, enumerability, and decidability
from a machine approach (finite state automata, push-down automata,
Turing machines), a language approach (regular grammars, context-free
grammars, unrestricted rewrite systems, the Chomsky hierarchy), and
the recursive function approach. In the final weeks of the semester,
the theory of NP-Completeness will be discussed, along with the notion
of reductions and Cook's theorem. Prerequisite: MATH 220 or consent
of the instructor.
Mr. Geitz
401. Honors 2-4 hours
2-4NS
Honors
sponsored by Mr. Donaldson, Mr. Gegg-Harrison, and Mr. Geitz. Consent
of instructor required.
995. Private Reading 1-3 hours
1-3NS
Private
readings sponsored by Mr. Borroni, Mr. Donaldson, Mr. Gegg-Harrison,
Mr. Geitz, and Mr. Salter. Consent of instructor required.
The
London Semester
967. The Language of Life: The Genetic Code 6 hours
6NS
Second
Semester. For this course description please refer to the "London
Program" section of this catalog. Note: This course provides four
hours of credit toward the requirement of the computer science major
and six hours of credit towards the requirement of the biology major.
Ms. Treichel, Mr. Salter
969. Breaking The Code: The Collision of Computing
and Cryptology in 6 hours
Wartime Britain That Led To The Modern Digital Computer
6NS, QPh
Second Semester. For this course description please refer to the "London
Program" section of this catalog. No mathematics beyond college algebra
is required. Note: This course provides six hours of credit toward
the requirement of the computer science major.
Mr. Salter
|