Don't be alarmed, we won't cover everything in this huge book. I chose the ``comprehensive'' version in hopes that it will be a useful reference for you after the course. (If you buy it at the Stevens bookstore, you get a free bonus book, Essential Java Class Reference for Programmers; I haven't seen it but the publisher recommends it.)
This course introduces basic concepts of computer systems, information networks and programming. The primary goal is for the student to develop the skills required for developing software using imperative and object-oriented languages. A second major goal is for the student to learn the core features of the Java programming language and its standard libraries. This course helps you meet these goals by designing, implementing, and testing a number of small programs.
Several skills are needed to successfully write programs, including analytical thinking, systematic experimentation, persistence and patience, organization and time management, effective use of reference material (reading technical documentation, searching the web). As befits a university course, we focus on algorithmic thinking and problem-solving: Analyzing requirements, algorithm design, functions and procedural abstraction, pre- and post-conditions, loops and invariants. Top-down design, libraries and simple data structures (arrays and lists). Tools and techniques for debugging and testing.
Along the way, as time permits we will touch upon topics that can be studied in depth in other courses:
To assess student progress we focus on key skills that can be demonstrated. By the end of the semester, the student should be able to:
You and your instructor are bound by the Stevens Honor Code.
Students are responsible for reading and understanding the course policies in these web pages and for announcements made in class and in the course email list.
You will be permitted to use the textbook and course notes for programming assignments but probably not during exams. The specific policy will be announced prior to each exam.
Programming is learned by doing. The main focus of your work will be on programming assignments. Assignments will normally be structured in two parts:
The course score is a weighted average of the following categories, with the additional requirement that to pass the course you must score at least 60 in at least three categories.
How to prepare for quizzes and exams: It's obvious--attend class, do the reading, and especially do the programming assignments, carefully and thoughtfully. The purpose of programming assignments is not to turn them in on time--the purpose is to become a skilled programmer and get good grades on the exams. Get help from the TA and instructor and work hard.
There are no make-ups for quizzes or exams. The only possible exceptions are in the case of death in the student's immediate family or near-death experience of the student; advance notice is required.
Except when groups are explicitly allowed, work must be done individually. You are encouraged to discuss the problems with your classmates but you must not share details of the solutions. If you are unsure whether you have shared too much, discuss the situation with the TA or instructor; it is your obligation to avoid even the appearance of cheating.
About timeliness. We all have trouble meeting deadlines, and as a near-beginning college student you are confronted with many difficult deadlines. But homework doesn't get easier to do if it's late. Doing it on time helps you avoid falling behind when it comes to subsequent lectures and quizzes. Hence the following strict policy for homework:
| how late | points deducted (out of 100) |
| 0 | 0 |
| up to 1 day | 25 |
| up to 3 days | 50 |
| 3-7 | 75 |
| 100 |
Grades are based on the usual scale (90 for A, 80 for B, 70 for C, etc). The instructor reserves the right to give a higher grade than your course score, if your performance on later assignments and exams is very strong.
Your lowest quiz score will be dropped.
Your lowest assignment score will be dropped.
If after the third exam your preliminary course score is at least 80, you may choose to skip the final exam and keep that course score.