Last modified January 17
COMP 170 or, with permission of the instructor, knowledge of Java and experience in programming using the object-oriented paradigm.
This is an intermediate course in computer programming focusing on common useful data structures and related algorithms. The class discussions and reading material will interleave two interdependent tracks:
Note that the course is not about certain tools and techniques that the textbook author integrates into his presentations. They include:
There will be 8 assignments. Some of them can be started in our scheduled laboratory period. Your worst assignment grade won't be counted (see Grading below).
Because of the wide range of detailed topics, we won't do a large class project. However, if you have an opportunity in your job or in another course to make use of the concepts and techniques of this course, you can talk to me about substituting a special project for some of the homework assignments.
We shall use Java, JDK 1.6.x or a comparable development platform. You may use any computer hardware and operating system that supports Java at that level.
Loyola's laboratories are equipped with BlueJ and Eclipse, which you are free to use or not use.
Note: The instructor and the lab assistant may not be able to help you if you encounter trouble using a platform or tool not supported at Loyola.
(Don't worry about the size of the errata list. Our textbook author, William J. Collins, has a solid command of the theory and mathematical foundations underlying the data structures starting in Chapter 6. Mr. Collins is less comfortable with matters of object-oriented programming methodology and code quality, but we'll cover those issues in class discussions and other reading. Don't assume that you should emulate the program structure and coding techniques you see in the textbook.)
Specific reading assignments are given in our week-by-week schedule. In order to conserve class time, you should study each session's assigned reading before that session and come to class prepared to ask questions about anything that you either don't fully understand or disagree with.
To do the assignments you'll need access to a comprehensive book on Java programming, such as the one used in COMP 170. I shall recommend and let you examine some specific texts from time to time.
I may occasionally recommend an interesting article or book related to our course. However, our required reading load is rather heavy, so we'll keep those recommendations to a minimum.
Although the concepts and techniques covered in COMP 271 are accessible to a competent Java programmer, they're far from trivial and they demand serious study. If you find yourself falling behind or if you don't understand something well enough to explain it to someone else, either ask questions in class or see me during office hours.
Since most of the material will be presented and discussed in our class sessions, you'll be at a serious disadvantage if you miss a session. Unless you're already a very senior programmer, no amount of independent reading can substitute for participation in the class sessions.
A copy of each session's presentation slides will be posted (link from the schedule topic) in a condensed form (4 per page) a few days before class, so that you'll rarely have to copy something you see on the screen. But the presentation slides are only an outline of what we shall actually discuss and examine during our class sessions, so studying them won't compensate for missing a session.
If you have to miss one or more sessions, please confer with the instructor as early as possible to determine how best to master the material you miss.
The final examination will cover the full course content.
A mid-term examination (just before the drop deadline) will confirm your mastery of the mainstream concepts discussed up that point.
Examinations may consist of a closed book part, emphasizing your grasp of concepts, and an open book part, emphasizing actual programming. Computers and electronic devices must be turned off for both parts. In the open-book part, you may consult:
We regret using so much paper, but it's a way of giving you access to the course material without opening up the whole Internet.
I may give an occasional brief quiz at the beginning of class to verify your understanding of some important point raised in the previous session or in the assigned reading.
The usual grading criteria apply to this course.
These are the weights for the various course components:
|Final Examination||25 points|
|Mid-Term Examination||21 points|
|Homework and workshop exercises (7)||7 points each|
|Class participation and labs||5 points|
The following table is used both for converting your total score to a course grade and for converting letter grades on assignments to numeric scores.