50 Years of CS302!

CS302 first appeared in the University timetable 50 years ago in 1967.  A single lecture of the course titled “Algebraic Language Programming” met three times a week in Agriculture Hall 10, to teach students algorithm construction and how to use procedure-oriented programming languages like ALGOL and FORTRAN.

image  image
Jay Jaeger recalls being a CS302 student in 1969 when his section of the course was taught by Bob Herriot using B5500 ALGOL.  The last two assignments in that course were an assembly interpreter, and a compiler for a subset of the ALGOL language.  Jay was kind enough to share some of his work from that time: compiler-input-cards.txt, compiler-interperter-compile.txt, and compiler-interpreter-run.txt. He noted his own lack of comments, sharing that he “had not yet learned their importance, and that punching extra cards took time. ;)” You can find some of Jay’s memories in his own words here.

Walter Albers recalls learning Fortran through CS302 in 1978.  He also shared his appreciation for the knowledge and discipline of programming that he acquired here, and that have served him well since that time.

Dave Ewald remembers taking CS302 in 1979-ish, the first year that dumb terminals were used in place of punch card decks.  Although the course taught Fortran at this time, he remembers using Pascal in later courses after changing his major from Business to Computer Science.

Rick Lindsley also took CS302 in 1979 using “the mysterious new machines, the six Teraks.”  Most of the assignments used Weaselgraphics to introduce programming.  He also created a program called Trek which seems to have raised a lot of interest in these computers.  He sites CS302/CS304 as being responsible for his move from EE to CS.

image  image
Mark Madsen recalls the popularity of CS302, and how difficult it was to register for in 1984.  At this time, students walked between buildings, collecting a stamp for each class they wished to enroll in.  Freshmen registered last, and therefore rarely got a seat in the “hugely popular” CS302.  However Mark and his friend suspected that a small number of previously reserved seats would be coming available on Friday.  So the two of them decided to form a line, and camp out the night before (in December!).  As the news of this plan spread, 50 more students joined them.  Security allowed the students inside the CS building for the night, where they organized a sign-up sheet to help preserve their order within the line.  After this was taken care of, they ordered pizza from the Pizza Pit, had songs dedicated to them on the radio, and played games throughout the night.  When registration opened in the morning, there were fewer than 10 seats available for the hundreds (by this point) waiting in line.  This experience may have lead to improvements in the registration process for future CS302 students.  You can find some of Mark’s memories in his own words here.

William Kucharski used the Teraks in 1984 to learn Pascal in CS302, and he still has the 8″ floppy to prove it!

The University timetable from 1984 shows the addition of the procedure-oriented language PASCAL which was taught in seven sections of CS302 that were intended for CS Majors only.  The majority of CS302 sections at that time (nearly 60 in total) were taught for engineering majors with a mix of two-thirds PASCAL with one-third FORTRAN 77.

Jim Armstrong shared this copy of his CS302 syllabus from 1987: page1, page2.

image  image
Felix Leung recalls choosing between Pascal and C when taking CS302 in the 90s.  He also shared how fortunate he feels to have been introduced to the world of computer science by Carolyn Rosner who is very well remembered.

Chris Stolte took CS302 in 1996 and learned C++.  He recalls the nugget of intrigue that lead him down the path to a CS degree and career in software engineering being: the explanation for why array indices are 0-based.

Starting in the Fall of 2017, CS302 will be replaced by a new introductory programming sequence aimed at better serving students with different levels of experience.  CS200 will serve students without prior programming experience, and will be followed by CS300.  CS300 is aligned to serve students entering the department with experience comparable to one year of advanced placement (AP) high school instruction.  Further details related to this change can be found here.

image  image 
If you have additional memories, assignments, or pictures related to the history of CS302, please contribute to this page by sending them to dahl@cs.wisc.edu.