Abstract

The use of the C programming language in a Linux programming course---common in most undergraduate computer science programs---has been the standard practice for nearly thirty years. The use of C is appropriate because Linux is written in C and, thus, programming with the system (i.e., accessing operating system structures and making calls to the kernel) is natural in C. However, this seamless integration of Linux and C can inhibit student assimilation of course concepts---through conflation of concepts with language (e.g., system calls with C, or libraries with gcc, respectively)---and, ultimately, student learning outcomes for a variety of reasons. We challenge the idea of the exclusive use of C in the Linux programming course and alternatively propose the use of the Go programming language, in strategic conjunction with C, to both achieve student learning outcomes and address some of the issues with an exclusive C approach. We explored and studied this approach---the use of Go in the Linux course---over the course of seven consecutive offerings of it. We present our experience with this approach including a collection of desiderata resulting from it as well as student survey data as an evaluation of its use in practice. Overall, the results indicate this approach is feasible, is no worse than an exclusive C approach, and yields advantages. We anticipate this experience report will inspire adoption of the use of Go in similar Linux programming courses.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.