logo

figure

course catalog

e-mail

contact us

search

home



In this Department

Catalog 

 Other Links

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.

In addition to the major and minor in computer science the department also offers an innovative minor in "Third Stream Computing" which stresses computer application development and information technology management in support of academic majors other than traditional computer science. Some courses in the Computer Science curriculum qualify for inclusion in the Cognitive Sciences Concentration. More detailed information about the Computer Science major and minors can be found below and information about the Cognitive Sciences Concentration 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 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 as freshmen, taking Computer Science 150 and 151 during that year along with Mathematics 133 and 220. Students with significant prior programming experience are strongly encouraged to begin their CS study immediately with Computer Science 160. Persons taking 150 in the second semester may want to enroll in 160 the following semester.

Students who are interested in developing significant computer skills but are not interested in computer science per se are advised to start with one of the 100-level courses listed in the section "Courses in Third Stream Computing."

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 successfully complete 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 two minors, one in Computer Science and one in Third Stream Computing.

Courses that are applicable to the minor in Computer Science proper are listed below in the section "Courses in Computer Science." This minor consists of five such courses as specified below. One of these courses must be at the 300 level.

The minor in Third Stream Computing is especially designed for students from all departments and programs in the College who want to use computers as a tool in support of some academic major other than computer science. It is meant primarily for the student who is interested in developing significant computer application development skills - particular web site design and development skills - but who does not have the time or desire to take the more technical and complex course of studies needed for the computer science major. "Third" in "third stream" comes from designating traditional computer science per se as first stream and computer literacy as second stream. Third stream courses offer more substantial computing skills than is usually the case with "second stream" courses while not being as technically and mathematically rigorous as with "first stream" courses.

The Third Stream minor consists of 15 credit hours selected from the courses listed below. Three of these courses (nine hours total) are required: CSCI 100 or 101, 235, and 339. The CSCI 100 or 101 requirement can be waived if the student can demonstrate that he or she has learned a high level of HTML coding and significant JavaScript programming skills. A fourth course, CSCI 221, is also highly desirable, but not required, of all students planning to take CSCI 339. A student can transfer three to six additional credit hours into the minor from another department or program (a) if the instruction involved is computer intensive, (b) if it is relevant to the student's area of expertise, and (c) if the Computer Science Program approves the transfer. Three credits earned in more advanced courses from the major curriculum in computer science may also be transferred to the minor with Program approval. Advanced Placement credit may be applied to this minor in appropriate situations. More detailed information on this minor is available from the Third Stream web site (www-ts.cs.oberlin.edu/) or from Mr. Koch.

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 Computing Center, 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 Alpha Server 1200 5/400 Unix server and on the CS Program's Windows domain servers thereby affording them complete access to all College and CS networking services.

 

back to top

Courses in Third Stream Computing
(Computing in the Liberal Arts)

 

The required first course for the Third Stream minor is either CSCI 100 or CSCI 101. One or the other of these courses is prerequisite for CSCI 235.

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. This course or CSCI 101 is required for the minor in Third Stream computing and one or the other is prerequisite for CSCI 235. Preference given to those intending to minor in Third Stream computing. Enrollment Limit: 40.

Staff

101. Introduction to Computers and Computing 3 hours
3NS
Second Semester. The course will cover server-client networks, database systems, spreadsheets, web site creation, the use of a markup language (HTML and/or XML), and the use of a scripting language (Javascript). The students' lab assignments and final project will allow them to explore these areas using Macintosh and/or Windows computers and software. This course or CSCI 100 is required for the minor in Third Stream computing and one or the other is prerequisite for
CSCI 235. Preference given to those intending to minor in Third Stream computing.
Enrollment Limit: 40.

Staff

221. Object-Oriented Computing 3 hours
3NS, QPf

Next offered 2003-2004.

235. Computer Application Development 3 hours
3NS, QPf
Second Semester. Students learn multimedia application development in the context of the Internet and web site development. Development systems used will focus on Flash5 and other current web development tools. Second of three required courses for the Third Stream minor. Prerequisites: CSCI 100 or CSCI 101 and consent of instructor. Preference given to those intending to minor in Third Stream computing. Enrollment Limit: 31

Staff

299. Seminar: Mind and Machine 3 hours
3NS

Next offered 2003-2004.

339. Projects in Computer Application Development 3 hours
3NS, QPf
First Semester. Course in advanced web site design and development. Focus on database programming for web sites using Active Server Pages (ASP) scripting with VBScript and Javascript server-side and client-side scripting. Capstone course for the Third Stream minor. Prerequisites: CSCI 235 and consent of instructor required.
Mr. Koch

back to top

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). 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. Gegg-Harrison, Mr. Donaldson

160. Advanced Principles of Computer Science 4 hours
4NS, QPf
First Semester. Algorith design and problem solving using the Java programming language. Topics include object-oriented programming (inheritance, ploymorphism, 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). Students may not receive credit for both CSCI 151 and CSCI 160. Prerequisite: Consent of instructor.

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. Salter

215. Cryptography

Next offered 2003-2004.

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) Second (280) Semester. 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. Prerequisite: CSCI 151 or consent of the instructor. Co-requisite: MATH 220. Enrollment Limit: 50.

Mr. Salter, Mr. Karro

307. Programming Languages 3 hours
3NS

Next offered 2003-2004.

309. VLSI Physical Design Automation 3 hours
3NS
First Semester. A survey of the computational problems arising in the process of designing computer chips, and of the solutions commonly used to solve these problems in industry. Topics covered will include the circuit partition problem, placement and routing for both application-specific and field-programmable logic devices, and those parts of computational geometry that can be used to model aspects of design problems (e.g. steiner trees and convex hulls). No background in electrical engineering or computer architecture will be needed, but the student must have a basic understanding of algorithms and algorithmic analysis (as provided in CS280). Prerequisites: MATH 220, CSCI 280. Enrollment Limit: 20

Mr. Karro

311. Database Systems 3 hours
3NS

Next offered 2003-2004.

313. Human Computer Interaction 3 hours
3NS

Next offered 2003-2004.

317. Computer Architecture

Next offered 2003-2004.

331. Compilers 3 hours
3NS, QPf

Next offered 2003-2004.

341. Operating Systems 3 hours
3NS
First Semester. The theory of operating system fundamentals and a survey of operating system functions. Concepts and techniques of concurrent programming are covered, relevant to the design of operating system kernels. Such functions as process management, interprocess communication, memory management, and file management are included. The Unix operating system serves as a case study. Given in alternate years only. Prerequisites: CSCI 210 and CSCI 275 or consent of instructor.

Mr. Donaldson

342. Computer Networks 3 hours
3NS, QPf
Second Semester. Networks are a central part of any modern computing system. This course will first consider the design of contemporary local and wide-area networks in terms of their abstract layers (i.e. the TCP/IP and OSI reference models) and then focus on actual implementations of those layers. Case studies will include the Internet and Novel NetWare. If it can be arranged, a small laboratory will be dedicated to this class for experimentation. Prerequisites: CSCI 210 or consent of the instructor.

Mr. Salter

357. Computer Graphics 3 hours
3NS
Second Semester. An introduction to the theory and practice of computer graphics. Topics include graphics hardware, 2D and 3D transformations, perspective displays and clipping, hidden surfaces, color and shading, lighting models, splines, and fractals. This course emphasizes algorithms and techniques for 3D image synthesis. Given in alternate years only. Prerequisite: MATH 232, CSCI 151, or consent of the instructor. CSCI 275 and 280 are helpful but not required.

Mr. Donaldson

360. Bioinformatics 3 hours
3NS
Second Semester. An overview of the computational problems arising in the analysis of DNA. Topics covered will include those of sequencing and sequence comparison, DNA arrays, alignments and gene prediction. Using mathematical representations of the problems, and internet data bases to provide actual data, students will examine and algorithms and develop programs to solve relevant problems. No background in biology or genetics is needed, but the student must have a basic understanding of algorithms and algorithmic analysis. Prerequisites: MATH 220, CSCI 280. Enrollment Limit: 20

Mr. Karro

362. Advanced Software Development 3 hours
3NS
First Semester. An advanced study of object-oriented software design and implementation. Topics include design patterns, UML diagrams, design by contract, software life cycles, verification, testing, and debugging. Students will build a large-scale computing application utilizing team development techniques. Prerequisite: CSCI 280.

Mr. Gegg-Harrison

364. Artificial Intelligence 3 hours
3NS

Next offered 2003-2004.

366. Logic Programming 3 hours
3NS
Second Semester. An introduction to the theoretical foundations of logic programming. Topics include predicate calculus, unification, resolution, negation, automated theorem proving, implementation of logic programming languages, and applications of logic programming. Logic programming languages such as Prolog and _Prolog will be covered in detail. Prerequisite: CSCI 280.

Mr. Gegg-Harrison

383. Theory of Computer Science 3 hours
3NS, QPf
First 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. Karro

401. Honors 2-4 hours
2-4NS

Honors sponsored by Mr. Donaldson, Mr. Gegg-Harrison, Mr. Karro, Mr. Salter. Consent of instructor required.

995. Private Reading 1-3 hours
1-3NS
Private readings sponsored by Mr. Donaldson, Mr. Gegg-Harrison, Mr. Karro, Mr. Koch, Mr. Salter. Consent of instructor required.

back to top

copyright

line

comments

email

search

ochome