CS A 120
Computer Science I is an undergraduate course which provides an introduction to computer programming. No prerequisite programming experience is required, though we will expect a sufficient preparedness in analytical thinking and abstraction, as equivalent to four years of high school mathematics.
What distinguishes computers from many other types of machines and inventions, is their great generality and their programmability. Personally, one can find great joy and pride in instructing a computer to behave precisely as desired; there can also be great frustration at times, when finding that the instructions given to the computer were not actually interpreted as intended. We will hope to lead you through a great many successes during this course; at the same time, it is almost certain that your path will lead you through some times of frustration and even some failed attempts. Keep your spirits up when tackling the challenges and rely on the instructor for help, when needed.
This semester, there is particular excitement. Our department has been working on a new rendition of this course to go into effect for all sections starting in Fall 2004. We will be serving as a pilot group for this newly revised version. The major curricular change to the course is that we will be teaching a useful style of programming known as Object-Oriented Programming.
Modern pieces of software are often large and complex. To design such systems, you cannot easily rely on the same techniques which you might have used when writing small programs. Instead large-scale software design involves recognizing distinct "components" or "objects", understanding how these objects must interact with each other. Only then should you worry about the low-level implementation of these components.
In step with this change of paradigm, we will be changing the programming language used for instruction, choosing to use the object-oriented Java programming language, rather than the imperative C programming language. (Note: If any student was specifically aiming for learning the C programming language, there is another section offered this semester, CS A 120-01, which will be using C as the language).
Please make sure to take advantage of office hours, as
they offer a wonderful opportunity for individual
attention. Though some of the class periods will be run
in a lab setting, with time for individual help, the
unavoidable fact remains that such a class period allows
for an average of only 4 minutes of individual
attention per student.
|Place:||Shannon Hall 118|
Class participation is most welcome. The schedule and copies of lecture notes can be found on the course schedule web page.
To reinforce conceptual material from the class, we will often suggest a set of practice problems to consider. These will not be submitted and thus you may discuss them freely with each other and with me. At times, we will go over these problems in class. The timing of these practice problems will often be coordinated as preparation for quizzes and exams.
We expect there to be a total of 6-8 programming assignments during the course. On certain assignments, you will be required to work individually; on others you will be allowed to work in pairs. Unless otherwise specified, the programming assignments will be weighted equally. At the end of the semester, we will drop your lowest score and will use the remaining scores to contribute to this portion of your course grade.
You will note that half of your course grade is being determined by these assignments. This reflects the great amount of time and effort which you will be putting forth in completing these assignments. When completing this work, please respect the policy on Academic Integrity as given below.
Programming assignments will be submitted electronically; details will be announced at a later time.
There will be six quizzes during the course, general every other Friday, each lasting approximately 15-20 minutes. The precise schedule for quizzes will be found on the course schedule web page. At the end of the semester, we will drop your lowest score and will use the remaining scores to contribute to this portion of your course grade.
We strongly suggest that you use the provided practice problem as an aide in preparing for these quizzes.
Any modification to this scale at the end of the course will be in favor of the students. That is we may later decide to award an A to a student who is slightly below the above cutoff, but we certainly will not take away an A from someone who is just above the cutoff.
When it comes to learning and understanding the general course material, you may certainly use whatever outside references you wish, and may have discussion with other students of this class or other people from outside the class. This openness pertains to material from the text, practice problems, general syntax and use of the Java language or other computing tools.
However, when it comes to work which is submitted for this course, any such use of unauthorized sources is prohibited. You are free to have consultations with the instructor, teaching assistants, or members of organized tutoring centers on campus. Even in these cases, if you receive significant help you should make sure to document both the source of the help as well as the extent.
Other than those sources, you are in no way to discuss such assignments, nor are you to use or or search for direct or indirect assistance from any outside references, including but not limited to:
On certain assignments, we will explicitly allow students to work in pairs. In this case, conversations between partners is both permissible and required. Furthermore, both students are expected to contribute significantly to the development of the submitted work. It is unethical to allow a partner to "sign on" to a submission if that partner did not significantly contribute to the work.
Any violations of these policies will be dealt with seriously. Penalties will apply as well to a student who is aiding another student. Any such violations will result in a minimum penalty of a zero on the given assignment which cannot be dropped, and severe or repeated violations will result in an immediate failing grade in the course. Furthermore all incidents will be reported in writing to the Department and/or the Dean, as per the College procedure.
All exams and quizzes must be taken promptly at the required time. Requests for rescheduling an exam or quiz will only be considered if the request is made in advance, or else in an ``emergency'' situation with appropriate documentation.
For programming assignments, we wish to allow students to continue to work comfortably beyond an "official" deadline, in case more time may result in more progress. At the same time, we wish to discourage students from falling too far behind pace and jeopardizing their success on future assignments.
Our solution is the following exponentially decaying late formula with a half-life of approximately five days (some have suggested that we should offer extra credit to anyone who fully understands this formula).
We will consider an assignment submission ``complete'' when any part of the assignment is last submitted or modified. Any assignment which is not complete promptly by its due date and time will be assessed a penalty based on the formula S = R * e-h/173, where S is the grade given, R is the grade the work would have received had it been turned in on time, and h is the amount of time (in hours or fractions thereof) that the work was late.
The above policies will be waived only in an ``emergency'' situation with appropriate documentation.
Such student should immediately contact the Disabilities Services Office in Suite 130 of the Academic Resources Center or at (314) 977-2930. The Disabilities Services Office can assist you and the instructor in formulating a reasonable accommodations plan and provide support in developing appropriate accommodations for your disability. Course requirements will not be waived, but accommodations may be made to assist you to meet the requirements. Technical support may also be available to meet your specific need.
The web page contains some information (e.g. solutions, submitted assignments, individual grades) which is more sensitive and therefore which will be available to students in the class only after they have identified themselves properly.
Its home page, at www.bluej.org, contains further information, including a download if you wish to install it on your own computer.