Learning to program is an essential part of developing computational skills amongst computer science (CS) majors. Yet, CS majors can encounter programming as a barrier and in many cases leave the field altogether. The learning process that CS majors encounter while developing their programming skills is multifaceted. They are expected to: 1) grasp necessary programming concepts, paradigms, and data structures, 2) become adept with employing the appropriate syntax and semantics for a given programming language used for code development, and 3) exhibit a proficiency for effectively operating a programming tool/editor assigned.
Effective approaches for teaching CS majors how to program has garnered much attention. When emphasizing the types of tools/editors that CS majors operate while programming in addition to these tools’ potential impact to aid the students’ development of their programming skills, much of this work seen in literature has focused on visual-based tools/editors that exhibit adequate affordance to the student for operation during code development (e.g. integrated development environment (IDEs)). In contrast, there are minimal studies that directly explore relative pedagogical impacts involving non-IDE based tools that are less visual in appearance and exhibit a lower operative affordance to the student (e.g. command-line based tools/editors). Moreover, there are even fewer studies that directly compare the impacts of IDEs and command line environments, respectively, on student learning.
This article discusses a case study that exposed early CS majors, enrolled in either CS2 or an Object-Oriented Programming course at a Mid-Atlantic Historically Black University in the United States, to command line programming. This study was conducted over a span of six semesters (Fall 2020 – Spring 2023). During these semesters, students in both courses, respectively, were assigned a command line workflow module to complete beginning in week 3. This module required these students to: 1) install a Unix-like command-line interface named Cygwin unto their personal computers, 2) learn a series of commands for navigating the file/directory system via the Cygwin interface, and 3) become proficient in building, compiling, and executing/interpreting programs while using the appropriate commands via the Cygwin interface. Students who owned a Mac-based computer were permitted to use the embedded Unix-based terminal interface on their Mac to complete this module.
To gauge the impact of command line usage on the students in these courses, two surveys were administered at different points of the semester to capture both performance and psycho-social related feedback about the students’ experiences. Overall, it was revealed that the CS2 students tended to exhibit an unfavorable disposition towards command line programming, which was also reflected in their initial struggle to adjust to using a command line tool. On the other hand, the OOP students showed a better performance and disposition towards command line programming, but this could have been influenced by acquired experiences both prior and external with using such tools.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.