CIS 1968: Honors Program Design and Abstraction Fall 2013

Additional information about this course may be found on the Web at
http://lucas.cis.temple.edu/~lafollet/1968

Lecture Time: Tuesday and Thursday 3:30 PM to 4:50 PM Beury 415

Laboratory : Wednesday 10:00 AM to 11:50 PM Wachman 200

Instructor : Paul LaFollette

Office : Wachman 307

Mail : paul.lafollette@temple.edu

Contact Hours : TBD

Each student should have a general Temple email address, usually of the form firstName.LastName@temple.edu Important student information is accessible from http://owlnet.temple.edu/ Any student who has a need for accommodation based on the impact of a disability should contact me privately to discuss the specific situation as soon as possible. Students with documented disabilities should contact Disability Resources and Services at 215-204-1280 in 100 Ritter Hall to coordinate reasonable class accomodations.
  • Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has adopted a policy on Student and Faculty Academic Rights and Responsibilities (Policy # 03.70.02) which can be accessed through the following link: http://policies.temple.edu/getdoc.asp?policy_no=03.70.02
  • Students should be familiar with the University statement on academic honesty found at the following link http://www.temple.edu/bulletin/Responsibilities_rights/responsibilities/responsibilities.shtm
  • The grievance procedures are available online
  • PREREQUISITES

    TEXT

    DESCRIPTION

    CIS 1968 introduces CIS majors to computers, computer programming, and problem solving using programs. Topics covered include the general characteristics of computers; techniques of problem solving and algorithm specifications; and the implementation, debugging, and testing of computer programs. The goal is to learn to solve small programming problems and to write their solution as high quality small programs in Java.

    GRADING

    Percentages given here are approximate, and the instructor may change them during the course. Disastrous performance in either the exams, or in the laboratory, will result in a failing grade.

    EXAMS

    The exams are open book. Their content is cumulative, i.e. they address the material covered up to the day of the exam. If a student misses a midterm for an emergency [as agreed with instructor], there will be no makeup exam: the final will become proportionally more important. If a student misses a midterm without previous agreement and without definitive proof as to the medical or legal reasons, he or she will get a zero for that exam. Weekly 10-minute tests that are missed will not be made up, but the two lowest will be dropped. The final exam is mandatory on the scheduled day.

    LABORATORIES

    You will be assigned laboratory project roughly weekly. Each assignment must be sent by e-mail to me. The labs will be graded, commented upon, and returned.

    Lateness Policy: Computer programs can be finicky. Tracking down bugs may take an unexpectedly long time, especially for beginning programmers. Students will have three (3) late days to use on homeworks during the course of the semester, in case tricky bugs crop up. If a student does not hand an assignment in by the due date and time, the TA will still accept the assignment during the next 24 hours, if the student has any late days left. Each late day cannot be subdivided; if an assignment is late, it takes a whole late day to allow it to be accepted. Once all three late days have been used, late assignments will lose one point for each day it is late. Any exceptions must be approved by the instructor.

    Many of the lab projects will be assigned to be done in small groups (typically three). When these are turned in, you are expected to indicate the amount of contribution each participant made to the project.  While it is appropriate to seek help from me, the internet, or elsewhere, it is expected that you will document any part of the project that was written by someone not a part of the team.  Plagiarism will not be tolerated. See the University Policy on Plagiarism and Academic Cheating.

    During labs, I will help students learn and practice the programming skills that are discussed during lecture. This will include teaching students how to use important software, including the shell, text editors, the Java compiler, the debugger, and an integrated development environment (IDE). Students will be presented examples related to the material discussed in class and will examine common errors and how to avoid them. Part of the laboratory time will be dedicated to work on programming assignments, but you must NOT assume that you will be able to complete the work solely in the lab.  You will need to spend time during the week on these assignments as well.