Computer science is a dynamically growing discipline. In recognition of this fact, the Department of Computer Science is committed to providing students with a program that includes the basic fundamentals of the field and allows students the flexibility to pursue in depth many of the diverse areas into which computer science is expanding. This is accomplished by providing both instruction in the theoretical principles and experience with a diverse collection of modern hardware and software technologies. The faculty and students of the department cooperatively carry out research in the areas of web technologies, algorithm animation, bioinformatics, networking, educational technology, volunteer computer games, combinatorial algorithms, and mobile computing.
The department offers major programs that emphasize problem solving and communication skills and allow students the flexibility to design programs suitable for their interests and goals. Each student's major program, designed by the student and a departmental advisor, includes a core of computer science courses, a strong component of courses in some field to which computer science can be applied and a senior project seminar involving research or software development under the supervision of a member of the Hope College faculty. By following an appropriate major program, students may prepare themselves for graduate study in computer science or computer science careers involving applications programming, systems programming, systems and network analysis, computer graphics, Web technology, teaching, or software engineering.
A full listing of all courses offered by the department is available here.
Hope students can earn a Bachelor of Arts or Bachelor of Science degree with a major in computer science, or complete a minor in Computer Science. The requirements for each of these courses of study are shown below:
- Bachelor of Arts
- Bachelor of Science
- Minor in Computer Science
A.B. in Computer Science - 32 credits
| Course | Credits | Semester | Prerequisites |
|---|---|---|---|
| 112 - Exploring Computer Science OR 114 - Introduction to Computer Science |
2 | Fall (112) Both (114) |
None |
| 225 - Software Design and Implementation | 4 | Both | None |
| 235 - Data Structures and Software Design | 4 | Spring | CSCI 225 |
| 245 - Programming Language Paradigms | 2 | Fall | CSCI 225 |
| 250 - Discrete Structures | 2 | Spring | CSCI 112 |
| 260 - Computer Organization | 2 | Fall | CSCI 112 |
| 481 - Senior Project Seminar | 2 | Fall | CSCI 235; Senior standing |
Choose at least 2 courses, with at least 1 course from 2 of the 3 groups
| Course | Credits | Semester | Prerequisites | Group |
|---|---|---|---|---|
| 321 - Applications Programming | 4 | Fall even years | CSCI 112/235 | Applications |
| 342 - Computer Graphics | 4 | Fall even years | CSCI 112/235 | |
| 392 - Database Systems | 4 | Fall odd years | CSCI 112/235 | |
| 361 - Programming Language Design & Implementation | 4 | Spring even years | CSCI 112/235/245 | Foundations |
| 385 - Advanced Data Structures & Algorithms | 4 | Fall odd years | CSCI 112/235/245/250 | |
| 335 - Computer Architecture | 4 | Spring odd years | CSCI 112/260 | Systems |
| 354 - Operating Systems | 4 | Spring even years | CSCI 112/245/260 | |
| 376 - Computer Networks | 4 | Spring odd years | CSCI 112/245/250 |
B.S. in Computer Science - 60 credits (38 Computer Science, 22 math/science)
| Course | Credits | Semester | Prerequisites |
|---|---|---|---|
| 112 - Exploring Computer Science OR 114 - Introduction to Computer Science |
2 | Both | None |
| 225 - Software Design and Implementation | 4 | Both | None |
| 235 - Data Structures and Software Design | 4 | Spring | CSCI 225 |
| 245 - Programming Language Paradigms | 2 | Fall | CSCI 225 |
| 250 - Discrete Structures | 2 | Spring | CSCI 112 |
| 260 - Computer Organization | 2 | Fall | CSCI 112 |
| 470 - Languages & Machines | 2 | Spring | CSCI 112/250 |
| 481 - Senior Project Seminar | 2 | Fall | CSCI 235; Senior standing |
Choose at least 3 courses, with at least 1 course from each of the 3 groups
| Course | Credits | Semester | Prerequisites | Group |
|---|---|---|---|---|
| 321 - Applications Programming | 4 | Fall even years | CSCI 112/235 | Applications |
| 342 - Computer Graphics | 4 | Fall even years | CSCI 112/235 | |
| 392 - Database Systems | 4 | Fall odd years | CSCI 112/235 | |
| 361 - Programming Language Design & Implementation | 4 | Spring even years | CSCI 112/235/245 | Foundations |
| 385 - Advanced Data Structures & Algorithms | 4 | Fall odd years | CSCI 112/235/245/250 | |
| 335 - Computer Architecture | 4 | Spring odd years | CSCI 112/260 | Systems |
| 354 - Operating Systems | 4 | Spring even years | CSCI 112/245/260 | |
| 376 - Computer Networks | 4 | Spring odd years | CSCI 112/245/250 |
| Course | Credits | Semester | Prerequisites |
|---|---|---|---|
| MATH 131 - Calculus I | 4 | Both | None |
| MATH 132 - Calculus II | 4 | Both | MATH 131 |
| Math Elective | 4 | Both | MATH 132 |
| Other science (this may be computer science, above the 38 credit requirement) | 8-10 |
Computer Science Minor - 18 credits
| Course | Credits | Semester | Prerequisites |
|---|---|---|---|
| 112 - Exploring Computer Science OR 114 - Introduction to Computer Science |
2 | Both | None |
| 225 - Software Design and Implementation | 4 | Both | None |
In addition, Hope offers an emphasis in Computer Engineering the Department of Engineering.