A "Grand Tour" of Computer Science: Re-Designing CS1 for Breadth and Retention (Abstract Only)

2016 
We have transformed our first programming course from an introduction to programming, to an introduction to Computer Science. We have done this in part by broadening the topics discussed. We now incorporate discussion of social topics like privacy and humanitarian technology, and "big ideas in CS" like how the Internet and databases work. We have also embedding many of our programming examples in applications from fields like biology and psychology. The other major feature of this course is that we have separated teaching problem-solving from teaching a programming language. In lecture, we discuss problem-solving with high-level programming constructs like conditionals and loops, using only pseudocode. In our new lab section, students are taught how to translate those ideas into C++ code. This allows us to free the initial learning of problem-solving from the complications of a language like C++. A unique feature of these changes is that it is possible to offer multiple different labs, in different languages, in conjunction with the same lecture section. It is our intention to start offering labs in different languages starting in Fall 2016. Our primary goal in making these changes was to improve recruitment and retention, especially among women. We also hoped to improve the course's utility as an elective for non-majors. Our evaluation of a pilot offering suggests that the re-designed course is likely to improve retention, without negatively impacting programming knowledge. We have now completely adopted the re-designed course, and are continuing to gather data to evaluate the new design.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    0
    References
    0
    Citations
    NaN
    KQI
    []