Major and Minor
Faculty and professional interests
David Bunde, chair (on leave Winter and Spring 2013)
Parallel computing, algorithms
John Dooley, interim chair Winter and Spring 2013
Software development, cryptology, computer science education
Software engineering, configuration management systems
Computer Science is all about solving problems - mostly other people's problems. The Computer Science department teaches students to think precisely and abstractly in order to solve complex problems. With computational applications springing up in virtually every discipline, the programming and analytical abilities of the computer scientist are useful contributions to any modern liberal arts education. Students who choose computer science as their major field of specialization will find themselves in high demand for their ability to adapt to rapidly-changing technologies and to devise solutions using tools that didn't exist just a few years earlier.
Flexibility and techniques for learning are as important as the specific material of any course. The department emphasizes the development of logical reasoning and problem solving skills, using a variety of approaches, programming languages, and computer systems. Students also learn to communicate effectively in the language of the discipline, in writing as well as in discussion and formal presentation. The curriculum integrates the traditional and the innovative, teaching the background that computer professionals are expected to know along with the current state of the science and informed speculation about future directions.
Knox students enjoy excellent computing facilities, with comprehensive Internet connectivity via a campus-wide wireless network. In addition, computer laboratories are readily available, and through a generous grant from the Caterpillar Foundation the department has acquired a multi-processor Linux server and a state-of-the-art computer classroom. Two smaller laboratories containing Macintosh computers are also used for lab work in upper level classes and are available for individual work outside of class.
Computer Science majors all take several core courses at the 100 and 200 level, and choose advanced courses based on their preferences and career goals. Those students with particular individual interests are encouraged to pursue independent research through independent study courses, summer research programs, or a College Honors project. Students considering careers in engineering should read the catalog description of the cooperative engineering program.
Growing numbers of students use the summer months to participate in internships in business, industry, or academic settings. Recent internships have involved application development, industrial computing, library automation, a distributed query-based visualization system, visual computing, web development, and SQL programming. Some students work with Information Technology Services throughout the year, gaining first-hand experience in maintenance of networks and delivery of other central services. Other students work with local Galesburg schools and businesses in a variety of technical capacities. Still others work in the construction and maintenance of various departmental web sites.
On leaving Knox, computer science graduates go on to success in prestigious graduate schools and in employment in various fields such as business consulting and software development and in the computer divisions of banks, insurance companies, and corporations large and small.
The departmental curriculum contributes to the College's Key Competency Requirements as follows:
- Writing Key Competency - CS 292 and 322 serve as writing-intensive courses for majors. CS 127 is a writing-intensive course offered for non-CS majors
- Speaking Key Competency - CS 292, 322, 330, and 340 serve as speaking-intensive courses for majors
- Information Literacy and Informed Use of Technology - Information literacy and use of technology are central to Computer Science. All CS courses at the 200-level and above require students to critically evaluate both computer science literature and information acquired via the Internet. CS courses numbered 142 and above address knowledge of reading and evaluating on-line manual pages and programming language APIs.
Departmental Learning Goals
Students completing a major in Computer Science will be able to:
- Analyze problems from other disciplines and extract the computational elements of those problems
- Design efficient solutions to computational problems
- Develop new algorithms to solve computational problems, assess the complexity of the algorithm, and compare the algorithm to others in order to decide the best algorithm to use (from a set of algorithms) to solve a given problem
- Explain their design using terminology of the field
- Implement a design solution in a variety of programming languages
- Understand the inner workings of computers and be able to use that understanding to impact the efficiency of their solutions of computational problems