CPSC 124: Introduction to Programming (Spring 2008)

Lecture: 3:00 - 3:55 (period 7) Mon/Wed/Fri, Gulick 206A (Class Schedule)
Lab: 11:55 - 1:20 Thu, Gulick Hall 208 (Lab Schedule)
Web: http://math.hws.edu/mcorliss/teaching/spring08/cs124/index.html

Announcements

  • [Mar 11] - Since I will be out of town, I have added extra office hours tonight (3/11) and tomorrow night (3/12) from 6-8. The TA will be Will van Steen. So office hours on both Tuesday night and Wednesday night will last from 6PM until 10PM (from 8-10 Rob has office hours).
  • [Mar 7] - Rob's office hours have permanently moved from 7PM-9PM to 8PM-10PM on Tuesday and Wednesdays (in Lansing 310).
  • [Mar 6] - Lex's office hours have moved to 9-11 for tonight only.
  • [Jan 25] - The teaching assistant office hours are posted below. They are Sunday, Tuesday, Wednesday from 7-9 PM, and Monday, Thursday from 8-10 PM. The office hours are held in the Lansing lab (Lansing 310).
  • [Jan 21] - My office hours are Mon/Wed 12:15-1:15, Thu 10-12, and Fri 1:30-2:30. Please stop by with any and all questions or comments. If you can't make my office hours then send me an email and we can coordinate a meeting at another time. Also, feel free to stop by my office unannounced at any time and if I'm available I will meet with you. In addition, each student must meet with me at least once during the first two weeks of the semester (the meeting will last approximately 15 minutes). You are responsible for contacting me and setting up this meeting. I look forward to meeting with all of you!
  • [Jan 21] - Make sure you view the class schedule, lab schedule, and this page regularly.

Staff

Instructor: Marc Corliss (corliss at hws dot edu)
                   Office hours: Mon/Wed 12:15-1:15, Thu 10-12, Fri 1:30-2:30.

Teaching Assistants:
     Rob Hendry (robert dot hendry at hws dot edu)
          Office hours: Tue/Wed 8pm-10pm in Lansing Lab (310).
     Lex Kridler (alexander dot kridler at hws dot edu)
          Office hours: Mon/Thu 8pm-10pm in Lansing Lab (310).
     Keenan Simons (thaddeus dot simons at hws dot edu)
          Office hours: Sun 7pm-9pm in Lansing Lab (310).
     Will van Steen (William dot VanSteen at hws dot edu)
          Office hours: TBA.


Course Summary

This course is an introduction to computer programming. Computer programming is the craft of instructing a computer to perform some task. It requires breaking the task up into a sequence of clear and unambiguous steps, and constructing these steps in a language the machine can understand. Good programmers must be able to think logically and be good problem solvers. Although computer science consists of much more than computer programming, programming is a fundamental part of computer science.

This course emphasizes the general principles and techniques of computer programming, which can be applied to almost any programming language. Although the emphasis is on programming in any language, this course focuses on one language, in particular, called Java. The Java programming language has become ubiquitous in computing systems due to its portability and advanced features. This course will explore those features that have made Java so popular in recent years, while comparing and contrasting Java with other programming languages. Topics covered include control constructs, arrays, subroutines, the object-oriented paradigm, and graphical user interfaces (GUIs).

Active Learning

Programming is best learned by doing. In that spirit, CPSC 124 emphasizes active rather than passive learning. In other words, students will learn programming by actively writing programs either on a computer or on the board in class. The course has a required lab component, which will give students hands-on programming experience with a chance to get help from other students or the instructor. Students will also use laptops in some of the lectures (roughly once per chapter covered) in order to make sure that they master the current topic(s). Finally, in lectures, students will be called on to participate in working out programming examples on the board.

Textbook

This course will use the textbook, "Introduction to Programming Using Java", an online textbook written by Professor Eck. Printed copies will be handed out early in the semester (this is what the $25 course fee covers).

Schedule

The tentative class schedule and lab schedule are posted online. The schedule is split into several topics that usually make up one chapter of the textbook. If a programming assignment or lab is due on some class day then the it is due at the start of class. Exams (both the review and the actual test) and vacation days are indicated on both schedules. Labs and programming assignments will be posted to the lab schedule on the day they are assigned.

Course Work

Labs. This course has a required lab component. The labs give hands-on experience and a chance to get help from other students or the instructor. Helping other students during the lab (and only during the lab!) is encouraged. Students will have to complete some lab exercises that must be turned in by the start of the following lab (a week later). Although students may collaborate on the labs, students must writeup their solutions individually. Identical or nearly identical solutions will be considered one individual lab and the students will share the points for that lab. For example, if three students submit identical writeups that are 50% correct, then each student will receive a 16.6% (1/6) on that lab. Late lab exercises will not be accepted, although the lowest lab grade will be dropped. Lab exercises will also be posted online for those who miss the lab.

Individual programming projects. There will be two individual programming projects, in addition to the weekly labs. These will be more sizable programs than the labs, and are intended to give students practice with creating larger programs from scratch. Projects are due by the beginning of class. Late projects are accepted until the solutions are posted, which is one week after the project was due. 10% of the total grade of the project is deducted for each late day. If the project is due on Thursday at 11:55am (start of lab) then a submission on Friday at 12:30am is two days late and will lose 20%. A submission on Friday at 11:55am is only one day late and will lose 10%.

Final programming project. A final programming project will be due at the end of the course. The late policy for the final project is the same as for the other programming projects (see above). This project must be completed individually and it will be more ambitious than the other programs written in this course (including the first two projects).

Quizzes. There will be 7 short (10 minute) quizzes throughout the semester to help make sure that students keep up with the material. They may be given at any point during the class including at the start of class. In general, they will not be announced in advance, but the first quiz will be given Monday, January 28th. The lowest two grades will be dropped. If a student misses a quiz (for any reason), they will receive a 0, including if the student shows up late on a day where a quiz is given at the beginning of class.

Exams. There will be two midterm exams and a final exam. The midterm exams will be in-class, written (no programming on the computer), and closed book/notes. The first midterm is tentatively scheduled for Monday, February 25th, in class. The second midterm is tentatively scheduled for Monday, April 7th, in class. The final will be cumulative, but will emphasize aspects of the material covered after the second midterm exam. The final exam is scheduled for Sunday, May 11th from 3:00pm to 6:00pm in Gulick 206A (our normal classroom). Note: the final exam date and time is scheduled by the registrar's office and will not be changed. Rescheduling or making up of exams will only be allowed for *compelling* circumstances. Arrangements must be made in advance for non-emergencies. Making up a missed exam will only be allowed with documentation from an appropriate person (dean, doctor, etc.).

Attendance/Participation. To get full credit for participation, students should attend all lectures (MWF, 3:00-3:55, Gulick 206A) and labs (Th, 11:55-1:20, Gulick Hall 208). Students can miss, at most, three combined lectures and labs (for any reason). If a student misses more than three classes (combined lectures and labs), they will lose 10% of their attendance/participation grade per day missed. In addition, if a student misses a lecture in which a quiz is given, they will receive a grade of zero for that quiz. Students must also meet with the instructor once in the first two weeks of the semester (1/21 to 2/4). This meeting will take approximately 15 minutes. It is the student's responsibility to arrange a meeting time with the instructor. If a student fails to meet with the instructor within the first two weeks, then they will lose 20% of their attendance/participation grade.

Grading

Programming Projects: 10% (5% each)
Quizzes: 10% (2% each)
Labs: 25% (approximately 2.5% each)
Midterm exams: 20% (10% each)
Final exam: 15%
Final project: 10%
Participation, attendance, etc.: 10%

Academic Integrity

The Principle of Academic Integrity (see the HWS Catalogue, p. 33) governs the work completed in this course. The following outlines specifically how this principle applies.

Exams and Quizzes. All exams and quizzes are to be completed solely by the student whose name is on the paper. Unless otherwise specified, these are closed book/notes, which includes any materials not provided as part of the exam/quiz.

Labs. The labs are the only course activity where students can (and are encouraged to) work together. However, each student must write up their solutions independently, including both written answers as well as electronic files. Each student must understand all submitted work and be able to explain this work to someone else. Copying part or all of someone else's solution is prohibited. Identical or nearly identical solutions will be considered one individual lab and the students will share the points for that lab. For example, if three students submit identical solutions, then each student will receive a maximum of a 33% on that lab (they will receive less for any errors found in the lab).

Projects. The projects are to be completed individually. The work that students submit must be their own. Students may not work with other students, including discussing ideas, offering debugging help, or looking at their programs. Students may receive debugging help from a tutor, but anything beyond debugging should be referred to the instructor or the TAs. Students must document and understand all the help received from the tutors, TAs, and the instructor (i.e., name of tutor/TA/instructor who helped and how they helped). Students may consult the book, their notes, any course materials provided in class or on the course website, and reference books found in the lab. Use of other materials (including websites) is not allowed. It is never acceptable for a student to be in possession of another person's program, either hardcopy or electronic (even if that person is not at HWS). Copying a project will result in a grade of 0 and, in addition, the case will be taken to the HWS committee on standards. For a second offense, the student will fail the course.

Each project (and also each lab) submitted for credit will be checked by a plagiarism detector called MOSS (http://theory.stanford.edu/~aiken/moss/) to determine if it was copied. MOSS is highly accurate at detecting plagiarized software (changing a few variable names, comments, etc., will not help). In addition, any student that submits a suspicious program will have to explain their code to the instructor. If they are unable to effectively explain the code, then they will receive they will not receive credit for the assignment and the case may be taken to the committee on standards.

Summary. The moral of the story is students should not cheat in this class. For each case of cheating, the student will receive a 0 on the assignment, and the case will be pursued with the HWS committee on standards (excluding labs, in which case the students will share the lab points). It is better to submit an incomplete solution than to submit a plagiarized solution.

Center for Teaching and Learning

Hobart and William Smith Colleges encourages students to seek the academic collaboration and resources that will enable them to demonstrate their best work. Students who would like to enhance their study skills, writing skills, or have other academic inquiries should contact the CTL. You may visit the CTL web site to learn more about the services and programs that are available.

If you are a student with a disability for which you may need accommodations, you are required to register with the Coordinator of Disability Services at the CTL and provide documentation of the disability. Services and accommodations will not be provided until this process is complete. The web site for information pertaining to registration with the CTL and documenting disabilities is: http://www.hws.edu/studentlife/stuaffairs_disabilities.aspx.

Resources