CIT 052 Index > Class Policies

CIT 052 - UNIX Shell Programming - Spring 2014 Evergreen Valley College

J. David Eisenberg ( Phone: 274-7900 x6577
Office Hours (Room R3-323):
4:30 p.m.–6:00 p.m. Monday
4:30 p.m.–5:30 p.m. Wednesday
10:00 a.m.–11:30 a.m. Tuesday, Thursday
General Information

3 Units | CR | Prerequisite: CIT050 or equivalent

Course Description

CIT 052 is a course in UNIX shell programming using different shell programs available with the AT&T UNIX 5.0 operating system. The course will include use of Bourne Shell and C-Shell Programming theory and concepts. These concepts include interpretation of different quote characters, shell variables, decision-making commands, and looping mechanisms. Students will also learn passing arguments to shell scripts, I/O redirection, terminal/file I/O, subshells and using special UNIX commands. Additionally, this course will include use of restricted shell (rsh) and introduction to Korn shell commands.

Learning Outcomes

Upon course completion, students will be able to:


This is an Internet class with regularly scheduled group discussions and times at an open lab on campus. The instructor will be present to assist you during the group discussions and the scheduled lab hours, but you may come any time the labs are open. You may work on assignments in the lab or use your own computers. Midterms and the final must be taken during the scheduled times.

Required Text

UNIX® Shells by Example, Fourth Edition, Ellie Quigley, Prentice Hall 2005 ISBN-13: 978-0131475724


You will be assigned exercises ranging from light to moderate complexity. For each assignment, you will print the solution or email a file to the instructor. Do not put blanks in your file names. If you email files, send them as plain text only.

Assignments will be graded on functionality, organization, readability (which includes proper use of naming and Linux/UNIX conventions) and appropriate use of shell constructs.


You will have two midterm tests and one final exam, which must be taken on campus on 21 May 2014 from 6:00-7:30 p.m. (If you cannot be on campus at that time, make arrangements with the instructor.) This is a comprehensive final which covers all the topics in the course. You may use the book, your class notes, and man pages on these tests.


The work on the tests and exercises will be weighted and combined to calculate your final grade as follows:

Online participation:10%
Lab Assignments:50%
Final Exam:20%
90% and aboveA
Less than 60%F

As this is in an Internet course, there is no compulsory attendance, except that you must take exams on campus. You are strongly encouraged to attend on-campus group discussions, and you may do lab work on campus if you wish. If you decide to drop the class, it is your responsibility to do so. If you miss more than five assignments, the instructor may drop you from the course. Save the printed drop confirmation! You may need it to confirm that you dropped the course, or you will receive a failing grade. The deadline dates for dropping a class with and without a “W” are in the Evergreen Valley College schedule.


Exercises are to be submitted prior to midnight on the date due. If turned in late, you will receive reduced credit; one letter grade per class session late up to two sessions late. Missed tests or exercises will receive zero credit. The final exam is required. Discussion about assignments is encouraged, but you must each do your own work. Cheating and plagiarism will be met with an F on the assignment. See the EVC catalog for details on the College Honesty Policy as well as student disciplinary and grievance procedures.

If you have learning or physical needs that require special accommodations, please let an instructor know as soon as possible.

Course Outline

The dates here correspond to Wednesdays for the Internet-based course. Midterm exams and the final will be on Wednesday evenings.

Session Subject Book Assignment Due

29 Jan 2014

Introduction to UNIX/Linux Shells
Comparing the Shells
Bash Shell Metacharacters
Directing Output

Chapter 1
Chapter 2
Chapter 13.8-13.9.5
Chapter 13.17-13.18

5 Feb 2014

Regular Expressions

Chapter 3
Chapter 4.1-4.4

Using Various Shells

12 Feb 2014


Chapter 4.5-4.13

grep Exercise 1

19 Feb 2014


Chapter 5

grep Exercise 2

26 Feb 2014

awk programming constructs

Chapter 6.1-6.10

sed Exercise

5 Mar 2014

Midterm 1

12 Mar 2014

awk programming

Chapter 6.11-6.16

awk Exercise 1

19 Mar 2014

awk arrays

Chapter 6.17-6.20

awk Exercise 2

26 Mar 2014

awk functions

Chapter 6.21-6.26

awk Exercise 3

2 Apr 2014

bash Shell Constructs
The bash shell
Shell Variables

Chapter 13.1-13.7
(bash review)
Chapter 13.10-13.20

awk Exercise 4 - Functions

9 Apr 2014

Midterm 2

16 Apr 2014

Spring Break - No class

23 Apr 2014

Programming bash
Conditional Constructs

Chapter 14.1-14.5

Shell Variables

30 Apr 2014

Looping and Functions

Chapter 14.6-14.7

Conditional Constructs

7 May 2014

Command Line Options

Chapter 14.10.1

Looping and Functions

14 May 2014

Review for Final Exam

Processing Command Line Options

21 May 2014

Final Exam