Syllabus for CSCI 235 Programming I
Spring 2012

Cary G. Gray
Office: Science 159, x5875
Office hours: MWF 8:45–10:20 a.m.
M 3:15–4:30 p.m.
by appointment

I am typically in my office much more than the posted times, and you are welcome to stop by whenever my door is open. Check with me ahead of time if you want to be sure that I’ll be there outside scheduled times.

TAs: Zeke Hernandez and Jason Petersen

Class meetings

MWF 12:45–1:50 p.m., Sci 131
Lab: T 1:15–3:05 p.m., Sci 154
Final exam: 8:00–10:00 a.m. on Wednesday, May 1

On-line resources

Additional (and updated) course information will be available at the class page at

http://cs.wheaton.edu/˜cgray/csci235/

Textbook

Savitch, Absolute Java, second to fourth edition, Addison Wesley, 2005–2010

Description

This course is the first half of a two-semester introduction to programming, emphasizing the process of solving computational problems and expressing those solutions in an object-oriented language. An outline of the two-semester sequence appears at the end of this syllabus. Here is the official catalog description for this semester:

CSCI 235 Programming I: Problem Solving
Algorithms, compilers, and programs in a modern, object-oriented language. Types, control structures, modularity, and recursion. Object-oriented fundamentals, encapsulation, interface implementation, and subtype polymorphism. Exceptions, libraries, and file I/O.

Objectives

By the end of this class, you should be able to:

  1. Design basic algorithms and organize their description:
  2. Express algorithms in the Java programming language:
  3. Practice the basics of object-oriented design:

Assessment

  1. Quizzes are intended as encouragement to keep up with terminology and concepts; they also help students identify the ideas that need more attention. Specific quizzes will test students’ ability to sketch algorithms, to write small pieces of code, and to understand short segments of code.
  2. Labs provide practice working with the material from class, and especially emphasize correct program syntax.
  3. Projects are the opportunity to put the ideas from this class together, solving problems of increasing size as the semester progresses. Specific projects will require designing an algorithm to solve a problem, designing types to model information, and implementing the types and algorithms in Java.
  4. Examinations, including the final, will evaluate students’ mastery of the course material.

Grades will be weighted as follows:

component weight


mid-term exams5 (total)
final exam 4
quizzes 1
labs 2
projects 8

Policies

Preparation. The course schedule (below) lists sections of the textbook to be read before class meetings. What we do in class will be planned with the expectation that you have done your reading. Take notes as you read so that you can recall the most important ideas and anything that you are unsure about.

In reading the textbook, you may assume that you can skip starred (optional) sections unless otherwise noted. Please note also that there are sometimes notes about pages to skip; a letter suffix indicates the major divisions on a page.

Please note that section and page numbers are given for the fourth edition of the textbook. If you have an earlier edition, you’ll need to compare with a fourth edition to check what can be skipped.

Lab activities Work during the scheduled lab will emply pair programming. Two students will work together at one computer, producing a single program, by alternating roles. The driver controls the mouse and keyboard, entering or editing the program; the navigator watches the driver, catches simple mistakes, and thinks about ways to test what is currently being programmed and how to approach the next task. Students in a pair trade roles for each sub-task within the lab, about every ten minutes. Pair work will be done using in-class accounts instead of your personal accounts.

Academic integrity. Because you are encouraged to work together—especially during labs—and provide each other assistance, you do risk inadvertent plagiarism. Be cautious, especially when you ask for or provide assistance. Make sure that you don’t let someone else do your work for you, and make sure that you don’t do someone else’s work.

Because projects are your individual work, what you must not share is code. You may not program together or watch each other programming either to give or receive help. You may, on the other hand, discuss the problem in abstract, work through examples, or even draw diagrams or sketch small bits of pseudocode. Sharing test cases is another good form of collaboration.

If you are stuck trying to understand a compiler error or a program misbehavior, you may ask for help. The rule is that you should not show each other working code. When you give assistance, you should avoid giving the correction; instead, help the other student to better understand the problem or to find helpful material in the book.

There is a lot of code and other information available in books and on the Internet—and some of it is even correct. Looking up information is acceptable, but you should be careful to give credit to sources you use. As when you are working with each other, copying code is not permitted. If you inadvertently find a resource that is too helpful, be honest and acknowledge it.

I expect you to conduct yourself honestly in this course. When you submit work, you assert that it is your own. If you use an outside source or receive assistance, acknowledge it. Deliberate misrepresentation will result in no credit for the assignment; a second offense will result in failing the course. All offenses will be reported and are subject to college disciplinary action as well.

Late assignments You are granted two free late days during the semester; that translates to being two days late with one assignment or one day late with each of two. Don’t waste that slack, because other late work will not be accepted.

Attendance. I expect you to be in class, and you are responsible for what happens in class whether you are present or not. If you are sick or must miss because of other school responsibilities, let me know in advance. If there is an emergency, let me know as soon as practical. (You will do well to think of this as practice for keeping a job. Note that you can reach me by email, and my office phone takes messages at all hours.)

I also expect you to be on time. If you come in late, don’t interrupt class, and plan to find out what you’ve missed from another student after class.

Special circumstances and needs I will work with you if you have any kind of special need, provided you are responsible in letting me know in time to make appropriate arrangements. Accommodation of learning disabilities requires that they be documented with the registrar’s office and that you inform me in time for me to communicate with that office and make the needed arrangements.

Acknowledgement Dr. VanDrunen has done the largest share of the work in developing CSCI 235 and 245. Significant portions of this syllabus and many other class materials are his work or derived from his work.

Schedule

The current class schedule appears as a separate page.