Fall, 1992 through Spring, 1997
National CS-1 Telecourse: Integrated Introduction to Computing is an introductory Computer Science telecourse which runs (1) on the TV cable system, Mind Extension University, reaching millions of homes; (2) via Electronic University Network on the computer network, America OnLine; and (3) at adopting schools. Approximately 1800 students per year at Michigan State University take Integrated Introduction to Computing.
At MSU, the course enrolls all of the nons on campus, the non-majors, non-engineers and non-scientists. This course embodies a rigorous "call before write" approach. The first keyword which students see is CALL, followed soon thereafter by FUNCTION and SUB. Students are not exposed to I/O routines until roughly the middle of the course and then only in the form of Windows-like Graphical User Interfaces. The telecourse and textbook were developed concurrently.
Weinshank, D. J., Urban-Lurain, M., Danieli, T. and McCuaig, G., Integrated Introduction to Computing, 25 televised lectures, ~700 pp. textbook, based on Visual Basic for DOS; Kendall/Hunt Publishing Company, Dubuque, Iowa, 1995, ISBN 0-7872-0324-6 (updated first edition, revised and enlarged)
|2. Problem-solving||15. Variables|
|3. Modular Programming||16. The User Interface|
|4. Structure Charts & Subs||17. Forms & Event Procedures|
|5. Looping||18. Output Files|
|6. More Looping||19. Input Files & Functions|
|7. Making Decisions||20. Arrays|
|8. More CASE Statements||21. Multiple Arrays|
|9. The Design Process||22. Retrieving & Sorting|
|23. More Forms|
|11. Multiple Arguments||24. Advanced Forms|
|12. Constants||25. Advanced Topics|
|13. Computer Architecture||
26. Spreadsheets (MSU only: not part of national telecourse)
The videotaped lectures run about 20-35 minutes, and the Teaching Assistants have the rest of the class hour to help students work through a post-video exercise in the textbook that focuses on the concepts in that lecture.
Teaching Assistants meet the students in a lab section of roughly 30 students for two hours per week. During those lab sessions, the TAs concentrate on applying the general concepts introduced in lecture to the current programming exercises, which are created ex nihilo each term. (We have never repeated a programming assignment, even after the passage of years.) The course is the standard semester CS1 course with a 3(2-2) model.
During the first hour of the laboratory session, the Teaching Assistant and an experienced grader (Grader 1) help students to design programs to solve challenging problems and to begin the process of implementing the designs in the computing language. During the second hour, the Grader 1 continues the process with the help of a fully capable but less experienced Grader 2. The latter's sole responsibility is to work one-on-one with the students. In addition to the scheduled lab time, students must work on their own to finish the programming exercises. One centrally located laboratory room is staffed seven days a week to help students with their programs.
Students work in teams of two to design, code, and test what are, for an introductory course, fairly sophisticated programs which have one or more G.U.I. "Forms," each with an appropriate set of "controls" such as command buttons, text boxes and labels. These program run to a couple of hundred lines of code and are completely structured, completely modular and exhaustively documented.
The course meets most of the CS1 requirements and a couple of the CS2 specifications (e.g., file I/O) from the "ACM '78" paper written by Richard Austing et. al. which appeared in Communications of the ACM, Volume 22, Number 3, March 1979. (See also "Recommended Curriculum for CS1, 1984," by Elliot Koffman et. al. in Communications of the ACM, Volume 27, Number 10, October, 1984 and "Computing as a Discipline: the final report of the Task Forced on the Core of Computer Science" in Communications of the ACM, Volume 32, Number 1, January, 1989.) The course is, quite frankly, considered one of the tougher ones on campus but, at the same time, one in which the structure is well delineated and for which considerable out-of-class help is available. For example, students are given an exam pool of hundreds of questions that they can study to prepare for exams and a complete printout of every previous exam.
Let me just add a couple of remarks about the programming environment. Students work at networked 486/Pentium PCs running Windows at ~1000 locations around campus. Students have electronic mail service to communicate with their Teaching Assistant, the Instructor and each other. They are required to use Netscape to read course postings, and we encourage them to explore the world that the World Wide Web opens upto them.