Colby College Course CatalogueCourses of Study
  This page was last updated: 07/04/01 04:00:14 AM department page

Computer Science
search the catalogue
General Information
Colby's Mission and Goals
About Colby
Libraries
Information Technology
  Services

Special Programs
Career Services
Admissions
Orientation
Student Fees
Financial Aid
General Regulations

Academic Program
Academic Requirements
Academic Honors
Academic Programs
Academic Procedures

Courses of Study
Course Designations
Adminstrative Science
African-American Studies
American Studies
Ancient History
Anthropology
Art
Astronomy
Biology
Chemistry
Chinese
Classics
Computer Science
Creative Writing
East Asian Studies
Economics
Education and Human
  Development

English
Environmental Science
Environmental Studies
Field Experience, Internship
French
Geology
German and Russian
German
Government
Greek
History
Human Development
Indigenous Peoples
  of the Americas

Integrated Studies
International Studies
Italian
January Program
Japanese
Jewish Studies
Latin
Latin American Studies
Literature in Translation
Mathematics
Music
Philosophy
Physical Education
Physics
Psychology
Religious Studies
Russian
Science, Technology
  and Society

Selected Topics
Sociology
Spanish
Theater and Dance
Women's Studies

Directories
The Corporation:
  Officers, Trustees

The Corporation:
  Overseers, Museum
  Board and
  Alumni Council
  Executive Committee

Faculty: Emeriti,
  Named Chairs

Faculty: A-L
Faculty: L-Z
Faculty: On Leave
Faculty: Directors,
  Associates, Fellows,
  and Interns

Faculty: Marshals
  and Committees

Administration

Appendices
2000-2001 Calendar
2001-2002 Calendar
1999-2000 Catalogue

   

Chair: Professor Dale Skrien

Professor Skrien; Assistant Professors Clare Bates Congdon and Randolph Jones; Visiting Instructor Chris Fernandes

The department offers a major and a minor in computer science. The computer science major can be taken with honors.

Colby computer science majors in recent years have entered graduate school to do advanced work. They also have used the major as a solid foundation for careers in the computer industry.

Requirements for the Major in Computer Science
Computer Science 151, 231, 232, 333, 352 (or 353 or 398), 356 or 357, 375 or 378; Mathematics 121 or 161, 122 or 162; and four three- or four-credit computer science courses numbered 300 or above. One of the four additional computer science courses may be replaced with one course chosen from Mathematics 253, 274, 332, or 372.

Requirements for the Honors Program in Computer Science
An honors program is available for students majoring in computer science who have a grade point average of at least 3.25 in all courses for the major numbered 200 or higher and who complete an additional, pre-approved program of independent study in the major (Computer Science 484) culminating in both a written paper and a colloquium presentation. Students who successfully complete the requirements and who receive recommendation of the department will graduate "With Honors in Computer Science."

Requirements for the Minor in Computer Science
Six courses, including Computer Science 151, 231, 232, and three additional three- or four-credit computer science courses. One of the three additional computer science courses may be replaced with one course chosen from Mathematics 253, 274, 332, or 372. Computer Science 113 and 117 may not both count toward the minor.

The point scale for retention of the major/minor applies to all courses in the major/minor. No requirement for the major/minor may be taken satisfactory/unsatisfactory.

COURSE OFFERINGS

113f    Great Ideas in Computer Science    An introduction to computer science that provides an overview of the important ideas in the field. Topics may include history, programming, human-computer interaction, hardware, theory of computation, artificial intelligence, and social issues. A weekly laboratory session provides hands-on computer experience. No previous computer experience required. Four credit hours.  Q.    FERNANDES

[117]    Explorations with Robots    A gentle introduction to computer science and programming using small robots. Topics include building and programming small robots to perform a variety of simple tasks (such as line following or obstacle avoidance) and programming in a high-level language, such as C, to control the robots. Laboratory sessions provide hands-on experience. No previous experience with computers or robots is required. Not open to students who have taken higher-numbered CS courses. Offered in alternate years. Three credit hours.  Q.    

151fs    Structured Programming and Elementary Algorithms    Problem solving and programming in the high-level language Java. Topics include object-oriented design, algorithm development, control structures, recursion, data structures, and their implementation. A weekly laboratory session provides hands-on computer experience. No previous computer experience required. Four credit hours.  Q.    FERNANDES, JONES

231fs    Data Structures and Algorithms    Using Java, an introduction to the primary data structures and the algorithms that operate on them. Data structures to be studied include arrays, graphs, trees, stacks, and queues. The algorithms include searching, sorting, insertion, deletion, and traversal. A weekly laboratory session provides hands-on computer experience. Prerequisite: Computer Science 151. Four credit hours.    JONES, SKRIEN

232f    Computer Organization    An introduction to computer organization: memory, processors, input/output, virtual machines, and assembly language. Prerequisite: Computer Science 151. Four credit hours.    SKRIEN

[317]    Adaptive Agents and Robots    An exploration of autonomous (and semi-autonomous) computer systems that are able to adapt their behavior based on past experiences. Topics include adaptive small robots that learn to perform specific tasks (such as learning to navigate in an unfamiliar environment) and an introduction to a variety of learning approaches, such as neural networks, genetic algorithms, decision trees, and rule-based systems. Offered in alternate years. Prerequisite: Computer Science 231. Four credit hours.    

[319]    Cognitive Modeling    A multidisciplinary approach to the study of intelligence and the mind, bringing together the fields of psychology, computer science, philosophy, education, linguistics, anthropology, neuroscience, and logic, among others. Cognitive science derives its strength from a view of the mind as an information system, including processes that implement perception, memory, reasoning, language, learning, and consciousness. Prerequisite: One of the following: Computer Science 231, Psychology 122, Philosophy 152, Anthropology 113, or Biology 274. Four credit hours.    

328s    Machine Learning and Data Mining    A study of computer programs that are able to improve their performance with experience. Topics may include a variety of machine learning approaches, from those that induce patterns in data (called classification or data mining) to those that attempt to model human learning abilities; an emphasis is placed on machine learning as an experimental science. Prerequisite: Computer Science 231 and junior/senior standing or permission of the instructor. Four credit hours.    CONGDON

333s    Programming Languages    A survey of programming languages and programming language paradigms, including the history, design, and formal definitions of different languages. Includes study of imperative (e.g., C, Pascal, Ada, Fortran), logic (e.g., Prolog), functional (e.g., ML, Lisp, Scheme), and object-oriented (e.g., Java, Smalltalk, CLOS, C++, Eiffel) programming languages. Languages are compared to see how well they achieve the goals of solving various types of problems in an efficient and readable manner. Prerequisite: Computer Science 231. Four credit hours.    SKRIEN

352f    Information System Design    A theoretical and practical examination of the design process as it applies to information systems. Techniques for assessing the need for technology, specifying the system design, and involving users in the design process are explored. Design methods include future scenarios, mock-ups, rapid prototyping, field testing, and formative evaluation. Prerequisite: Computer Science 231. Four credit hours.    CONGDON

[353]    Artificial Intelligence    A broad, technical introduction to the central concepts of artificial intelligence and the design of advanced computing systems, together with discussion of the philosophical and ethical issues that surround the subject. Technical topics may include knowledge representation, deduction, expert systems, learning, natural language understanding, planning, robotics, search, vision, connectionism. Offered in alternate years. Prerequisite: Computer Science 231. Four credit hours.    

[355]    Human-Computer Interaction    Human-computer interaction spans the spectrum from interface design to envisioning social interactions in cyberspace. An introduction to theories of human-computer interaction, representations of information, and interface design. Advanced topics may include computer agents, computer-supported cooperative work (CSCW), and virtual reality. Offered in alternate years. Prerequisite: Computer Science 231. Four credit hours.    

356s    Introduction to Compiler Construction    Introduction to the theory, basic techniques, and design of compilers and interpreters of general purpose programming languages; grammars, symbol tables, lexical analysis, semantic analysis, code generation, and optimization. Offered in alternate years. Prerequisite: Computer Science 231 and 232. Four credit hours.    SKRIEN

[357]    Operating Systems    An introduction to systems programming concepts with an emphasis on timeshare systems and networking. Topics may include storage and memory management, scheduling, I/O, communication, and security. Offered in alternate years. Prerequisite: Computer Science 231 and 232. Four credit hours.    

[358]    Scientific Computing and Visualization    The large data sets that are common in scientific computing pose special problems for data storage, processing, transfer across networks, interpretation, and visualization. A practical introduction to the use of high-performance computing in areas of computational mathematics, chemistry, physics, and other sciences. Techniques discussed in class will be applied to problems from other disciplines. Prerequisite: Computer Science 231 or junior/senior standing in a science major. Four credit hours.    

369f    Design and Implementation of Computer Games    Hands-on study, design, and development of computer games, using the perspectives of technology, science, and art. Designing good computer games requires knowledge of appropriate technologies, multiple topics in computer science, art and design principles, and the social context in which computer games exist. Individual projects will be followed by a group project charged with the design and implementation of a complete computer game, emphasizing programming skill, design principles, and the use of existing tools. Prerequisite: Computer Science 231. Four credit hours.    JONES

375f    Analysis of Algorithms    Analysis of the space and time efficiency of algorithms. Graph, genetic, parallel, and mathematical algorithms as well as algorithms used in cryptology may be explored. Offered in alternate years. Prerequisite: Computer Science 231. Four credit hours.    FERNANDES

[378]    Introduction to the Theory of Computation    Formal languages, automata theory, computability, recursive function theory, complexity classes, undecidability. Offered in alternate years. Also listed as Mathematics 378. Prerequisite: Mathematics 274 or Computer Science 231 and either Mathematics 122 or 162. Four credit hours.    

393s    Computer Science Reading Seminar    A wide-ranging seminar in computer science on topics of interest organized and participated in by both students and faculty. The format typically entails discussions based on readings from current literature in computer science selected by the seminar participants. Intended to acquaint students with current research and issues in various fields of computer science. Nongraded. May be repeated for credit. Prerequisite: Permission of instructor. One credit hour.    FERNANDES

491f, 492s    Independent Study    Independent study in an area of computer science of particular interest to the student. Prerequisite: Permission of the instructor. One to four credit hours.    FACULTY

 

search the catalogue
 
Every effort is made to ensure that this information is correct. If you received conflicting information, have questions, or would like clarification, please contact the Registrar's Office at 207-872-3000.

Colby is a four-year, residential, liberal arts college in Waterville, Maine. Colby offers undergraduate courses during fall and spring semesters and grants bachelors of arts degrees.

Colby Home   |   Explore Colby   |  ColbyNEWS  |  Colby at a Glance
Campus Tour   |   Search   |   Contact

© Colby College   4000 Mayflower Hill Drive   Waterville, Maine 04901
T: 207-872-3000     F: 207-872-3555     web@colby.edu