Indiana University
Computer Science Department
BL CSCI A201 and A597
Introduction to Programming I
Spring 2008
Professor Christopher Haynes
Syllabus
Schedule
| A201 Section | A597 Section | Cr | Begin-End | Days | Room | Instructor |
| 6322 | 6373 | 4 |
4:00PM-5:15PM | TR | LH102 | Chris Haynes |
| 6323 | 6374 | LAB |
6:50PM-8:45PM | R | BH308 | Giancarlo Schrementi and Saurabh Ajmera |
| 6324 | 6375 | LAB |
10:10AM-12:05PM | F | BU407 | Dan Doyle |
| 6325 | 6376 | LAB |
11:15AM-1:10PM | F | BH107 | Jason Kessler and Joseph Biberstine |
Instructors
| Name | Email [1] | Office [2] | Phone [3] | Office hours [4,5] |
| Prof. Chris Haynes | chaynes | LH230F | 855-3376 office 336-3221 home |
M 1:00-3:30 |
| Jason Kessler | jaskessl | LH230 | 855-9926 | W 4:00-6:00 |
| Giancarlo Schrementi | gischrem | LH330A | W 2:00-4:00 | |
| Saurabh Ajmera | sajmera | LH201H | 855-9926 | Tu 9:00-11:00 |
| Dan Doyle | daldoyle | LH230 | 855-9926 | M 5:00-6:00 |
| Joseph Biberstine | jrbibers | LH230 | 855-9926 | W 12:00-1:00 |
[1] Please respect the course email policy.
[2] Lindley Hall (LH) is the first building north of Rawles Hall. LH230 is the suite at the south end of the second floor.
[3] Please limit home calls to business hours.
[4] No appointments are needed to see us during office hours. Don't ask for an appointment, just come. We'll be there. First-come first-served, but let us know if you are waiting so we don't keep you waiting too long. If office hours don't work for you, appointments can be made at other times. See the policies page for information on how to come best prepared for help and limits on the kind of help we provide.
[5] TBA is To Be Announced
Peer Tutoring
Peer tutoring is available every Monday from 7:15 to 10:15 PM, at a date early in the semester to be announced. The tutors, Danielle Gadbery (dgadbery) , Zach Lapidus (zlapidus) and Brian Wyrostek (brwyrost), are undergraduate students who have recently taken this course and have no connection with course grading. It's in Lindley Hall 115 (main floor, just iup the steps from the front entrance), where there are several computers you can use and refreshments are available. The atmosphere is informal, and you can come and go at any time.
Please take advantage of this opportunity. Office hours of the course instructors, indicated above, are another valuable way of getting assistance (and will also never have a negative effect on your grade).
Texts
- Learning to Program with Alice, Brief
Edition (or the regular, not brief, edition), by Wanda Dann, Stephen Cooper,
and Randy Pausch, Prentice Hall, 2006.
- Available from the IMU and TIS bookstores, and also online book sellers.
- This is the primary text for about the first month of the course.
- We will not cover chapters 8, 9, the second part of 10, and 11.
- How to Think Like a Computer Scientist: Learning with Python, by Allen Downey, Jeffrey Elkner, and Chris Meyers, Green Tree Press, 2002.
- Available free from http://www.greenteapress.com/thinkpython in PDF, Postscript, offline-HTML (zip) and online-HTML formats. The parts we will be using are reprinted for this class and available for sale at the IMU, TIS, and Eigenman bookstores.
- This is the primary text after the first three weeks of the course.
- We cover most of the first 11 chapters, plus appendix A.
- It is recommended that you have the parts we will be using (about 130 pages) from the printed or online versions. You can also read it online (not recommended, unless perhaps you have a tablet computer) or, if you love traditionally printed books, you can purchase a printed copy of the whole book from the publisher or online booksellers.
- Numerous exercises will be provided on this course web to make up for their absence in the text.
- Please don't let the title scare you: this is not a course for prospective computer science majors. If it were, we'd be covering the whole book, not half of it!
Classroom Response System
Bring to each class your personal eInstruction Higher Ed CPSrf unit, also known as a clicker.
- Clickers will be used in most classes for attendance and feedback.
- Both the hand-held clicker and associated registration for at least the spring semester are required.
- The clicker and registration can both be purchased from the IMU and TIS bookstore (TIS bundles the clicker and registration).
- IMU registration is a bit less expensive because of an IU deal with eInstruction, and registration is less expensive online than from either bookstore.
- Activate your registration before the end of the first week of class. See the Clickers Resource page ??? for class key and other registration and clicker use instructions.
Recommended
In addition to the required texts and clicker, it is recommended that you have a flash drive (or other portable USB memory device) for storing your work. See the File Storage page.
Software (free)
Primary Topics
- Introduction to program design and implementation in Alice (Alice text, chapters 1 and 2)
- Expressions, functions and control structures (Alice text, chapters 3 and 4)
- Event-driven programming, conditional logic, and loops (Alice text, chapters 4, 6, and 7)
- Python variables, expressions and statements (Python text, chapters 1 and 2)
- Functions (Python text, chapter 3)
- Conditionals (Python text, chapter 4)
- Advanced function use (Python text, chapter 5)
- Iteration (Python text, chapter 6)
- Strings (Python text, chapter 7)
- Lists (Python text, chapter 8 and part of chapter 9)
- File I/O and operating system applications (Python text, chapter 11)
- Program design and debugging
- Nested lists and image processing
- Simple web data mining
Evaluation
- Programming assignments (some individual and some team work; one a week)
- At least 4 short (30 minute) tests in class, using Python, starting in the
- Lab practical tests, one using Alice in half of the fourth lab, and one using Python taking all of the semester's last lab
- Lab and class attendance and participation
- Final exam: 2:45-4:45 p.m., Tues., April 29, in the usual classroom
Catalog Descriptions
A201 Introduction to Programming I (4 cr.) N & M P: two years of high school mathematics or MATH M014. Fundamental programming constructs, including loops, arrays, classes, and files. General problem-solving techniques. Emphasis on modular programming, user-interface design, and developing good programming style. Not intended for computer science majors. Credit not given for both A201 and A597.
A597 Introduction to Programming I (3 cr.) Fundamental programming constructs, including loops, arrays, classes, and files. General problem-solving techniques. Emphasis on modular programming, user-interface design, and developing good programming style. Not intended for computer science majors. A597 corresponds to old A501
Academic Dishonesty
Academic dishonesty will be prosecuted, so to be sure you understand the rules, read this carefully!
- If someone is caught using another student's "clicker," both the user and the owner of the clicker will be charged with flagrant academic dishonesty and fail the course.
- Submitting a laboratory assignment via Oncourse other than while attending lab is academic dishonesty.
- Providing or receiving help during exams or tests, or submitting the work of another as your own without conspicuous acknowledgment, or allowing (knowingly or carelessly) your work to be used by others, all constitute academic dishonesty. There are no "small" offenses.
- You were provided with a copy of the Code of Student Rights, Responsibilities, and Conduct when you enrolled at this university. Read especially the Academic Responsibilities & Misconduct section. The Computer Science Department Statement on Academic Integrity provides further information. If you are not sure about the rules, ask right away.
- Do not assume an academic dishonesty charge can be avoided by renaming variables, changing comments, and other minor program modification.
- Consistent with university policy, substantiated academic dishonesty will result in a penalty including at least no credit for the work involved and a report to the Dean of Students.
- You may freely discuss with other students in-lab exercises (those that must be submitted before the end of your lab period), receiving and providing as much help as is needed for you to complete that exercise. However, programming assignments (including parts started in lab) must be done independently, or in groups permitted by the assignment. If you need help with assignments, see the course instructors in office hours or by appointment, or if the question is of a general nature you can post a note to the newsgroup.
- Do not ask your friends for assignment help (other than clarifying the meaning of the assignment and background knowledge from class and texts), and do not provide help to others that they are not allowed to receive.
Prosecution of academic dishonesty is necessary for the protection of honest students; otherwise grades may reflect social connections rather than ability. And students who do not do assignments will not develop sufficient skill to pass tests and the final exam.
Pair Programming Policies
Some assignments begin with an indication that pair programming is allowed (and when it is allowed, it is encouraged). If an assignment indicates pair programming, it applies to both the in-lab and out-of-lab portions of the assignment, with the same partner. This allows you to learn from others and assist them in learning (which always teaches you something), but in a controlled manner that still makes grades meaningful. Along with this benefit, there are some important responsibilities. If you ignore these responsibilities, it will hurt your learning, your grade, or both.
- All members of an assignment pair receive the same grade, unless there is clear evidence of unequal contribution. In the event of very unequal contribution, group members are encouraged to report the situation to me.
- Only one member of each pair may make a submission for each assignment (so that there is not confusion about which is to be graded and effort is not wasted grading more than one). If both partners make an assignment submission, the most recent will be graded and the group grade will be reduced by a letter grade.
- You and your partner are responsible for proper submission of pair work, so you should be together and both watching and confirming the submission procedure. You may be tempted to allow your partner to make the submission in your absence, but if they mess up, your grade will suffer, including the possibility of not receiving any credit for the submission.
- You are both responsible for understanding all of your work. Ideally, all work should be done collaboratively. If you let your partner do much of the thinking, you're loosing out on valuable experience and are likely to do less well on tests.
- The names and user names of both partners must appear on the first-line comment of submitted source files, along with your lab section day-of-week and starting time. Failure to follow this instruction will result in loss of one letter grade on the assignment and no credit for lab exercises (because it requires only a small amount of your effort to include this information, but a significant effort for an instructor to confirm a mistake and correct the grade roster).