
COURSE DESCRIPTIONS
FALL 2004
COMP 121 COMPUTING IN THE ARTS AND SCIENCES
4 SEM HRS
STAFF
This introductory course is intended for non-majors, and assumes little computer experience beyond using word processing software. COMP 121 is designed to help students become familiar with microcomputers and their use in problem-solving and their impact on society. Students will create spreadsheets, databases, and Web pages. Students will also learn a subset of JavaScript, a language for creating interactive web pages.
The course meets for four hours each week, and includes extensive time for hands-on practice. The final grade will be based on labs, homework, and exams. Prerequisite is Math Placement Level 22 or higher. Mathematical-reasoning intensive.
COMP 150 COMPUTER PROGRAMMING I
5 SEM HRS
SAKS
Introduction to computer science through the use of programming. Designed primarily for the student who expects to take further courses in computer science. Also very valuable for any student who expects to do programming that is related to another discipline (e.g., in the sciences). This course is required for the Computer Science major and minor, the Mathematics major and minor, and the new Computational Science minor. It is also recommended or required by certain science programs.
All programming will be done using the computers located in the new BDK Science Center computer laboratory. The course includes an introduction to an industrial quality compiler and its integrated development environment (IDE) on the Wittenberg network. The course stresses design of algorithms, how to construct programs, imperative and object-oriented programming, structured programming style, program documentation and testing, control and data constructs, input-output, abstraction, and the role of computing in society. Particular emphasis is placed on problem solving. The class has three 1-hour lecture/demonstrations plus a 2-hour lab per week. Much of the work for the course is done outside of class using the laboratory computers to write, debug and run programs. The language to be used will be C++.
The only prerequisite is Math Placement Level 22 or higher (an ability in high-school algebra and problem solving). The course grade is based on programming assignments, lab exercises, and in-class tests. Mathematical-reasoning intensive.
COMP 255 PRINCIPLES OF COMPUTER ORGANIZATION
5 SEM HRS
SHELBURNE
Considers the organization and architecture of the computer from various "levels": digital logic, microprogramming, conventional machine level and the operating system level. Programming assignments in Assembly languages will be used to demonstrate and reinforce the various architectural structures and techniques studied. Grades will be based on in-class tests, programming and written assignments, and a final exam. The course will meet for three one-hour lectures and a two-hour lab each week.
Prerequisite: COMP 150. Mathematical-reasoning intensive.
COMP 275 SEQUENTIAL AND PARALLEL ALGORITHMS
4 SEM HRS
STAFF
Systematic study involving the properties and complexity of several types of algorithms that could be implemented on sequential and parallel processing computers. The algorithms studied are designed to solve problems in both symbolic and numeric processing. Symbolic methods include string manipulation, pattern-matching, searching, and sorting algorithms. Numeric methods include vector and matrix algorithms, as well as data processing and simulation/optimization algorithms. The issues of algorithm efficiency will be examined. Grades will be based upon theoretical and programming assignments and exams. This course will assume a C++ background. Some work will be done in Mathematica®.
Prerequisites: MATH 171 and COMP 250. Co-requisite: MATH 205. Mathematical-reasoning intensive.
COMP 285 THEORY OF COMPUTATION
4 SEM HRS
SAKS
This course covers topics in the theory of computation, the theoretical foundation of computer science. It attempts to answer questions like, "What does it mean to compute?" and "What are the theoretical capabilities and limits of computers?" Topics include the study of finite state machines, push-down automata, linearly bounded automata, Turing machines, languages, phase-structure grammars (regular, context-free, context-sensitive, unrestricted), parsing, decidability, computability, computational complexity, and the Chomsky Hierarchy. Prerequisites are MATH 171 and COMP 250 or equivalent or with permission of instructor. Mathematical-reasoning intensive.
COMP 320 NUMERICAL ANALYSIS
4 SEM HRS
DAVENPORT
An introduction to the numerical solution of mathematical problems. Primary emphasis is upon the development of use of computational algorithms to obtain an accurate numerical solution as well as methods for establishing error estimates and bounds for this solution. These algorithms will primarily be implemented on the computer using the Mathematica® system. Some algorithms may also be implemented in C/C++ or FORTRAN. Some work will also be done by using a scientific graphing calculator such as the TI-83 or TI-86. This course should also be of special interest to students in the physical sciences.
Grades will be based on assignments and exams. Prerequisites: MATH 202, MATH 205, COMP 150, and familiarity with the scientific graphing calculator. This course is cross-listed as MATH 320. Students may enroll in either COMP 320 or MATH 320, but not both. Mathematical-reasoning intensive.

