An Example of Using Critical Thinking to Teach Computer
Programming in an Operating Systems Course
Pamela K. Fink, PhD
Assistant Professor of Computer Science, St. Mary’s University
Arthur D. Hanna, PhD
Associate Professor of Computer Science, St. Mary’s University
Abstract
Computer programming and algorithmic languages are used to make most of the domain distinctions in the discipline of Computer Science, but programming is a creative artistic effort and is not easy to learn. Expert programmers think, know, and understand differently than beginners, so beginning programmers can benefit from the experience of an expert programmer. The most effective way to learn to think like an expert is to emulate expert behavior. Case studies detail how a specific problem is solved by an expert and model the critical thinking experts use. Critical thinking questions are the precise questions which an expert asks/answers as she analyzes the problem and synthesizes the solution. Active learning is an effective pedagogy that requires the beginner to explore and experiment to find the answers to foundational questions. Simulation tools are a very common way to teach operating systems courses because a simulator creates a realistic, albeit simplified, operating system environment the student can easily understand and then use to develop, modify, and explore. The S16 simulation tool consists of a simple, 16-bit RISC-like computer hardware architecture and a multi-tasking, batch-oriented operating system. S16 has been used successfully for several years in a sophomore-level operating systems course.