Hope College Computer Science students at work View of VanZoeren Hall    
hope college > academic departments > computer science    

 

Prospective Students

<
Current Students <
Alumni <
Courses <
Research <
Faculty <

 

 

COMPUTER SCIENCE
Faculty: Mr. Agarwal, Mr. Cusack, Mr. DeJongh, Mr. Dershem, Mr. Jipping (Chairperson), Mr. McFall.


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 modem 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.


COMPUTER RESOURCES --The computing facilities at Hope College give the student an opportunity to obtain a rich variety of experiences. The Department of Computer Science supports a network of 30 workstations, which facilitate work with Microsoft Windows, Linux, and Mac OS. These systems provide a window-based user interface, high-resolution graphics, a parallel processing environment, and high-speed computation. They are located in a general student laboratory, a research laboratory, and a unique laboratory-classroom combination. This laboratory-classroom contains 20 Tablet PCs and is used for all computer science classes to incorporate hands-on laboratory experiences. The departmental network is also accessible from residence halls via direct network connection and throughout campus via wireless acess. Many personal computers are available for use by students and faculty, and are located throughout the campus in dorms and labs.


THE COMPUTER SCIENCE MAJOR --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.


COMPUTER SCIENCE MAJOR REQUIREMENTS --The requirement for an A.B. degree in Computer Science is a plan of study approved by the department that includes at least 32 credits in Computer Science courses, not including 140. These 32 credits must include Computer Science 112 or 114, 225, 235, 241, 250, 260, and 481 and must include at least 8 credits of 300-level courses.

The requirement for the B.S. degree in Computer Science is a plan of study approved by the department that includes at least 38 credits in Computer Science courses, not including 140. These 38 credits must include Computer Science 112 or 114, 225, 235, 241, 250, 260, 470, and 481 and must include at least 12 credits of 300-level courses. Mathematics 131, 132, and one 4-credit Mathematics course for which 132 is a prerequisite are required in addition to the 38-credit Computer Science requirement. A total of 60 credits in the natural sciences must be completed. Mathematics and Computer Science courses count toward this 60-credit total.


COMPUTER SCIENCE MINOR --A minor in Computer Science consists of a minimum of 18 credits in Computer Science, including Computer Science 112, 225 and at least 10 credits from courses numbered higher than 225.

COURSES OFFERED


112. Introduction to Computer Science --This course explores the discipline of Computer Science by looking at computer science at many levels, from how the computer represents information digitally to how programs are constructed to take advantage of the capabilities of the machine. Students will be introduced to a variety of topics within the field of computer science, including data representation, computer architecture, operating systems, networks, and artificial intelligence. A student cannot receive credit for both CSCI 112 and CSCI 114.
Two Credits Staff Both Semesters

114. Introduction to Computer Science --This course combines an exploration of the discipline of Computer Science with an introduction to programming methods and techniques. The student will explore the discipline by looking at computer science at many levels, including data representation, computer architecture, operating systems, networks, and artificial intelligence. Programming exercises will be done in the Java programming language in a collaborative laboratory environment. A student cannot receive credit for both CSCI 112 and CSCI 114.
Four Credits Staff Both Semesters

140. Business Computing --This course introduces students to the computing skills needed in the completion of the Business Administration major at Hope College and to become a successful computer user in a business career. Students learn the fundamentals of operating systems, spreadsheet processing in Microsoft Excel, data communications, statistical packages and database processing. This course may not be counted toward a computer science major.
Three Credits Staff Both Semesters

160. Scientific Computer Programming --An introduction to computers, programming, and methods of scientific problem solving and data reduction. Numerical methods tuned to scientific needs will be introduced. Features of the operating system, utility processors, and file management will be included. Corequisite: Mathematics 131.
Four Credits Staff Spring Semester

225. Software Design and Implementation --An introduction to the techniques and practices of software design and implementation, including top-down design, object-oriented principles, advanced programming concepts, and the use of software development tools. Students will gain substantial experience with the Java programming language. This course has a laboratory component. Prerequisite: Computer Science 114 or equivalent.
Four Credits Staff Both Semesters

235. Data Structures and Software Design --An introduction to the fundamental data structures of computer science, the design methodologies of software and the basic algorithms for these. Data structures such as stacks, queues, binary trees and priority queues will be included. Software design and development methods such as object oriented design, design patterns, and basic algorithm analysis will also be covered. Projects utilizing these data structures and design methods will be completed. Emphasis will be placed on the partnership between algorithms and data structures. Prerequisite: Computer Science 225.
Four Credits Staff Fall Semester

241. Program Development --An introduction to the techniques and strategies used in the design and implementation of computer programs. File manipulation and recursion will be emphasized. Linked structures through pointer reference will be studied. Students will develop many extensive programs in a higher-level language. Prerequisite: Computer Science 225.
Two Credits Staff Fall Semester

250. Discrete Structures --An introduction to the discrete mathematical structures that are fundamental to the field of Computer Science. Topics include propositional logic, sets, Boolean algebra, switching circuits, functions, relations, and combinatorics. Prerequisite: Computer Science 112.
Two Credits Staff Fall Semester

260. Computer Organization --An introduction to the organization of computers at the register level. Digital logic including gates, circuits, memory organization, and microprocessors. Conventional machine architecture and assembly language programming. Prerequisite: Computer Science 250.
Two Credits Staff Spring Semester

295. Studies in Computer Science -- A course offered in response to student interest and need. Deals with topics in computer science that are not included in regular courses.
One, Two, Three, or Four Credits Staff

321. Applications Programming -- A first course in state-of-the-practice programming applications. This will include a study of logical structures, graphical user interfaces, forms, menus, files, and event processing. It will also include a study of object-oriented programming, classes, objects, database access, SQL, scripting languages, and class modules. Prerequisite: Computer Science 112 or 114 and 235. Offered odd years.
Four Credits Staff Fall Semester

335. Introduction to Computer Architecture --This course introduces the basics of the design and implementation of computer architecture. Topics include machine modelling, design issues, the design of processors, buses, and memory. Prerequisite: Computer Science 112 or 260. Offered even years.
Four Credits Jipping Spring Semester

342. Computer Graphics --An introduction to the concepts, techniques, algorithms, and data structures used in computer graphics and image processing. Topics include transformations, clipping, windowing, perspective, hidden lines and surfaces, color, shading, ray tracing, edge detection, and compression. Prerequisite: Computer Science 112 or 114 and 241. Offered odd years.
Four Credits McFall Spring Semester

354. Operating Systems --This course provides an overview of operating systems, including operating system functions and support functions for operating systems. Students will gain hands-on experience with the Unix operating system. Prerequisite: Computer Science 112 or 114, 241 and 260. Offered odd years.
Four Credits Staff Fall Semesterr

361. Programming Language Paradigms --This course offers an in-depth study of programming language paradigms including concepts of imperative, object-oriented, functional, and logic-oriented languages. These concepts include control structures, data aggregates, and procedural abstraction. Scripting languages will be examined as examples of these principles. Students will program in languages that belong to these paradigms. Prerequisite: Computer Science 112 or 114, 235, 241 and 260. Offered even years.
Four Credits Staff Fall Semester

376. Computer Networking --This course provides a study of computer networking architecture and protocols, using the TCP/IP suite as our primary example. We will study application-level protocols such as electronic mail, remote login, and file transfer. We will learn about network management and interconnecting heterogeneous networks. We will study different types of transmission media and media access protocols. Students will gain experience writing client-server applications and network analysis programs. Prerequisites: Computer Science 112 or 114, 241 and 250. Offered odd years.
Four Credits Jipping Spring Semester

385. Advanced Data Structures and Algorithms --Study of classical algorithms of computer science, techniques for algorithm design, and analysis of algorithms. Topics include search tree construction, tree balancing techniques, algorithms from graph theory and computational geometry, string matching algorithms, skip lists and hash tables, and techniques for parallel algorithms. Prerequisites: 112 or 114, 235, 241 and 250. Offered even years.
Four Credits Staff Spring Semester

392. Database Systems -- This course examines database architecture by examining application design and looking at external, conceptual, and internal levels of databases. We also study the use of database software tools. Topics include the development of queries through query languages; the design of forms and reports; the design and layout of a database; the design and implementation of front-ends; the relational model; protection issues including recovery, concurrency, security, and integrity; distributed database concepts; optimization strategies; storage structures and access methods; and object-oriented databases. Prerequisite: CSCI 112 or 114 and 235. Offered even years.
Four Credits McFall Spring Semester

470. Languages and Machines --This course examines the theoretical foundations of Computer Science. It studies the relationship between finite-state machines and various language models. Computability theory is also studied. Prerequisite: Computer Science 112 or 114, and 250.
Two Credits Staff Spring Semester

481. Senior Project Seminar --Each student will complete a major software or research project, either individually or as a part of a team. Ethical aspects of Computer Science will be discussed. This course is required of all computer science majors. Prerequisites: Computer Science 112 or 114 and 235 and senior standing.
Two Credits Staff Fall Semester

490. Independent Study and Research in Computer Science --Independent study or research project carried out in some area of advanced computer science or in the application of the computer to another discipline. This project will be carried out under the supervision of one or more designated staff members. Prerequisite: permission of the chairperson of the department.
One, Two, Three, or Four Credits Staff

491. Internship in Computer Science --This program offers the student an opportunity to work on a project or an experience approved by the department as being of significance in computer science. This is usually done off campus and the student will have a qualified supervisor at the site of this experience in addition to a faculty advisor. This course is normally open only to senior computer science majors. Prerequisite: permission of the chairperson of the department or the director of internships.
One, Two, Three, or Four Credits Staff

495. Advanced Studies in Computer Science --A course designated for junior and senior computer science majors which covers an advanced topic in computer science. Recent offerings have been compiler construction, web technologies, Java technologies, human-computer interface and artificial intelligence. This course is offered at least once each year and may be repeated for additional credit with a different topic. Prerequisite: permission of the chairperson of the department.
One, Two, Three, or Four Credits Staff