Asee peer logo

Using Programming Projects In An Operating Systems Course As A Capstone Software Engineering Experience

Download Paper |


2008 Annual Conference & Exposition


Pittsburgh, Pennsylvania

Publication Date

June 22, 2008

Start Date

June 22, 2008

End Date

June 25, 2008



Conference Session

Computer ET Innovation

Tagged Division

Engineering Technology

Page Count


Page Numbers

13.1350.1 - 13.1350.11



Permanent URL

Download Count


Request a correction

Paper Authors


Scott Schneider University of Dayton

visit author page

Scott J. Schneider is an assistant professor of Electrical and Computer Engineering Technology at the University of Dayton. He received his M.S. in Electrical Engineering from The Ohio State University. His areas of interest include software development, embedded systems, and automotive technologies.

visit author page

Download Paper |

NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

Using Programming Projects in an Operating Systems Course as a Capstone Software Engineering Experience

Computer Engineering Technology students at the University of Dayton take two fundamental programming courses teaching the basics of algorithmic problem solving along with the VBA and C++ syntaxes. These courses develop a strong programming foundation for the students; however, they lack the ability to introduce software programming within larger software systems. The final course related to software development is a required operating systems course. This course contains three fundamental goals: to develop the students’ understanding of key operating system concepts, to increase the students’ software engineering capabilities, and to introduce the students to the internal workings of the Linux and Windows operating systems. The operating systems course relies heavily on software programming exercises as a key instrument in teaching students the framework and applications of modern operating systems. The unique aspect of this approach is that the programming projects are designed not as standalone activities, but instead as individual components of a larger software system. Therefore, each programming project focuses not just on learning new syntax related to operating system concepts, but also in how these concepts are relevant to the software system being developed. Students develop programs for both the Microsoft Windows and Linux operating systems, working heavily with their associated application programming interfaces and investigating processes, threads, synchronization, input and output, and scheduling issues. A complete course overview and synopsis of the software programming projects will be presented along with student performance and comments from an end of the semester survey.


The Computer Engineering Technology (CET) Program at the University of Dayton (UD) was started in 1999 and included two software programming courses. These courses predominately focused on teaching the fundamentals of software programming and the syntax associated with the VBA and C++ languages. Likewise, to satisfy the ABET outcome requirements for computer engineering technology programs, the ETC Program at UD also required a new 3 credit lecture course entitled “Concepts & Applications of Operating Systems” to be taken during the students’ Junior year of study.1 This course was structured to provide students hands-on exposure to the internal workings of modern operating systems.

During the 2004/2005 academic year, the material being taught in the software programming was evaluated. In accordance with the Computing Curricula 2001 (CC2001) report by the Computer Society of the Institute for Electrical and Electronic Engineers (IEEE-CS) and the Association for Computing Machinery (ACM), the two software programming courses being taught fell within the traditional imperative-first approach. This approach starts students off with software programming activities without any real preparations.2 After careful review, it was found that the student population being served needed to be taught the algorithmic thought process prior to the syntax as many of the students had no prior exposure to software programming and were struggling more with defining the problem solutions than with the specific syntax being taught.3 A modified algorithms-first approach from CC2001 report was applied to these courses. Instead

Schneider, S. (2008, June), Using Programming Projects In An Operating Systems Course As A Capstone Software Engineering Experience Paper presented at 2008 Annual Conference & Exposition, Pittsburgh, Pennsylvania. 10.18260/1-2--3737

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2008 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015