ABSTRACT VIEW
PRACTICAL EXPERIENCE OF TEACHING COMPUTER PROGRAMMING AT A SMALL LIBERAL ARTS COLLEGE
Y. Tseng
Ferrum College (UNITED STATES)
The author was assigned to teach an introductory computer course, CSC 101 Introduction to Computers, which covers computer hardware and software and basic programming at a small liberal arts college. Due to two characteristics of a small liberal arts college which are small enrollment and liberal arts curriculum for all majors, it made teaching computer programming in this course very challenging. Because only about half of the enrolled students were computer science (CS) majors while the remaining students were non-science majors who had little or no programming experience at all. The author has taught CSC 101 for three Fall semesters. Each time, the author explored different approaches and has discovered the optimal pedagogy.

Python was chosen to be used because of the relaxation of data type usages which makes Python friendlier to novices. At the beginning, the Von Neumann architecture was introduced to let students understand that data has to be saved into memory in the form of variables before use and then the programming is about retrieving, processing, and saving the variables. This part is important. Both CS and non-CS majors understood that the nature of programming is about handling data through variables and would not be confused about what to do for programming.

The next phase was covering the fundamental operations like arithmetic and logic operations, flow control with if-else statements, for and while loops, and functions. After years of experiments, the author found that the best way to ensure all students understand how each fundamental operation works is through hands-on practice in class. The author carefully chose typical example code for each operation and requested students to practice them in class. Sometimes typical errors were practices so that students could avoid them or know how to debug. The hands-on practice also made students focus and not distracted by other activities. This approach proved to be extremely effective and successful.

In the last phase, some advanced examples were covered so that students can learn some advanced skills in flow control and data processing.

The outcome showed that, deducting the unmotivated students, all students including CS and non-CS majors learned how to write computer programs.

Keywords: Higher Education, computer programming, pedagogy.

Event: INTED2025
Track: STEM Education
Session: Computer Science Education
Session type: VIRTUAL