Using an operating systems class to strengthen students' knowledge of c++

Publication Title

SIGCSE 2020 - Proceedings of the 51st ACM Technical Symposium on Computer Science Education

ISBN

9781450367936

Document Type

Conference Proceeding

Abstract

Operating systems is the last required course in our undergraduate Computer Science major. Although our students have had two semesters of programming in C++, one in assembler, and a semester of data structures using the C++ Standard Template Library, many of them have weak mastery of some important programming topics. In addition, they have had minimal exposure to using these constructs with real world data structures. In this paper we describe how we have used the assignments in a Linux-based Operating Systems course to remedy these deficiencies while teaching a full semester of OS content. Assignments include retrieving data via standard API calls and from /proc; process management, including fork, wait and system; building a microshell with fork/exec and pipe/dup; semaphore handling; and building an OS simulator. We have rewritten these assignments to provide additional practice with data type conversion, pointers and memory management, file handling, classes and subclasses, and the use of vectors, maps and other data structures in the STL.

First Page

947

Last Page

953

Publication Date

2-26-2020

DOI

10.1145/3328778.3366936

Keywords

C++ programming, Data structures, Operating systems

Department

Department of Computer Science

Share

COinS