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.
Prerequisites
- 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.