Virginia Tech's CS1 Course
Our CS1 course, CS 1705: Introduction to Object-oriented Development I, has recently been redesigned to use an objects-first approach in Java (compared to our previous "imperative-first" approach in C++, with a gradual introduction of OO features along the way during the first year). We made this choice in part because of the experiences and philosophies expressed by others in the CS education literature (see ReadingList/TeachingObjectOrientation). We ended up choosing BlueJ as our development environment and choosing Objects First with Java: A Practical Introduction Using BlueJ as our text. We also used materials from Joe Bergin's Java implementation of Karel the Robot for the first several weeks of the course (see DevelopmentEnvironments).
In CS1, we do not use a traditional lecture model. Instead, most of our class time is spent developing "live" coding examples with student participation. We go into class with a starting point (anything for an empty project, to a class skeleton, to a set of working classes that need to be extended) and a "script" of what programming steps/actions we want to take and discuss. We then explain the goals and topics to be covered, sometimes with a few powerpoint slides, and begin programming live. We frequently pause to ask students what to do next, or why the code doesn't compile, or why it does not work the way we want.
Our class is offered as a three credit-hour course, and typically meets for two 50-minute lecture periods followed by one 2-hour closed lab session each week. We have a series of 29 or so lectures that match up with our two lecture sessions per week schedule.
As part of a JettWorkshop we hosted in July 2004, we have made all of the materials for our course available here on this wiki (there's also space to add your own if you want to share!). Access to these materials requires registration, but you can register yourself quickly and painlessly on the UserPreferences page. Anyone can register for free, and you can edit pages as soon as you register. Pages with course materials (which may include assignments, commentary, and solutions) are access restricted to educators--that way, students will not stumble across them with Google. Contact StephenEdwards once you have registered on the wiki, if you are an educator and want to see these materials.
CS 1705 Course Materials |
|
All of our lab and programming assignments; reuse them, or contribute your own! |
|
Ideas for in-class or out-of-class assignments and activities other than programming, including all of our CS 1705 homework assignments |
|
Share, exchange, and refine lesson plan ideas here; all of our CS 1705 lesson plans, including every in-class live example, are available here |
|