15-100:  Introductory/Intermediate Programming
Sections S-V
Syllabus -- Fall 2008

of classes:
   Days  Staff Andrew Id Time Room
 Lecture 8




3:00pm - 4:20pm

5419-CD Wean Hall
 Lecture 9 MWF Stehlik mjs 9:30am - 10:20am 5419-A Wean Hall
 Lecture 17 MWF Stehlik mjs 10:30am - 11:20am 5419-A Wean Hall
 Section S




  8:30am - 9:20am  

5419-A Wean Hall
 Section T F Kelly krivers 2:30pm - 3:20pm 5419-A Wean Hall
 Section U T Ivan ibouchar 9:30am - 10:20am 5419-A Wean Hall
 Section V T Nicole ntseng 8:30am - 9:20am 5419-A Wean Hall
Office Hours:
Day Time Staff Room
Mon 2:30pm - 3:30pm Mark 5103 Wean Hall
Mon 5:30pm - 6:30pm Ivan 5419 Wean Hall
Tue 2:00pm - 3:00pm David 4614 Wean Hall
Tue 8:00pm - 10:00pm Nicole 5419 Wean Hall
Wed 2:30pm - 3:30pm Mark 5103 Wean Hall
Wed 6:30pm - 7:30pm Swi 5419 Wean Hall
Wed 7:30pm - 8:30pm Kelly 5419 Wean Hall
Thu 2:00pm - 3:00pm David 4614 Wean Hall
Thu 4:30pm - 6:30pm Ivan 5419 Wean Hall
Thu 6:30pm - 8:30pm Kelly 5419 Wean Hall
Thu 8:00pm - 10:00pm Nicole 5419 Wean Hall
Thu 9:00pm - 11:59pm Swi 5419 Wean Hall
Java Software Solutions, Lewis and Loftus, 6th Edition, Addison-Wesley, 2008, ISBN: 0321532058.
Free / low-cost alternatives:
Java by Dissection, 2nd Edition
by Ira Pohl and Charlie McDowell
Download the pdf for $5 (you may also buy the printed book for about $25) at:
You can find all the example code online at:
Introduction to Programming Using Java, 5th Edition
by David Eck
This is a free online textbook, originally called "javanotes".  Access it here:

General Programming and/or Data Structures texts:

  • Horstmann, "Big Java", 3rd Edition, John Wiley & Sons, 2007, ISBN: 0470105542.
         Strong coverage of core language, decent coverage of data structures.  1248 pages.
  • Carrano and Savitch, "Data Structures and Abstractions With Java", 2nd Edition, Prentice Hall, 2006, ISBN: 013237045X
         Less focus on core language, more advanced coverage of data structures.  700 pages.

Topic-specific Guides:

  • Bloch, "Effective Java", 2nd Edition, Addison-Wesley, 2008, ISBN: 0321356683.
         A treasure trove of great advice to improve your Java programming.  384 pages.
  • McLaughlin and Flanagan, "Java 1.5 Tiger: A Developer's Notebook", O'Reilly, 2004, ISBN: 0596007388.
         For those who know Java 1.4, a fine, concise guide to 1.5's new features.  177 pages.
  • Vermeulen, et al, "The Elements of Java Style", Cambridge Univ. Press, 2000, ISBN: 0521777682.
        A great little guide to Java style.  128 pages.
We will use Java 1.5.  You could also use Java 1.6 (the most recent version), and in a pinch even Java 1.4 (though we will occasionally use features such as the "foreach" loop that are not present in that version).  Given the sometimes subtle inconsistencies between Java versions, it is advised that you remove any other versions of the JDK that you may have on your machine (though this is not a requirement).

For now, we will use 2 IDE's: DrJava and, for those using PC's (rather than Macs), JCreator (we like version 2.5 -- it's older, but it's simple and gets the job done).  This is a loose requirement, in that you may elect to use another IDE, or even just the command-line.
Participation in this course consists of the following activities
  • Attending and participating in lectures and recitations.
  • Reading the printed and online notes and other assigned readings.
  • Carrying out homework assignments.
  • Taking the quizzes, midterms, and final.
  • Attendance is strongly encouraged. You will be responsible for all materials presented in lectures and recitations. You should not expect that all lecture or recitation materials will be given to you in written form, nor should you expect that lectures or recitations will be drawn from the textbook.  Note that missed quizzes and tests may not be made up in general (though certain exceptions are permitted -- see the relevant sections below).

    Assessment:  Any material covered in lecture, in recitation, in assigned readings, or in homework assignments may be included in any future homework assignment, quiz, or test.

     Course Component    Weight 
    Final Exam   20%  
    Midterms   20%  
      Quizzes    10%  
    Homework   50%  

    Each homework, quiz, midterm, and final will be graded on a standard scale:
       A: 90 - 100
       B: 80 - 89
       C: 70 - 79
       D: 60 - 69
       R:  0 - 59

    Semester grades will be determined first by computing the individual averages for homeworks, quizzes, and midterms, then combining these with the final exam according to the weighting table above.  At that point, half-point rounding will be used, so 89.5 will round up to an A, but 89.499 will remain a B.  Finally, we will look closely at every marginal case (within one point of the next higher grade), taking participation and extra credit into account so that grades may be adjusted nominally upwards in some exceptional cases.  To help set expectations for marginal cases, it would be expected that about 10 hours of extra credit would roughly warrant consideration for a one-point increase.

    Bonus and Extra Credit: There are two flavors of bonus and extra credit.

    1)  On an assigned homework, quiz, or test:  these points are added directly to your score on that homework, quiz, or test.

    2)  As a standalone bonus project or bonus lecture:  these bonus points will be awarded at roughly 1 point per hour of time (and so they are also referred to as "bonus hours").  For example, attending a 2-hour bonus lecture will be rewarded with 2 bonus points.  The correlation to hours, though, is inexact, and some activities may receive more or less bonus points than the total number of hours students invest in those activities.

    As noted above, at the end of the semester, bonus points (of the second kind) are added to the semester grade, where each bonus point is worth one-tenth of a percent, and so 10 bonus points increases a grade by one percentage point.  There is a limit of 3 percentage points increase (representing 30 bonus hours) in any case.

    Exams: Final Exam:
    There will be a common departmental written exam for all 15-100 sections.

    Midterm Tests:
    There will be 1 or 2 midterm tests that typically consist of a programming part and a written part.  No late / make-up quizzes or tests will be administered, except in the case of medical or family emergencies.


    Quizzes will be given approximately once per week in lecture or recitation.   No late / make-up quizzes or tests will be administered, except in the case of medical or family emergencies.

    Some homework assignments, and most quizzes and tests, will include some written work (meaning: work that is not performed with access to Java or an IDE or a calculator (unless otherwise noted), whether or not it involves programming).  In order to receive credit for these problems, you must show your work.  Correct answers without supporting documentation will not be given full credit.  Some questions may not require work to be shown (e.g.:  "Name three software companies in Silicon Valley"), but most questions assuredly do.  When in doubt, show your work.

    The programming assignments are a critical part of the course. Experience has shown that the concepts covered in this course are best learned by direct engagement -- in our case by applying them to example problems or by implementing them in computer programs.

    Programming assignments will be graded based on style (modularity, effective use of data abstraction, readability, commenting, etc.) and functionality (correctness and efficiency of the program on the test inputs).  A working program is not sufficient for full credit. Make sure you do a thorough data validation. Your code should be properly annotated with comments that are well-placed, concise, and informative. Your assignments will be graded by your CA.

    Homework is due at a specified date and time.  No late assignments will be accepted, except in the case of medical or family emergencies.  If for some reason you cannot attend lecture on a day when written work is due, you can submit your homework to Angie Brookins or Heather Carney, whose offices are in the Wean Hall 5100 corridor.  If you do this, be certain that you place "To:  David Kosbie" or "To: Mark Stehlik" (as appropriate) very clearly at the top of your assignment so it will be properly routed.  Also, be sure to contact your CA by email at that time to let them know your late work was submitted.  This is only for unusual circumstances, and in general you are expected to submit written work in class.

    Unless otherwise noted, for homework assignments, students are encouraged to talk to each other, to the course staff, or to anyone else about the assignments. This assistance, though, is limited to the discussion of the problems in general.  Each student must develop his or her own solutions to the homework. Consulting another student's solution is prohibited, and submitted solutions may not be copied in whole or in part from any source.

    Specifically:  do not look at other students' code or written answers, and do not show them your code or written answers, until after an assignment has been submitted and graded.

    In particular, for example, this prohibits students from helping other students debug their code, as that requires looking at their code, which is banned.  Instead, students should seek help from the course staff, who provide extensive support to all students via email, office hours, review sessions, and 1-on-1 tutoring by appointment.

    Also, if you find a reference (say, in an optional textbook or some online source) that contains code or a written solution that is identical or overtly similar to an assigned problem, then you are required to not look at that code or written solution!  You may still refer to supporting figures and explanatory text, but you may not look at or copy the code.

    The issue of cheating will be taken seriously by the instructor and CA's, and homework assignments will be routinely checked for violations, which will be handled in accordance with the University regulations.