When: MW 9-10am, August 28 - October 21, 2013
Where: GDC 2.210
Instructor: E. Greg Daniel
Email: egdaniel at cs.utexas.edu
Office Hours: Tuesday 2-3pm in the GDC Basement Lab
Prerequisite: CS 307, 313E, 314, 314H, or EE 422C (or 322C) with a grade of at least C-
Book (required):
A Practical Guide to Linux by Mark Sobell
UTCS Account:
UTCS account creation (get one ASAP!)
Course website:


  Date Reading Topic Assignments
1 Aug 28   Introduction <lec1.pdf>  
  Sept 2 * LABOR DAY *    
2 Sept 4 29-31, 33-36, 45-56 Basic Navigation and Utilities <script>  
3 Sept 9 123-134, 275-277 Input, Output, Pipes <script> hw1 due 9am
4 Sept 11 77-110 Utilities and Filesystem <script>  
5 Sept 16 149-173 Vim I  
6 Sept 18 173-184 Vim II <text> hw2 due 9am
7 Sept 23   Random Utilities and Hodge-podge <script>  
8 Sept 25 290-296, 306-314 Bash <script> hw3 due 9am
9 Sept 30 397-406,411-415, 427-429, 431-433 Scripting I <outline> <examples>  
10 Oct 2 434-444, 447-450, 460-468 Scripting II <script>  
11 Oct 7 531-541 AWK <examples> <script> hw4 due 9am
12 Oct 10 565-570 sed <script>  
14 Oct 14   Compiling and makefiles <Examples> hw5 due 9am
13 Oct 16 271-274, 296-298, 324-329 Alias, Export, .bashrc  
15 Oct 21   TBD hw6 due 9am

Course Overview

This course is designed to introduce the Unix environment and familiarize students with using Linux. The course is intended for those who have little to no experience in working with Linux. We will cover topics ranging from basic navigation, file manipulation, and input/output control. For specifics on topics please see the schedule posted below. By the end of the course, the goal is for students to feel comfortable working in the Linux enviornment, and knowledge on how to use and get information on new tools they have never used before.

Notice that this course is not meant to be an operating course nor will we be covering specifics about the Unix/Linux kernal.


This course is a Pass/Fail course and cannot be taken for a letter grade. For this course to receive a passing grade, a students final grade must be a 60.0% or higher (so yes this means you must be above 59.95, 59.9499999999 is failing). The final grade will be calculated using the following:
Type Number Grade Percent
Quizzes ~8 20%
Assignments 6 80%

Quizzes - We will randomly have short, little quizes at the start of some class. These quizes will be on topics covered in the previous class or two. The quizes are not intended to be difficult nor require much studying before hand. By attending class, doing assignments, and some practice at home, you should not have any problem with these quizes.

Assignments - Assignments will be due about once a week, and we will have a total of 6 thoughout the course. The assignments should be completed alone.

Assignments are graded using the CS UNIX machines. I strongly advise that students do their assignments on CS UNIX machines. Sign up for a CS UNIX account if you don't have one already. Do this early because it often takes a couple of days to process and you won't be able to turn in any assignments until this account is active. Programming assignments will be turned in with the UNIX-based turnin. The web-based turnin will not work. Public labs are available.

Homework assignments will be available from a directory on my cs account. Thus you must use the Linux command line to retrieve them. The assignments will be located in ~egdaniel/teaching/cs108. For example, homework #1 is at ~egdaniel/teaching/cs108/hw1. Here is help on getting started on the first assignment.

Blackboard - Scores will be maintained on Blackboard.

Late Work Policy

Again, late assignments are not accepted. Daily quizzes cannot be made up.

Academic Honesty

Assignments must be done individually. You may not work in pairs or groups. You should also use either the vim or emacs editor to write up assignments. This is unenforceable, so we'll rely on the honor system. See also the department's code of conduct.

While you cannot consult with other students on the assignments, you may (and are encouraged to) use the internet.


  • Overview of Unix System


    Portions of this course were adapted from previous instances of CS 108 taught by John Edwards, Eric Rozner, Lilyana Mihalkova, Matt Alden, and Matt Taylor.