COMPUTER SCIENCE
Faculty: 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, software engineering, networking, and
handheld 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 35 powerful Unix workstations for classroom
and research work. 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 12 student workstations 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. Many personal computers
are available for use by students and faculty, and are located
throughout the campus in dorms and labs. All students have
access to electronic
mail and the Internet.
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 analysis, computer
design, 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, 231, 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, 231,
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 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,
FORTRAN and C++ programming, and methods of scientific problem
solving and data reduction. Techniques in least squares fitting,
sorting, transcendental equations solving, and the Monte
Carlo method will be introduced. Features of the operating
system, utility processors, and file management will be included.
Corequisite: Mathematics 131.
Three 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 and the Unix operating
system on state-of-the-art workstations. This course
has a laboratory component. Prerequisite: Computer Science
120 or equivalent.
Four Credits Staff Both Semesters
231. Introductory Data
Structures --An introduction to the fundamental
data structures of Computer Science and their accompanying
algorithms. Stacks, Queues, Binary Trees, and Priority
Queues will be included. Projects utilizing these data
structures will be completed. The emphasis will be on
choosing the best data structure for a given application.
Prerequisite: Computer Science 225.
Two 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 120.
Two Credits Staff Spring 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. Advanced Software Design -- This course will
take the students beyond a knowledge of programming
language components and give them the ability to apply those
components to
the solution of complex problems. Included will be application
of
Object-Oriented design principles including inheritance and
polymorphism.
Students will learn and apply the principles of event-driven
problem
solving. Special emphasis will be placed on code reading,
walkthroughs,
debugging and testing strategies, and performance evaluation.
Four Credits Staff Both Semesters
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,
and class modules. Prerequisite: Computer Science 140
or 225. Alternate years, 2003-04.
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
260.
Alternate years, 2004-05.
Four
Credits Jipping Fall 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 241. Alternate years, 2004-05.
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 241 and 260. Alternate years, 2003-04.
Four Credits Staff Fall Semester
361. Programming Language
Design and Implementation --This course introduces
the basic concepts of imperative and object-oriented
programming languages including control structures,
data aggregates, and procedural abstraction. Scripting
languages will be examined as examples of these principles.
Prerequisites: Computer Science 231 and 241. Alternate
years. 2004-05.
Four Credits Dershem Fall Semester
363. Programming Language
Paradigms --An in-depth study of programming
language paradigms including the functions and the
logic-oriented
paradigms. Students will program in languages that
belong to these paradigms. Prerequisite: Computer
Science 361.
Alternate years, 2004-05.
Two Credits Dershem Fall Semester
376. Network Design
and Implementation --This course introduces
the basics of computer net- working. We will study
application-level
protocols such as electronic mail, remote login, and
file transfer. We will learn about network file systems,
information systems, and network management. Students
will gain experience writing client- server applications.
Prerequisite: Computer Science 231. Alternate years,
2004-05.
Two Credits Jipping Spring Semester
378. Network Architecture
--This course will look at the functions of higher
layer protocols, using the TCP/IP protocol suite as
our primary
example. We will also study the issues involved with
interconnecting heterogeneous networks. We will study
different types of transmission media, methods of encoding
and transmitting analog and digital data, and media
access protocol. Prerequisite: Computer Science 376.
Alternate years, 2004-05.
Two 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: 231 and 241. Alternate
years, 2003-04.
Four Credits Dershem Spring Semester
392. Database System
Design and Implementation --This course introduces
the fundamentals of database application design and
implementation through 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, and the design and
implementation of front-ends. Prerequisite: Computer
Science 225. Alternate years, 2003-04.
Two Credits McFall Spring Semester
394. Database Architecture
--The architecture of a database system through the
external, conceptual, and internal levels. Topics include
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. Prerequisites:
Computer Science 231,241,250 and 392. Alternate years,
2003-04.
Two 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 250.
Two
Credits Dershem 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 225
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
|