OBERLIN Online  Title: Purchasing & Auxiliary Services
Catalog Home  Contact Us  Directories OBERLIN Online
In this Department

General Information

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 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. While CSCI 150 is self-contained, it moves quickly through issues that students with some programming experience will have seen before. Students with no prior experience may wish to take CSCI 140 before starting the 150-151 sequence. Since the requirements for the major in computer science are substantial, students planning to major in the discipline are encouraged to begin their coursework 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 (www.cs.oberlin.edu/).

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 this year.

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.



In this Department

General Information

Courses in General Computing
Courses in General Computing

100. The Internet and Beyond
3 hours, 3NS
Second 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.
Staff

140. Introduction to Computer Science
3 hours, 3NS, QPf
Second Semester.
This course provides an introduction to programming and algorithmic thinking. It is aimed at students with little or no prior programming experience who would like to know how software is developed or who would like to be able to write short programs for data manipulation. It is also useful as preparation for students with no programming experience who want to take the CSCI 150,151 sequence. No prerequisites.
Mr. Geitz

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

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 three 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: 15.
Mr. Borroni


In this Department

General Information

Courses in Computer Science
Courses in Computer Science

150, 151. Principles of Computer Science
4 hours, 4NS, QPf
First and Second Semester.
These courses introduce students to 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, elementary data structures and mathematical properties of program solutions. Prerequisite: CSCI 150 is a prerequisite for CSCI 151. Notes: Students considering a computer science major are strongly encouraged to take these courses in their first year. Students may not receive credit for both CSCI 151 and CSCI 160. Enrollment Limit: 48.
Mr. Bonakdarian

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.
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. This course will teach an assembly language using the computer laboratory facilities.
Mr. Salter

215. Cryptography
3 hours, 3NS, QPf
Next offered 2006-2007.

241. Systems Programming (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++ applications. 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. Bonakdarian

275. Programming Abstractions
4 hours, 4NS, QPf
First Semester.
Programming language fundamentals are studied as abstract concepts using the programming language Scheme. Included are the notions of closures, first-class data structures, procedure and data abstraction, object-oriented programming, continuations, compilation and interpretation, and syntactic extension. Some advanced control structures such as coroutines and asynchronous interrupts may also be included. Prerequisite: CSCI 151 or consent of the instructor. Co-requisite: MATH 220. Enrollment Limit: 48.
Mr. Salter

280. Introduction to Algorithms
3 hours, 3NS, QPf
Second Semester.
Students will be introduced to the fundamentals of data structure and algorithm analysis and development, with an emphasis on applications to real-life problems. Students will both study the basic techniques of the field from a theoretical perspective and study how to adopt those techniques in order to solve real problems in simple, efficient ways. Knowledge of discrete mathematics is necessary; knowledge of the C++ programming language is strongly recommended. Note: CSCI 280 no longer includes instruction in the C programming language. For this see CSCI 241. Prerequisite: CSCI 275. Co-requisite: MATH 220. Enrollment Limit: 48.
Mr. Bonakdarian

307. Programming Languages
3 hours, 3NS, QPf
Second 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. Salter

311. Database Systems
3 hours, 3NS, QPf
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.
Mr. Geitz

317. Computer Architecture
3 hours, 3NS, QPf
First Semester.
An in-depth study of the advanced techniques used in modern processors to achieve high performance. Topics covered will include Amdahl's law, superscalar and pipelined processors, pipeline hazards, instruction-level parallelism, cache memory design, and multiprocessor design. Prerequisite: CSCI 210.
Mr. Donaldson

331. Compilers
3 hours, 3NS, QPf
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 each of these steps. Each student will write a compiler (approximately 4,000 lines of C code) for a language developed for this course. Given in alternate years only. Prerequisites: CSCI 210 and CSCI 275 or consent of the instructor.
Staff

341. Operating Systems
3 hours, 3NS

Next offered 2006-2007.

342. Computer Networks
3 hours, 3NS, QPf
Next offered 2006-2007.

357. Computer Graphics
3 hours, 3NS

Next offered 2006-2007.

358. Computer Animation
3 hours, 3NS, QPf
First Semester.
This is a programming-based introduction to the theory and practice of 3D digital modeling and computer animation. Topics will include traditional animation techniques such as storyboarding, keyframing and tweening, as well as digital techniques for modeling, lighting, tracking and simulation. Prerequisites: MATH 232 and CSCI 151, or consent of the instructor. Notes: CSCI 272 and 280 are helpful but not required. Taught in alternate years only.
Mr. Geitz

360. Bioinformatics
3 hours, 3NS
Next offered 2006-2007.

364. Artificial Intelligence
3 hours, 3NS

Next offered 2006-2007.

365. Advanced Algorithms
3 hours, 3NS

Next offered 2006-2007.

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. Bonakdarian, Mr. Borroni, Mr. Donaldson, Mr. Geitz, and Mr. Salter. Consent of instructor required.

995. Private Reading
1-3 hours, 1-3NS
Private readings sponsored by Mr. Bonakdarian, Mr. Borroni, Mr. Donaldson, Mr. Geitz, and Mr. Salter. Consent of instructor required.
    
   
copyright line comments Directories search ochome