Department of Mathematics and Computer Science, (269) 337-7100 ph, (269) 337-7101 fax













COMPUTER SCIENCE COURSES

COMP 105 Introduction to Computer Science with Lab

An overview of the field of computer science. Typical topics may include the history of computers, what computers can and cannot do, the basic concepts of computer programming, program and user interface design, how computers represent information internally, an introduction to artificial intelligence, and the ethical and societal issues raised by the widespread use of computers. QR AOS (CS)
     Link to course home page

COMP 107 Pictures and Sounds: Programming with Multimedia with Lab

This course provides an introduction to multimedia programming: developing programs that create and manipulate text, pictures, sound, and movies. Topics include creating negative and gray-scale images, reversing and splicing sounds, creating sound visualizations, and creating animations. Students will learn some of the concepts and techniques underlying software applications like Photoshop or SoundEdit as well as fundamental concepts underlying all of computing, such as algorithms, abstractions, and how computers represent numbers, text, images, and sound. Hands-on programming is a central component of the course, embodied in weekly labs and frequent programming assignments. QR AOS (CS)

Link to course home page

COMP 108 Introduction to Scientific Computing

The purpose of this course is to give students an introduction to the field of computer science with an emphasis on scientific modeling and data analysis. The course will provide an introduction to computer programming in both Matlab and C/C++. We will discuss fundamental computer science topics including the limits of computation and algorithm analysis. We will also cover a selection of topics relevant to scientific research, including data visualization, representation of numbers, and random number generation. Course work will include programming projects, homework assignments and exams. Students will be required to complete a final programming project on a topic of their choice. This course requires no previous programming experience. There is no formal math prerequisite, but students should be comfortable working with basic mathematical notation. QR AOS (CS)
     Link to course home page

COMP 110 Introduction to Programming with Lab

An introduction to programming and design concepts using a modern programming language. Topics include the basic features of the language, modular programming techniques, and appropriate design methods. Students will have ample opportunity to revise existing programs and develop new software. QR
Prerequisite: Familiarity with some programming language, e. g. BASIC, PASCAL, HyperTalk. Can be satisfied by taking COMP 105.
     Link to course home page

COMP 210 Data Structures

Provides students an opportunity to refine programming and design skills. Emphasis is on techniques of data abstraction, including encapsulation and inheritance; implementation and appropriate use of common data structures (such as lists, stacks, queues, trees, and graphs); recursion; and the close relationship between data structures and algorithms. AOS (CS)
Prerequisites: COMP 105 and COMP 110 or permission.
     Link to course home page

COMP 215 Computer Algorithms

Introduction to a variety of algorithms and algorithm design techniques that recur in computer science literature and applications. These include common sorting and searching algorithms, divide­and­conquer and dynamic programming algorithms, and algorithms in the areas of string processing, geometry, and graph theory. This course also provides an introduction to the mathematical analysis of the complexity and performance of algorithms. AOS (CS)
Prerequisites: COMP 210 and MATH 250.

     Link to course home page

COMP 230 Computer Architecture

Introduction to computer organization; gates, truth tables, and logic design; number representation and arithmetic; assembly­language programming and the assembly process; and current techniques for improving computer performance. AOS (CS)
Prerequisite: COMP 210.
     Link to course home page

COMP 255 Computer Programming and Simulation

Computer modeling of physical phenomena. Programming skills will be developed in the context of doing physics. Topics include numerical integration of Newton's equations, cellular automata, and random walks including Monte Carlo methods. (Also listed as PHYS 255 .) AOS (CS)
Prerequisite: PHYS 150.

COMP 260 Digital Electronics with Lab

Introductory electronics, elementary logic and arithmetic circuit components, sequential circuit analysis and design; applications to computer circuit design. (Also listed as PHYS 260.) AOS (CS)
Prerequisite: permission.

COMP 300 Automata, Formal Languages, and Computability

Study of automata as mathematical models of computation; of formal languages, which play a central role in the specification and translation of programming languages; and of the fundamental capabilities and limitations of computers. (Also listed as MATH 300.) AOS (CS) Prerequisite: MATH 250 or 330 and one computer science course.
     Link to course home page

COMP 320 Principles of Programming Languages

Study of programming language concepts and comparative evaluation of several programming languages. Typical topics include imperative, functional, and object­oriented programming paradigms, programming language syntax, type theory, static and dynamic binding of variables, and scope rules. AOS (CS)
Prerequisite: COMP 210.
     Link to course home page

COMP 430 Operating Systems

Study of the internal operation of modern operating systems, including processes and threads, mutual exclusion, CPU scheduling, deadlock, memory management, file systems, and networked and distributed computing. AOS (CS)
Prerequisite: COMP 230.
     Link to course home page

COMP 491 ­ 495 Special Topics

Each offering focuses on a computer science topic not regularly addressed in the core curriculum. Topics come from areas such as artificial intelligence, computer graphics, databases, networking, and software engineering. AOS (CS)
Prerequisite: permission.
     Networking (Spring 2002)
     Artificial Intelligence (Winter 2003)
     Software Engineering (Spring 2003)