15-110:  Introduction to Programming
Sections M-Q
Syllabus -- Fall 2009



Schedule
of classes:
   Days  Staff Andrew Id Time Room
 Lecture 9 TR Kosbie koz 10:30am - 11:50am GHC 4401
 Section M F Chris cburchha 10:30am - 11:20am GHC 5205
 Section N

 F 

Lynn

lstreja

  11:30am - 12:20pm  

GHC 5205

 Section O F Taylor thopper 01:30pm - 02:20pm GHC 5205
 Section P F Kelly krivers 02:30pm - 03:20pm GHC 5205
 Section Q F Yiling ytay 03:30pm - 04:20pm GHC 5205
Office Hours:
Day Time Staff Room
TR right after class
(up to 15 mins on T, longer on R)
Kosbie GHC 5001
MTWR 1:30pm - 2:30pm Kosbie GHC 5001
M 6:00pm - midnight CA's GHC 5205
W 6:00pm - 8:30pm CA's GHC 5205
R 6:00pm - midnight CA's GHC 5205
Required
Textbooks:
Java Software Solutions, Lewis and Loftus, 6th Edition, Addison-Wesley, 2008, ISBN: 0321532058.
Optional
Textbooks:

Free Online Sources

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.
     
  • 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. 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 common departmental written exam for all 15-110 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:

    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.

    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 (e.g.:  "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.

    Improperly
    Formatted
    Submissions:

    Regarding labs, hw's, take-home quizzes, or any other submissions: any incorrectly formatted submissions (wrong file name, wrong class name, wrong method name, or any other formatting error) will be rejected. The CA's will not fix any incorrectly formatted submissions, even in relatively minor cases.

    Instead, they will send you an email requiring you to fix the problem and resubmit at a 5-point penalty. Note that this is in no way an extension, and you may not alter any code or anything else in any way except to bring your submission into compliance with the instructions (doing so would result in a zero on the entire assignment plus additional serious consequences). You will have 24 hours from the time your CA sends this email to resubmit or you will lose all points on the affected problems (in addition to the 5-point penalty).

    If your resubmitted version still contains formatting errors, the process repeats, only at another 10-point penalty (in addition to the 5-point penalty). After that, though, the process ends, and you will lose all points on any improperly formatted problems (in addition to the 15 penalty points accrued, so in theory you could score a -15 at that point).

    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.  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.
    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 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. 

    Health
    (H1N1):
    From Anita Barkin, Director, Student Health Services:

    "If you are feeling ill with flu-like symptoms you should monitor your temperature. If you develop a fever of 100 degrees F (37.8 degrees C) or more, isolate yourself from others, do NOT attend classes, and immediately call Student Health Services (SHS) at 412-268-8220 during office hours. If you live in campus housing and the SHS is closed call 412-268-2323. If you do not have a thermometer, Temp-a-Dots are available by contacting your resident assistant. Students who live off campus should purchase a thermometer or obtain Temp-a-Dots from SHS.

    If you're feeling ill it is important to quickly isolate yourself and contact SHS in an effort to limit the spread of infection in the campus community and to lessen the impact on caregivers who are working diligently to provide care to those who are ill. If you live within 150 miles of campus, we encourage you to recuperate at home, if at all possible.

    As noted, and as recommended by the CDC, efforts are being made to provide sick students living in campus housing with alternative, isolated living quarters, in addition to meals and health care. Students who live in non-university housing should isolate themselves from others, including roommates, and ask roommates for assistance in securing food, fluids and over-the-counter cold medications.

    Student Affairs will contact the professors of ill students about their need to miss classes, and they will be given the opportunity to make up missed assignments."