Computer Science Chair: PROFESSOR DALE SKRIEN Professor Skrien; Assistant Professor Allen Downey; Visiting Assistant Professors Clare Congdon and Randy Jones 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.
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. MS. CONGDON 117j 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. Offered in alternate years. Four credit hours; three credit hours in January. Q. MS. CONGDON 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. Formerly offered as Computer Science 115. Four credit hours. Q. MR. DOWNEY, MR. JONES, AND MR. SKRIEN 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. Prerequisite: Computer Science 115. Four credit hours. Q. MR. DOWNEY AND MR. SKRIEN 232f Computer Organization An introduction to computer organization: memory, processors, input/output, virtual machines, and assembly language. Prerequisite: Computer Science 115. Four credit hours. MR. SKRIEN 317s 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. Course work will involve reading and discussion, building small robots, and several programming projects. Offered in alternate years. Prerequisite: Computer Science 231. Four credit hours. MS. 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. Programming projects in some of the languages is an integral part of the course. Prerequisite: Computer Science 231. Four credit hours. MR. 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. Includes a significant semester-long design project. Enrollment limited. Prerequisite: Computer Science 231. Four credit hours. MR. JONES [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. Enrollment limited. 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. [356] 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. Includes a large project in which students will implement a compiler. Offered in alternate years. Prerequisite: Computer Science 231 and 232. Four credit hours. 357s 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. MR. DOWNEY [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. The course offers a practical introduction to the use of high-performance computing in areas of computational mathematics, chemistry, physics, and other sciences. Students work on projects that apply techniques discussed in class to problems from other disciplines. Prerequisite: Computer Science 231 or junior/senior standing in a science major. Four credit hours. [375] 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. 378f 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. MR. SKRIEN 393f 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. MR. DOWNEY 397f Introduction to Cognitive Science and Cognitive Modeling A multi-disciplinary 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. Students read papers, engage in critical discussion, and learn about empirical methods for studying the mind; some hands-on work with computer models. Enrollment limited. Prerequisite: One of the following: Computer Science 231, Psychology 122, Philosophy 152, Anthropology 113, or Biology 274. Four credit hours. MR. JONES 484fs Honors Independent Study The independent study component of the honors program in computer science. Cannot be counted toward the major or minor. Prerequisite: Permission of the instructor and admission to the honors program. Three or four credit hours. FACULTY 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
|
Colby's Mission and Goals About Colby Campus Life Libraries Information Technology Services Special Programs Career Services Admission Orientation Student Fees Financial Aid General Regulations
|
||||||