- Why Colby?
- Request Information
- College Profile
- Student Perspectives
- Alumni Success
- For Counselors
- Contact Admissions
|This page was last updated: 07/04/01 04:00:14 AM|
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
Requirements for the Honors Program in Computer Science
Requirements for the Minor in Computer Science
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.
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
 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
 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.
 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
 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.
 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
 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.
 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
 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
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.