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

Course Philosophy


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

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours1.50.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


  1. Reading textbook and lecture notes
  2. 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


  1. Successful completion of homework assignments, which are evaluated for completeness and correctness
  2. 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
  3. 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.
  4. 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.
Essential College Facilities:
  • Access to a computer running the UNIX/LINUX operating system

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
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


AuthorTitlePublisher
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


  1. Apply regular expressions with different filters
    1. Atoms and operators
    2. Comparison between mathematical expressions and regular expressions
    3. Atoms (single character, dot, class, anchor, and back-reference)
    4. Operators (sequence, alternation, repetition, group, and save)
    5. Greedy and non-greedy operations
  2. Apply the grep utility in different search applications
    1. Grep operation (inherent loop)
    2. Grep family (egrep, fgrep, and egrep)
    3. Atoms and operators supported by each member of the family
    4. Use of options with grep family
    5. Pattern matching with grep family
    6. Application examples
  3. Apply the sed utility on the command line and with input file
    1. Sed as a filter
    2. Sed script and instruction format
    3. Operation of sed (nest inherent loops)
    4. Role of pattern space and hold space
    5. Script execution step by step
    6. Addresses and address types
    7. Commands in sed
    8. Simulation of grep commands using sed
    9. Applications
  4. Apply the awk utility in text processing and calculating applications
    1. Awk as a programming language
    2. Execution of an awk command
    3. Operation of awk (inherent nested loops and selection)
    4. Fields and records
    5. Buffers and variables
    6. Awk script
    7. Patterns and actions
    8. Pattern types
    9. Actions and statements: expression statement, output statement, decision, loops, control, function call
    10. User-defined functions
    11. Simulating grep commands using awk.
    12. Simulating sed commands using awk
    13. Applications
  5. Use the make utility to manage software projects
    1. Code Building Background
      1. Building an executable from multiple source file
      2. File dependency is a software application
      3. The role of make in a software project
    2. Running make
      1. Without a makefile
      2. With a makefile
    3. The makefile
      1. makefile instructions
      2. Target file and source files
      3. Dependencies in a makefile instruction
      4. Built in recursion in the makefile
      5. Macros
      6. Phony targets
      7. Common Suffixes
    4. Use of make outside of software development
  6. Apply utilities for file compression
    1. Explanation and algorithm of file compression
    2. gzip and gunzip
      1. Compress files
      2. Uncompress files
      3. Options
  7. Create archive files for backup and storage
    1. Archiving files
    2. Using tar to archive files
    3. Archiving, compressing files and editing the archive file
  8. Convert text files from the Unix / Linux format to other OS formats
    1. Unix to DOS
    2. DOS to Unix
  9. Automate tasks with basic shell scripts
    1. Compare shell scripts to programs
      1. Linux as a native OS
      2. Linux as virtual OS
      3. Linux on an external device
    2. Use of shell scripts
    3. Writing shell scripts
    4. Running shell scripts
    5. Running Linux on the PC
    6. Running Linux on a PC
    7. Linux as a native operating system
    8. Installation
    9. Boot
    10. Configuration
  10. Create version control in a project
    1. Explore the role of version control of files in a project
    2. Use git for version control
      1. Initialize a git directory
      2. Configure the git directory
    3. Add and delete files in the repository
      1. Put files in the staging area
      2. Commit files into the repository
    4. Create branches
      1. Switch branches
      2. Merge branches
    5. Accessing remote files and repositories
      1. Clone a repository
      2. Push / pull files to the remote repository

Lab Topics


  1. Review utilities to manipulate files and directories, look up system and user status, and filter input data
  2. Write and describe regular expressions that match given requirements
  3. Use the grep family of utilities with regular expressions
  4. Use the sed utility on the command line, including address fields and sed commands
  5. Use the sed utility with a sed script file
  6. Use awk on the command line, with basic awk commands and regular expression
  7. Write awk scripts, complete with regular expressions, awk operators and action commands, and programming constructs such as selection and looping
  8. Write awk scripts to work with arrays and system commands
  9. Write makefiles to build software executables
  10. Use file compression utilities to compress and uncompress files
  11. Use archiving utilities to compress and archive files
  12. Use file conversion utilities to format text files and transfer files to different OS platforms
  13. Write and run a basic bash shell script
  14. Install and boot a Linux distribution
  15. Use version control to manage files in a project with multiple branches
Back to Top