
COMP 121 Computing in the Arts and Sciences
(4 credits)
Herzog, John
Prerequisite: Math Placement Level 22 or higher
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 will also learn a subset of an object-oriented programming language to create animations.
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. Mathematical-reasoning intensive.
COMP 150 Computer Programming I
(5 credits)
Staff
Prerequisite: Math Placement Level 22 or higher
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.
The course stresses the development of algorithms and data abstraction to solve problems. It begins with basic algorithm design, progresses through imperative programming and finishes with most of the features of object-oriented programming. Students write 10-12 programs, some in a paired programming environment. 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 course grade is based on programming assignments, lab exercises, and in‑class tests. Mathematical-reasoning intensive.
COMP 255 Principles of Computer Organization
(5 credits)
Shelburne, Brian
Prerequisite: COMP 150
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. Mathematical-reasoning intensive.
COMP 275 Sequential and Parallel Algorithms
(4 credits)
Staff
Prerequisites: MATH 171 and COMP 250. Co-requisite: MATH 205
Systematic study involving the properties and complexity of several types of algorithms implemented on both 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/C++ background. Programming assignments will use both Windows-based workstations and the Linux-based WARP parallel computing cluster. Programming will be done in C, C++, and Mathematica®.
The class will meet twice a week. Grades will be based on assignments, projects, reports and exams.
Mathematical-reasoning intensive.
COMP 350 Artificial Intelligence
(4 credits)
Staff
Prerequisites: COMP 250 and MATH 205. MATH 171 is a co-requisite
Some of the primary areas of Artificial Intelligence (AI) will be examined, such as: Knowledge Representation, Language/Speech Processing, Vision, Search, Deductive Systems, Expert Systems, Robotics, Machine Learning and Neural Networks. These will be investigated in terms of their applications and the underlying AI techniques necessary to implement them. Lisp and Mathematica ® will be used as the primary implementation languages. Some philosophical and humanistic issues of AI will also be addressed.
The class will meet twice a week. Grades will be based on assignments, projects, reports and exams. Mathematical-reasoning intensive.