Home Contact

Introduction to Linux OS for MS Windows Users

Dept. of Computer Science, University of Maryland, College Park, MD, USA.

GTAC 2007
Click on images to play videos
GTAC 2008

About the Course

Catalog Summary

The purpose of this course is to introduce the Linux OS to Microsoft Windows users/programmers. The course has a steep learning curve, starting with basic concepts of Linux usage, and then rapidly moving towards advanced programming concepts of multi-threading, concurrency, semaphores, interfacing with hardware devices, and real-time programming. To facilitate such a steep learning curve, the course is designed to be goal-oriented and top-down. That is, the participants will work on six practical programming projects of increasing complexity. All six projects will be described during the first lecture – participants will know exactly what they will achieve during each module (roughly a two-lecture period), which is the time-window of each project. Lecture content of the first four modules will be geared towards their corresponding projects. Towards the end of the course, all participants will be familiar with the Linux OS. They will have developed, in Project 5, the basic infrastructure needed for cloud computing (with a registration node, and multiple computing and job management nodes utilizing features of inter-networking, multi-threading, locking, etc.), which they will customize for a distributed computation task of their choice in Project 6. The programming language used throughout the course is C.


  • Fundamental concepts of programming
  • Knowledge of file systems, computer architecture, concurrency

Lecture Style, Office Hours, and Schedule

  • Because of the practical nature of the course, all participants will be expected to have access to computers during the lecture. Parts of some lectures will involve writing C code, debugging and executing it.
  • The lecture hall must be equipped with a high-resolution projector so that the instructor can show code examples.
  • For each lecture, there will be at least two contact hours, outside the lecture hall, for interaction between the participants and instructor. For example, participants can ask for help with debugging their code during this time; or ask clarification questions. In addition, participants should be able to ask clarification questions via e-mail.
  • The course will be conducted in 17 lectures. Each lecture will be 1.5 hours. The total number of lecture hours is 25.5.