College of San Mateo Course Outline New Course Update/No change Course Revision (Minor) Course Revision (Major) Date: 1/26/12 Department: CIS Number: 121 Course Title: UNIX/Linux Units: Total Semester Hours: Lecture: 48 Lab: 16 3.0 Homework: 80 Length of Course By Arrangement: 0 Grading Semester-long Letter Short course (Number of weeks ) Pass/No Pass Open entry/Open exit Grade Option (letter or Pass/No Pass) Faculty Load Credit (To be completed by Division Office; show calculations.): 3.7 FLC 48 hrs. lecture / 16 weeks * 1.0 + 16 hrs. lab / 16 weeks * 0.7 1. Prerequisite (Attach Enrollment Limitation Validation Form.) None 2. Corequisite (Attach Enrollment Limitation Validation Form.) None 3. Recommended Preparation (Attach Enrollment Validation Form.) Eligibility for ENGL 838/848 and completion of CIS 110 4. Catalog Description (Include prerequisites/corequisites/recommended preparation.) CIS 121 UNIX/LINUX (3) (Pass/No Pass or letter grade option.) 48 lecture and 16 lab hours per semester. Recommended Preparation: eligibility for ENGL 838/848 and completion of CIS 110. Introduction to the UNIX/Linux operating system. Includes a brief introduction to operating systems and UNIX history. Covers UNIX file systems; common shell features including I/O redirection, piping, command substitution, and simple job control; shell-specific facilities including use of environmental and local variables; and common UNIX utilities. Also includes advanced topics such as shell scripting, communications, and system administration. (AA, CSU) 5. Class Schedule Description (Include prerequisites/corequisites/recommended preparation.) CIS 121 UNIX/Linux (3) Introduction to the UNIX/Linux operating system. Includes a brief introduction to operating systems and UNIX history. Covers UNIX file systems; common shell features including I/O redirection, piping, command substitution, and simple job control; shellspecific facilities including use of environmental and local variables; and common UNIX utilities. Also includes advanced topics such as shell scripting, communications, and system 3/24/08 Course Outline Page 1 of 6 administration. Recommended preparation: eligibility for ENGL 838/848 and completion of CIS 110. Pass/No Pass or letter grade option. (AA, CSU) 6. Student Learning Outcomes (Identify 1-6 expected learner outcomes using active verbs.) Upon successful completion of the course, the student will be able to: 1. Describe the functions of an operating system. 2. Employ common UNIX shell features including I/O redirection, piping, command substitution, and simple job control. 3. Explain shell-specific facilities including the use of environmental and local variables, and the built-in programming language. 4. Analyze problems and design UNIX solutions using shell command files and scripts. 5. Describe how UNIX supports processes, memory management, input/output, and the file system. 6. Set up a UNIX or Linux environment. 7. Use common and advanced UNIX utilities. 8. Describe the main UNIX system administration tasks. 7. Course Objectives (Identify specific teaching objectives detailing course content and activities. For some courses, the course objectives will be the same as the student learning outcomes. If this is the case, please simply indicate this in this section). See Student Learning Outcomes 8. Course Content (Brief but complete topical outline of the course that includes major subject areas [1-2 pages]. Should reflect all course objectives listed above. In addition, you may attach a sample course syllabus with a timeline.) Topical Outline I. Introduction 1. Introduction to Operating Systems a. UNIX b. Linux 2. Accessing the UNIX system 3. Using Commands a. Logging on and off b. Changing the password c. Getting online help d. Stopping a program e. Using the file system f. Editing files i. Entering text ii. Common editing features iii. Moving the cursor iv. Deleting, Pasting, and Undoing v. Searching vi. Saving/Loading files 22 August 2012 Course Outline Page 2 of 6 II. UNIX/Linux Shells and Commands 1. UNIX/Linux shells a. Common shell features i. I/O redirection ii. Piping iii. Command substitution iv. Simple job control b. Shell-specific facilities i. Use of environment and local variables ii. Built-in programming language iii. Advanced I/O redirection c. The Bourne shell i. i. Start up-files ii. ii. Shell variables iii. iii. Arithmetic iv. iv. Conditional expressions v. v. Control structures vi. vi. Built-in commands d. The Korn shell i. Start-up files ii. Aliases iii. History mechanism iv. vi and emacs line editors v. Arithmetic vi. Functions vii. Job control e. The C shell i. Start-up files ii. Variables and lists iii. Expressions iv. Aliases v. History mechanism vi. Control structures vii. Job control III. Shell Scripting and Processes 1. Shell Scripting a. Creating a Simple Shell Script b. Command Separation and Grouping c. Redirecting Standard Error d. Job Control i. List ii. Foreground iii. Background 2. Processes a. Process Structure b. Process Identification c. Executing a Command 22 August 2012 Course Outline Page 3 of 6 d. 3. Invoking a Shell Script i. Specifying a Shell ii. Start-up files Parameters and Variables a. Keyword Variables IV. File Manipulation and Internals 1. UNIX Utilities a. Filtering files b. Sorting files c. Comparing files d. Archiving files e. Searching for files f. Scheduling commands g. Hard and soft links h. Checking for mail i. Transforming files j. Identifying shells 2. Overview of UNIX Internals a. Processes b. Memory Management c. Input/Output d. File System V. Linux Installation 1. Linux a. Components b. Installation and Configuration c. Internetworking with Other Operating Systems VI. UNIX/Linux Utilities 1. Advanced UNIX Utilities a. Switching Users b. Mounting File Systems VII. Communications/Networking 1. Overview of Network Concepts and Terminology a. Building a Network i. Ethernets ii. Bridges iii. Gateways iv. Routers b. Internetworking i. Packet Switching ii. Internet Addresses iii. Naming iv. Routing v. Security vi. Network Programming 22 August 2012 Course Outline Page 4 of 6 c. 2. VIII. 9. UNIX Network Utilities i. finger ii. ftp/ssh iii. wall iv. who Overview of Systems Programming a. Error Handling b. Regular File Management c. Process Management d. Signals e. Interprocess Communication (IPC) f. The Internet Shell System Administration 1. Advanced Commands and Utilities a. Starting and Stopping the System b. Maintaining and backing up the File System c. Maintaining User Accounts d. Installing Software e. Installing and Configuring Peripherals f. Managing the Interface to the Network g. Automating Repetitive Tasks h. Performing System Accounting i. Configuring the Kernel j. Checking System Security Representative Instructional Methods (Describe instructor-initiated teaching strategies that will assist students in meeting course objectives. Include examples of out-of-class assignments, required reading and writing assignments, and methods for teaching critical thinking skills.) The course will include the following instructional methods as determined appropriate by the instructor: • Lecture will be used to introduce new topics; • Teacher will model problem-solving techniques; • Class will solve a problem together, each person contributing a potential "next step"; • Students will participate in short in-class projects (in teacher-organized small groups) to ensure that students experiment with the new topics in realistic problem settings; • Teacher will invite questions AND ANSWERS from students, generating discussion about areas of misunderstanding; • Teacher will create and manage an Internet conference for discussion of course topics; and • Students will work in small groups to solve programming assignments. 10. Representative Methods of Evaluation (Describe measurement of student progress toward course objectives. Courses with required writing component and/or problem-solving emphasis must reflect critical thinking component. If skills class, then applied skills.) • Bi-weekly quizzes (short answer--from textbook material) to provide feedback to students and teacher on objectives 1 – 5; 22 August 2012 Course Outline Page 5 of 6 • Assessment of student contributions during class discussion and project time to assess objectives 1-8; • Individual programming assignments to assess objectives 1-8; • Midterm and Final exams (short answer (textbook material), general problem solving (similar to in-class work), short program segments (similar to programming assignments) ) to assess objectives 1-5 and 7-8; • Assessment of group participation on course projects, including peer-assessment of participation and contribution to the group effort to assess objectives 1-5 and 8. 11. Representative Text Materials (With few exceptions, texts need to be current. Include publication dates.) A Practical Guide to Red Hat Linux with DVD, Sobell, Prentice Hall ISBN 0-1322802-7-2, 2006 Unix in a Nutshell, Robbins, O'Reilly ISBN 0-5961002-9-9, 2008 Unix Visual Quickstart Guide, Ray & Ray, Peachpit Press ISBN 978-0321636782, 2009 The Linux Programming Interface, Kerrisk, No Starch Press ISBN 978-1593272203, 2010 Harley Hahn’s Guide to Unix and Linux, Hahn, McGraw-Hill ISBN 978-0073133614, 2008 Prepared by: (Signature) Email address: greenm@smccd.edu Submission Date: 22 August 2012 Course Outline Page 6 of 6