15-110: Syllabus

Fall 2010

Office Hours:
 Faculty Days + Times
KosbieSee koz/office-hours.html
Schedule
of Classes:
   Days  Staff Time Room
Lecture 2 TR Kosbie 10:30am - 11:50am GHC 4401
      Section C F Team CD 11:30am - 12:20pm GHC 5205
      Section D F Team CD 12:30pm - 1:20pm GHC 5205
      Section E F Team EF 1:30pm - 2:20pm GHC 5205
      Section F F Team EF 2:30pm - 3:20pm GHC 5205
      Section K F Team KL 11:30am - 12:20pm GHC 5201
      Section L F Team KL 12:30pm - 1:20pm GHC 5201
      Section M F Team MN 3:30pm - 4:20pm GHC 5205
      Section N F Team MN 8:30am - 9:20am GHC 5205
Required
Textbooks:
Exploring Python, Timothy A. Budd, McGraw-Hill, 2009, ISBN-10: 0073523372.
Optional
Textbooks
and
Online
Resources:

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.
Required
Software:
We will use Python version 2.x (both as pure Python and as Jython).  These are free downloads from python.org and from jython.org.  We will provide download instructions in class.

We will also use one or more free IDE's (code editors).  Details will be posted here asap.
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 required (if not always strictly recorded). 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   30%  
      Quizzes    10%  
    Homework   40%  

    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

    Exams
    and
    Quizzes:
    Final Exam:
    There will be a standard 3-hour final exam during the final exam period at the end of the semester.  The final exam is worth 20% of the semester grade.

    Midterm Tests:
    There will be 2 midterm tests, each worth 15% of the semester grade, given outside of normal class time (probably in the evening) during Week 6 and again in Week 11. 

    Quizzes:
    Quizzes will be given approximately once per week in lecture or (more typically) recitation

    Late Policy:
    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 Python 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, and by automated graders, and at times by your instructor.

    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 your instructor or your CA prior to the deadline.  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.

    And:  do not email or otherwise electronically or physically transfer your code to other students, and do not receive such transmissions from other students, until after an assignment has been submitted and graded.

    Exception:  it is acceptable for students to help other students debug their code.  Even in this case, you may not actually write code for another student, nor study their code and use it (whether verbatim or in spirit) in writing your own solution.  Of course, students may also seek debugging assistance (and any other 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.

    Specifically:  any attempt to decompile solutions, or object code that may help produce solutions, will result in your failing the course.

    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.