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 Fall Semester
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.
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. This course
has a laboratory component.
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 Spring Semester
245. Program Language Paradigms -- This course provides an introduction to several different programming language paradigms and their approaches to problem solving. This will include a system level language utilizing memory allocation and pointers, a scripting language, a functional language and a declarative language. Students will develop several extensive programs in these languages. 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 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 Fall 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 even 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 odd 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 235. Offered even years.
Four Credits McFall Fall 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 even years.
Four Credits Staff Spring Semester
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, 245. Offered even years.
Four Credits Staff Spring 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, 245 and 250. Offered odd years.
Four Credits Staff Fall 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 odd years.
Four Credits McFall Fall 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