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
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
Additional (and updated) course information will be available at the class page at
Savitch, Absolute Java, second to fourth edition, Addison Wesley, 2005–2010
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.
By the end of this class, you should be able to:
Grades will be weighted as follows:
component | weight |
mid-term exams | 5 (total) |
final exam | 4 |
quizzes | 1 |
labs | 2 |
projects | 8 |
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.
The current class schedule appears as a separate page.