It is not presumed that the students have previous programming experience. However, it is expected that they have an enthusiasm for learning and that they will work very hard. Programming challenges that engage students in meaningful computational activities are posed. The course does not follow a textbook, so students must learn to take good notes and rely upon handouts and online resources. The nature of our CS1 course is decidedly object oriented.
Attention is paid to algorithmic concepts later in the semester.
In the process of scripting programs that perform computations with such objects, students are also exposed to numbers, characters, and strings. In the context of these discussions, students learn to write their own methods. They also learn the basics of selection and repetition. Students are taught to appreciate various forms of abstraction-procedural abstraction, functional abstraction, and objective abstraction. Only at this point do students learn to craft their own classes.