Active Outline
General Information
- Course ID (CB01A and CB01B)
- CIS D018B
- Course Title (CB02)
- Advanced UNIX/LINUX
- Course Credit Status
- Credit - Degree Applicable
- Effective Term
- Fall 2021
- Course Description
- Expanded coverage of regular expressions and grep. Advanced topics in Unix/Linux include egrep, find, sed, awk, file archiving, compression, and conversion, version control, makefile, basic shell scripts and installation of a Linux distribution.
- Faculty Requirements
- Course Family
- Not Applicable
Course Justification
This course belongs on the Unix/Linux Operating System Certificates. It is CSU and UC transferable. This course teaches advanced Unix/Linux commands. It is the second course in a three-course sequence preparing students for using the Unix/Linux platform for mobile and cloud computing, network servers and database.
Foothill Equivalency
- Does the course have a Foothill equivalent?
- No
- Foothill Course ID
Formerly Statement
Course Development Options
- Basic Skill Status (CB08)
- Course is not a basic skills course.
- Grade Options
- Letter Grade
- Pass/No Pass
- Repeat Limit
- 0
Transferability & Gen. Ed. Options
- Transferability
- Transferable to both UC and CSU
Units and Hours
Summary
- Minimum Credit Units
- 4.5
- Maximum Credit Units
- 4.5
Weekly Student Hours
Type | In Class | Out of Class |
---|---|---|
Lecture Hours | 4.0 | 8.0 |
Laboratory Hours | 1.5 | 0.0 |
Course Student Hours
- Course Duration (Weeks)
- 12.0
- Hours per unit divisor
- 36.0
Course In-Class (Contact) Hours
- Lecture
- 48.0
- Laboratory
- 18.0
- Total
- 66.0
Course Out-of-Class Hours
- Lecture
- 96.0
- Laboratory
- 0.0
- NA
- 0.0
- Total
- 96.0
Prerequisite(s)
CIS D018A
Corequisite(s)
Advisory(ies)
CIS D014A, CIS D022A, CIS D036A or CIS D040.
Limitation(s) on Enrollment
Entrance Skill(s)
General Course Statement(s)
Methods of Instruction
Lecture and visual aids
Discussion of assigned reading
Discussion and problem solving performed in class
Quiz and examination review performed in class
Homework and extended projects
Collaborative learning and small group exercises
Laboratory discussion sessions and quizzes that evaluate the proceedings weekly laboratory exercises
Assignments
- Reading textbook and lecture notes
- 6-10 homework assignments to be done on the Unix/Linux system, covering the Lab Topics specified in X. below, half completed in the computer lab, half completed as homework.
Methods of Evaluation
- Successful completion of homework assignments, which are evaluated for completeness and correctness
- In-class problems, group collaborative problems, exam questions and/or online assignments used to demonstrate the ability to effectively and efficiently use the appropriate Unix/Linux utilities to solve problems
- At least one written midterm examination requiring the appropriate use of Unix/Linux utilities to solve problems. The exam is to be evaluated for correctness and efficient use of Unix/Linux utilities.
- A comprehensive final examination requiring the skills to use appropriate Unix/Linux utilities to solve problems. The exam is to be evaluated for correctness and efficient use of Unix/Linux utilities.
Essential Student Materials/Essential College Facilities
Essential Student Materials:Â
- None.
- Access to a computer running the UNIX/LINUX operating system
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
Sobell, Mark; A Practical Guide to Linux Commands, Editors, and Shell Programming; 4th Edition; Prentice-Hall, 2018; ISBN-13: 978-0-13-477531-9 |
Examples of Supporting Texts and References
Author | Title | Publisher |
---|---|---|
None. |
Learning Outcomes and Objectives
Course Objectives
- Apply regular expressions with different filters
- Apply the grep utility in different search applications
- Apply the sed utility on the command line and with input file
- Apply the awk utility in text processing and calculating applications
- Use the make utility to manage software projects
- Apply utilities for file compression
- Create archive files for backup and storage
- Convert text files from the Unix / Linux format to other OS formats
- Automate tasks with basic shell scripts
- Create version control in a project
CSLOs
- Use the Unix/Linux Operating System utilities, shell features, and regular expressions for advanced text file manipulation.
Outline
- Apply regular expressions with different filters
- Atoms and operators
- Comparison between mathematical expressions and regular expressions
- Atoms (single character, dot, class, anchor, and back-reference)
- Operators (sequence, alternation, repetition, group, and save)
- Greedy and non-greedy operations
- Apply the grep utility in different search applications
- Grep operation (inherent loop)
- Grep family (egrep, fgrep, and egrep)
- Atoms and operators supported by each member of the family
- Use of options with grep family
- Pattern matching with grep family
- Application examples
- Apply the sed utility on the command line and with input file
- Sed as a filter
- Sed script and instruction format
- Operation of sed (nest inherent loops)
- Role of pattern space and hold space
- Script execution step by step
- Addresses and address types
- Commands in sed
- Simulation of grep commands using sed
- Applications
- Apply the awk utility in text processing and calculating applications
- Awk as a programming language
- Execution of an awk command
- Operation of awk (inherent nested loops and selection)
- Fields and records
- Buffers and variables
- Awk script
- Patterns and actions
- Pattern types
- Actions and statements: expression statement, output statement, decision, loops, control, function call
- User-defined functions
- Simulating grep commands using awk.
- Simulating sed commands using awk
- Applications
- Use the make utility to manage software projects
- Code Building Background
- Building an executable from multiple source file
- File dependency is a software application
- The role of make in a software project
- Running make
- Without a makefile
- With a makefile
- The makefile
- makefile instructions
- Target file and source files
- Dependencies in a makefile instruction
- Built in recursion in the makefile
- Macros
- Phony targets
- Common Suffixes
- Use of make outside of software development
- Code Building Background
- Apply utilities for file compression
- Explanation and algorithm of file compression
- gzip and gunzip
- Compress files
- Uncompress files
- Options
- Create archive files for backup and storage
- Archiving files
- Using tar to archive files
- Archiving, compressing files and editing the archive file
- Convert text files from the Unix / Linux format to other OS formats
- Unix to DOS
- DOS to Unix
- Automate tasks with basic shell scripts
- Compare shell scripts to programs
- Linux as a native OS
- Linux as virtual OS
- Linux on an external device
- Use of shell scripts
- Writing shell scripts
- Running shell scripts
- Running Linux on the PC
- Running Linux on a PC
- Linux as a native operating system
- Installation
- Boot
- Configuration
- Compare shell scripts to programs
- Create version control in a project
- Explore the role of version control of files in a project
- Use git for version control
- Initialize a git directory
- Configure the git directory
- Add and delete files in the repository
- Put files in the staging area
- Commit files into the repository
- Create branches
- Switch branches
- Merge branches
- Accessing remote files and repositories
- Clone a repository
- Push / pull files to the remote repository
Lab Topics
- Review utilities to manipulate files and directories, look up system and user status, and filter input data
- Write and describe regular expressions that match given requirements
- Use the grep family of utilities with regular expressions
- Use the sed utility on the command line, including address fields and sed commands
- Use the sed utility with a sed script file
- Use awk on the command line, with basic awk commands and regular expression
- Write awk scripts, complete with regular expressions, awk operators and action commands, and programming constructs such as selection and looping
- Write awk scripts to work with arrays and system commands
- Write makefiles to build software executables
- Use file compression utilities to compress and uncompress files
- Use archiving utilities to compress and archive files
- Use file conversion utilities to format text files and transfer files to different OS platforms
- Write and run a basic bash shell script
- Install and boot a Linux distribution
- Use version control to manage files in a project with multiple branches