Unix Operating System I
ITSW 1406 (Formerly CISC 1480)
S Y L L A B U S
All Sections




This syllabus is intended as a set of guidelines for the Unix operating System I course. North Lake College and your instructor reserve the right to make modifications in content, schedule and requirements as necessary to promote the best educational experience possible within prevailing conditions affecting this course.


North Lake College   Lead Instructor: Dr. Tim Gottleber
5001 N. MacArthur   Office: T- 129
Irving, TX   Phone 972-273-3459
(3459 campus)
    E-mail: timg@dcccd.edu

COURSE DESCRIPTION

This course covers a basic understanding of the Unix operating system from the user's perspective. It includes an introduction to the principles of operation, general structure, commands, command language and use, use of the shell to perform basic tasks and an overview of some application program development tools. This course will focus on the Bourne and C shells, other shells like the Korn, bash, and T shells are not addressed. Unix tools such as awk, grep and sed will be discussed in some detail.

Prerequisites: There are no listed prerequisite but previous programming experience and some experience with another operating system such as DOS will be helpful. In addition, many students have found it useful and helpful to have taken ITSC 1401 (Introduction to Computers), and ITSC 2435 (Application Problem Solving) before they take Unix I. (4 Credits {hours: 3 lecture 3 lab})

COURSE FOCUS

This course is an introduction to the Unix operating system. Upon successful completion the student should be able to function at the entry level as a Unix user.

TEXT AND REFERENCES

There are three required texts for this course:
The Waite Group's UNIX Primer Plus, Third edition, by Waite, Martin and Prata. Published by Sams. ISBN 1-57169-165-0.

UNIX in a Nutshell by Daniel Gilly published by O'Reilly & Associates, Inc. ISBN 1-56592-001-5

UNIX Notes and Lab Guide by Dr. Tim Gottleber.

Additional Unix reference books will most likely prove helpful, however they are optional. Two that are highly recommended are the sed & awk book by Dougherty, and Learning the vi Editor by Lamb, both are published by O'Reilly & Associates, Inc. Note: no Unix user or programmer can have too many Unix books ;-)

STANDARDS

When writing scripts, most Unix programmers are required to follow a set of standards. The standards for Unix I are located in your Lab Guide and on the net. Please build your scripts so that they meet or exceed these standards.

COURSE GOALS

The following list of course goals will be addressed in the course. (* designates a CRUCIAL goal)
SCANS data are included.
There is an explanation of SCANS available.

Goal Scans Competency/ Foundation Evaluation
*1. Use the vi editor: F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Programming vi labs
      a. add text to a file    
      b. append text to a file    
      c. delete text from a file    
      d. modify existing text within a file    
      e. replace text using the vi editor    
      f. move the cursor using vi editor commands    
      g. successfully save the changes made    
      h. use the vi editor's undo command    
      i. execute Unix shell commands from within the vi editor    
      j. use :set commands    
      k. search for specified text    
      l. use the vi editor's command mode    
      m. delete text from a file    
      n. cut and paste text    
      o. use the join command    
      p. copy and paste text    
2. change a file's last modified date F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
3. create a directory F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
4. create a file F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*5. demonstrate regular attendance F8, F11, F13, F15, C1, Regular attendance
6. describe major advantages of the Unix Operating System. F1, F5, F7, F12, F17 Examination
7. describe the use of a Unix file link F1, F5, F7, F12, F17 Examination
8. describe the history of the ed editor F1, F5, F7, F12, F17 Examination
*9. describe the standard Unix process files F1, F5, F7, F12, F17 Examination
10. describe the standard Unix login files F1, F5, F7, F12, F17 Examination
*11. diagram the major parts of the Unix system F1, F5, F7, F12, F17 Examination
12. display a directory contents F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
13. display the contents of a file F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
14. erase a file F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
15. enter the C shell F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
16. leave the C shell F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
17. list Unix System Directories F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*18. log into the Unix system F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*19. log out of the Unix system F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
20. move a file to another directory F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*21. remove a directory F1, F5, F7, F8, F9, F12, F14, F16, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
22. traverse the Unix directory tree F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*23. type properly formed Unix commands F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*24. use the "man" pages F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
25. use the kill command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
26. use the ps command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
27. use the cat command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
28. use the who command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
29. use the wc command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
30. compare the vi and ed and ex Unix editors F1, F5, F7, F12, F17 Examination
*31. change Unix shells F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
32. copy a file F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
33. describe redirection of output , input, and errors F1, F5, F7, F12, F17 Examination
*34. describe the history and purpose of grep F1, F5, F7, F12, F17 Examination
*35. describe the significance of case sensitivity F1, F5, F7, F12, F17 Examination
36. describe the purpose for an inode F1, F5, F7, F12, F17 Examination
37. describe the value of the sed editor F1, F5, F7, F12, F17 Examination
*38. determine file permissions F1, F5, F7, F12, F17 Examination
39. differentiate between background and foreground processes F1, F5, F7, F12, F17 Examination
40. distinguish between directory and ordinary Unix files F1, F5, F7, F12, F17 Examination
*41. explain a Unix filter F1, F5, F7, F12, F17 Examination
42. explain the early history of Unix F1, F5, F7, F12, F17 Examination
43. explain the value of learning the vi editor F1, F5, F7, F12, F17 Examination
44. remove a directory containing files F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
45. list several built in C shell commands F1, F5, F7, F12, F17 Examination
*46. list major issues in Unix system security F1, F5, F7, F12, F17 Examination
47. make a Unix shell file executable F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*48. manipulate Unix file system files F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
49. modify file permissions F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
50. perform command aliasing F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*51. print the contents of a Unix file F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
52. start the command history function F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*53. use command history F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
54. use the head/tail commands F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
55. use the more command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
56. use the Unix find command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*57. use various C shell control structures F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
58. modify text in a file using the ed editor F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completing ed labs
59. invoke and use awk F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completing awk labs
      a. define simple awk patterns    
      b. describe awk fields    
      c. build awk expressions    
      d. use regular expressions    
      e. describe awk constants    
      f. describe awk variables    
      g. describe decision making in awk    
      h. list awk command line options    
      i. make comparisons    
      j. perform flow control    
      k. perform pattern matching    
      l. execute system commands from within awk    
      m. invoke built-in functions    
      n. list special input related awk variables    
      o. write simple awk programs    
60. list process structure commands F1, F5, F7, F12, F17 Examination
*61. format a correct sed editor command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*62. build Unix pipes F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
63. create multiple Unix processes F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
64. define the concept of a Superuser F1, F5, F7, F12, F17 Examination
65. describe metacharacters F1, F5, F7, F12, F17 Examination
66. describe the basics of multi-processing F1, F5, F7, F12, F17 Examination
67. describe Unix special files F1, F5, F7, F12, F17 Examination
*68. differentiate between Bourne and C shell scripts F1, F5, F7, F12, F17 Examination
69. explain the purpose of shell scripts F1, F5, F7, F12, F17 Examination
70. use grep as a filter F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*71. use grep on multiple files F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
72. use the tr utility F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
73. use the Unix stty command F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
74. use file matching metacharacters in a file description F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
*75. write short C shell scripts F1, F2, F3, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Complete lab assignment
76. understand the major functions of an Operating System F1, F5, F7, F12, F17 Examination
77. understand the major features of each Unix shell F1, F5, F7, F12, F17 Examination
*78. sort a file using field specifiers F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completing lab exercise
*79. use the sed editor F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completing sed lab assignment
80. incorporate a tee structure into Unix pipe F1, F5, F7, F8, F9, F12, F14, F16, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completing lab exercise
*81. explain Unix regular expression F1, F5, F7, F12, F17 Examination
82. use the Unix mail utility (or another Unix mail program) F2, C8, C14, C18, C19 Completing lab exercise
83. use common Unix tools to communicate with other users on the system. F2, C8, C14, C18, C19 Completing lab exercise

STUDENT CONTRIBUTIONS

Each student will spend at least 12 hours per week preparing for class. Attendance at each class meeting is critical and required in this class. The student is expected to complete each lab assignment using either the computers here at North Lake College, or their own computer running a Unix operating system (or a variant which conforms to the general Unix standard. The Linux operating system is considered an excellent choice for a 386/486/586/Pentium machine.)

COURSE EVALUATION

Your lab exercises and exams grades will be on a point basis, and the points you accumulate through the semester will result in a grade being assigned as is explained below.

There will be four (4) tests, each worth 100 points. (400 points total.)

There will be 12 required lab assignments worth 15 points. (180 points total.) Some of these labs will have extra credit opportunities as well.

There will be at least one (usually 2) optional lab assignments that will serve as an extra credit opportunity.

Attendance/class participation is critical to student success, and regular attendance (missing no more than 2 class meetings) will be awarded 25points.

This gives a grand total of 605 points without extra credit.

Grades will be assigned on the following scale:

A = 544 points and above 90%
  B = 543 - 484 points   80%
  C = 483 - 424 points   70%
  D = 423 - 363 points   60%
  F = fewer than 363 points

COURSE SCHEDULE

The class meets for 6 hours per week. This time will be divided between lecture, exercises, and lab assignments. The actual amount of time in each of these areas will vary depending on the topic under discussion.
Addendum A is a tentative listing of the topics and reading assignments for each week.

Please also give careful attention to the following

  1. Cheating: It is possible to obtain another student's work, modify it slightly, and turn it in as your own. If I catch you cheating you will receive a performance grade of F for this course. Cheating robs two people of their rightful reward: the person from whom you copy is deprived of their right to the copyrighted work they did and you are deprived of the learning experience you could have had. No one benefits from cheating, it will not be tolerated. This does not mean I discourage discussion with your fellow students. I encourage you to discuss solutions to problems from class with other members of the class. At times the opportunity for a group project may be possible, that too is acceptable. What I want to avoid is an identical, common solution from two or more students where each claims the work as individual and unique

  2. Ethical computer usage: While this topic encompasses the problem of cheating listed as item one, it is a far larger issue than simply cheating in class. Any attempt by any student to compromise the integrity of the computer lab, classroom computers, or other instructional or administrative machines or steal or damage the software or hardware at North Lake or on other networked computers will be dealt with in the most severe manner possible.

    You may not load personal software on any machine at North Lake College, nor may you copy software from any North Lake College computer without prior, written permission from both your instructor and the data processing department.

    Along this same line, it is improper to use the computer resources of the college to copy another's paper or other assignments to be submitted as your own. Please use our equipment in an ethical manner. If you have any question as to the proper/ethical use of this equipment, please feel free to discuss it with your instructor, prior to such use.

    Finally, you will be using the Internet to connect your lab machine to the Unix computer(s) at North Lake College. Please restrict your Internet usage, during assigned lab and lecture time, to activities DIRECTLY related to your course. Do not use the Internet connection to play games, check your private (and non-class) E-mail, connect to computers outside North Lake College, or perform other non-class related activities. You will have NO NEED to use the World Wide Web in this class except to research Unix information.

    If you have an off-campus Internet provider (this has proved to be very valuable to many previous students), you may use that provider to log into the North Lake College machines to work on your homework during non-class hours. If you are working from home, the same rules of proper usage apply. Our machines do not have enough disk space to allow you to download files from the Net. You must also read and follow the DCCCD Computer Usage Policy

ADDENDUM A

ITSW 1406
(formerly CISC 1480)
Unix Operating System I
Tentative* Course Schedule

Listed below is a tentative schedule of the topics for lectures for the Unix Operating System I course. Please note: the student is expected to complete each reading assignment before the class date associated with that reading. Note: All readings are from the Waite book, students are also expected to consult any other texts to obtain additional information on the topics listed for each lecture.

Week # Topics References Commands/concepts
1 Introduction to Unix lecture,  
    19 - 57, history of Unix, login, passwd, exit
  Getting Started 221 - 223 logout, who, w
  process concept,   finger, mail, man
      talk, mesg, write
      wall, stty, cal, date
      (pine)

2 File Handling in Unix 59 - 70, pwd, touch
    131 - 156, mkdir, cd, .., .,
    177 - 180, ls, cat, more, less
      rm, rmdir, mv, cp
  Meta characters and history 202 - 203, *, ?, [...],
  Commands etc. 207 - 210, history, wc
    lecture,  
    216 - 220, inode, head,
    272 - 280, tail, pg, ln,
    302 - 304, quota
    50 - 61  

3 Unix editors ed and ex lecture,  
    lab guide, ed,
    79 - 107, ex,
  Introduction to the vi editor lecture vi

4 Advanced vi lecture vi
  review for TEST 1    
  Commands and concepts 71 - 72, lpr, lprm,
    207 - 208, lpq , file, chmod
    215 - 221  

5 TEST 1 (In Class)    
  Multi-processing and job control lecture, process states
    169 - 177 bg, fg, stop, ps, kill, ^Z, jobs

6 Multi-processing II 72 - 76, |, find, tee, pipes, filters,
    162 - 168, redirection, >, <, >>
    185 - 190  
  Handy tools 196 - 204, alias, diff, uniq,
  Shell concepts 229 - 230 name completion
      shell vars, .cshrc, .login, .profile

7 cool tools I translate lecture, tr, sort
  regular expressions 210 - 212,  
  cool tools II grep(s) 233 - 243, egrep, fgrep, grep
  cool tools III sed
review for TEST 2
253 - 260, sed
    265 - 269  

8 More time with sed    
  ftp concepts    

9 TEST 2 (In Class)    
  Introduction to awk lecture awk
    269 - 272  

10 yalaa
(yet another look @ awk)
   

11 More time with awk    
  review for TEST 3    

12 TEST 3 (In Class)    
  Programming Concepts lecture  
  Shell scripting examples    

13 Shell scripting I lecture Bourne Shell, #, case, echo, env
      expr, if, sleep, test
      line, printf, break, continue
      read, readonly, if, for, exit
      shift, while
  Shell scripting II    

14 Shell scripting III    
  Shell scripting IV    
  Review for final exam    

15 Catch up (general panic reduction) Nothing Left! ;-) *  

Finals Week Final Exam (in class) {date is TBD}    


* Note: The instructor reserves the right to modify this schedule depending on occurrences during the semester, the particular needs of the class, or other unforeseen events which would necessitate schedule modification.

Return to the Mad Dr's Page.