OBERLIN Online
Title: Purchasing & Auxiliary Services
Catalog Home  Contact Us  Directories  OBERLIN Online
Catalog HOME
General Information

College of Arts and Science
  General guidelines
  Degree programs
  Graduation Requirements
  Major and Minor Study
  Advising
  Academic Standing
  Grading
  Transfer of Credit
  Miscellaneous Information
  Abbreviations

Conservatory of Music

Double-Degree Program
Registrars Office

Arts and Sciences
In this Department

General Information

The London Semester

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.



In this Department

General Information

Courses in General Computing

The London Semester

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.


In this Department

General Information

Courses in Computer Science

The London Semester

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.


In this Department

General Information

The London Semester

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


    
   
copyright line comments Directories search ochome