General Course Information

These resources are available to help you find out about courses offered by the department:

  • There are online catalog descriptions for our courses.
  • The registrar maintains information about current course schedules. Choose "Mathematics & Computer Science" as the department to see the listings.
  • Individual professors often maintain web sites for their current courses. Here is a listing of those currently known to the webmaster:

Introductory CS Courses

Computer science majors take a sequence of three introductory courses: COMP 160, COMP 161, and COMP 163. These courses introduce students to the subject in many ways, but they are particularly concerned with helping students develop algorithmic fluency: the ability to write small programs to solve simple problems. Some people find this easier than others, but almost everyone can do it with sufficient practice. In many ways developing algorithmic fluency is like learning a foreign language, so it is very important for students to enter the introductory sequence at the right place.

We currently use the Java programming language in our three introductory courses. However, algorithmic fluency is a portable skill, reasonably independent of the programming language. Learning a second programming language is far easier than learning the first—so much so, that we generally expect advanced students to learn additional programming languages on their own, as needed. Students with programming experience in another language should not assume that they must start with the first course, but read on.

The department does not administer or grade placement tests; instead, we offer some simple self-tests. Try these on your own, and discuss the experience with your advisor and/or with the computer science faculty. This is the surest way to determine the right entry point for you in the sequence.

COMP 160

COMP 160 is the right starting point for most students, including all those without prior programming experience. Students in COMP 160 use the NetBeans IDE to develop their Java programs. They develop basic fluency in Java, including:

  • Expressions that manipulate int, double, String, char, and boolean values
  • Expressions that create and use objects
  • Simple statements
  • Loops using while, for, and do
  • Fields, methods, and local variables
  • One dimensional arrays

COMP 161

COMP 161 assumes that the student already has algorithmic fluency at the level of COMP 160. If you think you might already have that fluency, visit the Trainer web page and jump to the puzzles at the end of Lab Seven (puzzles 7.3.1 through 7.3.11). If you can do these without too much trial and error, then the chances are good that you should start with COMP 161.

Students in COMP 161 continue to use Java and the NetBeans development environment. They develop a repertoire of techniques for writing Object-Oriented programs. They also extend their basic fluency in Java with more advanced array operations (including searching and sorting), recursion, and data structures implemented using singly linked lists.

Those with recent AP credit in computer science have generally found that they can start with COMP 161.

Those with extensive programming experience in another language may be able to start with COMP 161. However, not everything that looks like "programming" develops the necessary algorithmic fluency. For example, writing HTML does not help very much. Also, some kinds of development using visual application generators involve very little actual programming. The best way to tell is to try working through the the Java Trainer, starting from Lab One. If you have sufficient programming experience in another language, you will find that in just a few days you can pick up enough Java fluency to complete Lab Seven. If so, you should consider starting with COMP 161.

COMP 163

Rarely, an entering student has already mastered the techniques of COMP 161. If you think you might be such a student, try solving these puzzles (set one, set two, set three) by hand, on paper. If you can solve them with confidence then you should consider starting in COMP 163.

webmaster

[XHTML 1.0] [CSS]