15-100:  Introductory/Intermediate Programming
APEA Section E
Syllabus -- Summer 2008


Schedule
of classes:

   Days   Lec/Sec  Time Room
 Lectures    MTWRF    Sec E     9:00am - 10:20am    220 Scaife Hall

 Recitations 

 MTWRF  

Sec E

  4:30pm -  5:50pm     5419-D Wean Hall

Staff:
 Name David Kosbie  Grant Bartlow 
Position Lecturer CA / Sec E
Andrew Id

koz

 gbartlow
 Office Hours  M-F, 12:30pm - 1:30pm
 4614 Wean Hall
 M-F, 6pm - 7pm
 5419 Wean Hall
Required
Textbooks:
Java Software Solutions, Lewis and Loftus, 5th Edition, Addison-Wesley, 2006, ISBN: 0321409493.
Optional
Textbooks:
Preferred 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:
     http://www.lulu.com/content/267149
You can find all the example code online at:
     http://www.soe.ucsc.edu/~charlie/java/jbd/
Introduction to Programming Using Java, 5th Edition
by David Eck
This is a free online textbook, originally called "javanotes".  Access it here:
http://math.hws.edu/javanotes/

General Programming and/or Data Structures texts:

  • 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.
  • Horstmann, "Big Java", 2nd Edition, John Wiley & Sons, 2006, ISBN: 0471697036.
         Strong coverage of core language, decent coverage of data structures.  1216 pages.

Topic-specific Guides:

  • Bloch, "Effective Java", Addison-Wesley, 2001, ISBN: 0201310058.
         A treasure trove of great advice to improve your Java programming.  252 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.
Required
Software:
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.
Course
Requirements:
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 required. 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.

    Grading:
     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 final exam consistent with the spring/fall common departmental written exam.

    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:

    Quizzes will be given approximately once several times 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.

    Written
    Work:
    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 (eg:  "Name three software companies in Silicon Valley"), but most questions assuredly do.  When in doubt, show your work.
    Programming
    Assignments:

    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.

    Late
    Homework:
    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 Browne, whose offices are in the Wean Hall 5100 corridor.  If you do this, be certain that you place "To:  David Kosbie" 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.
    Dropped Lowest Scores To give you some flexibility with your schedule, your lowest homework score and your lowest quiz score will each be dropped from your grade calculation.  This is limited to homeworks and quizzes, though, and does not apply to test scores or the final exam.
    Cheating
    and
    Collaboration:

    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 problem and perhaps sketching of general approaches to a solution. 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 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.  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.