The material on this page is from the 2001-02 catalog and may be out of date. Please check the current year's catalog for current information.

The Bates College Catalog 2001-2002
Mathematics and Computer Science: Courses in Computer Science 

[Mathematics]

Courses
101. Computer Science I. An introduction to computer science, with the major emphasis on the design, development, and testing of computer software. It introduces the student to a disciplined approach to algorithmic problem-solving in a modern programming environment using an object-based event-driven programming language. Students develop programs in Visual BASIC to run under the Windows operating system. The course has an associated laboratory that provides hands-on experience. Students complete a substantial individual or group project. S. Ross.

102. Computer Science II. A continuation of Computer Science I. The major emphasis of the course is on advanced program design concepts and techniques, and their application to the development of high quality software. Specific topics covered include the software development cycle, abstract datatypes, files, recursion, and object-oriented programming. Computer Science 101 and 102 provide a foundation for further study in computer science. Prerequisite(s): Computer Science 101. Enrollment limited to 25. S. Ross.

205. Discrete Structures. This course provides an introduction to logic, mathematical reasoning, and the discrete structures that are fundamental to computer science. Learning to reason effectively about discrete structures and, thereby, about the behavior of computer programs is the primary goal of the course. Learning to read and write clear and correct mathematical proofs is an important secondary aim. Specific topics include propositional and predicate logic, logic circuits, basic set theory, relations, functions, induction, recursion, and graph theory. Prerequisite(s) or Corequisite(s): Computer Science 101. Not open to students who have received credit for Mathematics s21. Open to first-year students. D. Haines.

301. Algorithms. The course covers specific algorithms (e.g., searching, sorting, merging, numeric, and network algorithms), related data structures, an introduction to complexity theory (O-notation, the classes P and NP, NP- complete problems, and intractable problems), and laboratory investigation of algorithm complexity and efficiency. Prerequisite(s) or Corequisite(s): Computer Science 102, and either Computer Science 205 or Mathematics s21. Staff.

302. Theory of Computation. A course in the theoretical foundations of computer science. Topics include finite automata and regular languages, pushdown automata and context-free languages, Turing machines, computability and recursive functions, and complexity. Prerequisite(s): Computer Science 102, and either Computer Science 205 or Mathematics s21. D. Haines.

303. Principles of Computer Organization. Computer and processor architecture and organization including topics such as operating systems, buses, memory organization, addressing modes, instruction sets, input/output, control, synchronization, interrupts, multiprocessing, and multitasking. The course may include training in digital logic, machine language programming, and assembly language programming. Prerequisite(s) or Corequisite(s): Computer Science 102 and either Computer Science 205 or Mathematics s21. Not open to students who have received credit for Computer Science 201. S. Ross.

304. Principles of Programming Languages. An introduction to the major concepts and paradigms of contemporary programming languages. Concepts covered include procedural abstraction, data abstraction, tail-recursion, binding and scope, assignment, and generic operators. Paradigms covered include imperative (e.g., Pascal and C), functional (e.g., LISP), object-oriented (e.g., Smalltalk), and logic (e.g., Prolog). Students write programs in SCHEME to illustrate the paradigms. Prerequisite(s): Computer Science 102, and either Computer Science 205 or Mathematics s21. Not open to students who have received credit for Computer Science 202. Staff.

360. Independent Study. Students, in consultation with a faculty advisor, individually design and plan a course of study or research not offered in the curriculum. Course work includes a reflective component, evaluation, and completion of an agreed-upon product. Sponsorship by a faculty member in the program/department, a course prospectus, and permission of the chair is required. Students may register for no more than one independent study per semester. Staff.

365. Special Topics. A seminar usually involving a major project. Recent topics have included the mathematics and algorithms of computer graphics, in which students designed and built a computer-graphics system, and contemporary programming languages and their implementations, in which students explored new languages, in some cases using the Internet to obtain languages such as Oberon, Python, Haskell, and Dylan. Written permission of the instructor is required. Staff.

Short Term Units
s45. Seminar in Computer Science. The content varies. Recent topics include cryptography and data security, computers and contemporary society, and functional programming. Prerequisites vary with the topic covered. Staff.

s50. Independent Study. Students, in consultation with a faculty advisor, individually design and plan a course of study or research not offered in the curriculum. Course work includes a reflective component, evaluation, and completion of an agreed-upon product. Sponsorship by a faculty member in the program/department, a course prospectus, and permission of the chair is required. Students may register for no more than one independent study during a Short Term. Staff.



[home] [up] [reply] [help]

© 2001 Bates College.
All Rights Reserved.
Last Modified: 8/22/01 by tins