Portland Community College | Portland, Oregon Portland Community College

CCOG for CS 140U Spring 2024

View archive version »
Course Number:
CS 140U
Course Title:
Introduction to UNIX
Credit Hours:
4
Lecture Hours:
30
Lecture/Lab Hours:
0
Lab Hours:
30

Course Description

Introduces the UNIX/Linux operating system, including: task scheduling and management, memory management, input/output processing, internal and external commands, shell configuration, and shell customization. Explores the use of operating system utilities such as text editors, electronic mail, file management, scripting, and C/C++ compilers. Discusses trends in UNIX/Linux, including use of graphical user interfaces. Recommended: CS 160. Audit available.

Intended Outcomes for the course

On completion of this course the student should be able to:
Identify and use UNIX/Linux utilities to create and manage simple file processing operations, organize directory structures with appropriate security, and    develop shell scripts to perform more complex tasks.
Effectively use the UNIX/Linux system to accomplish typical personal, office, technical, and software development tasks.
Monitor system performance and network activities.
Effectively use software development tools including libraries, preprocessors, compilers, linkers, and make files.
Comprehend technical documentation, prepare simple readable user documentation and adhere to style guidelines.
Collaborate in teams on system tasks.

Outcome Assessment Strategies

Students will complete projects comprised of user documentation, message preparation, file preparation, manipulation and computerized reporting, script completion, C/C++ program implementation, and testing.

  • Documentation will demonstrate good organization and readability.
  • File processing projects will require data organization, problem solving and research.
  • Scripts and programs will demonstrate simple effective user interfaces.
  • Scripts and programs will demonstrate effective use of structured programming.
  • Scripts and programs will be accompanied by printed output demonstrating completion of a test plan.
  • Testing will demonstrate both black and glass box testing strategies.
  • Project work will involve group participation.

Students will demonstrate competency on exam(s) which are constructed to demonstrate:

  • Written technical communication and effective use of concepts and terminology.
  • Facility with Unix command syntax and semantics.
  • Ability to read and understand specifications, scripts and programs.
  • Individual capability in problem solving using the tools presented within the class.

Students will demonstrate a mastery of the course materials and concepts within in class discussions.

Course Content (Themes, Concepts, Issues and Skills)

Course Content Technology, Concepts, and Tools

Basic nature of the operating system functions and components:

  • Process Control
  • Memory management
  • Task management
  • Input/output control
  • File management
  • Program development
  • System accounting
  • Security

Names and basic nature of other popular operating systems including:

  • MS DOS
  • OS/2
  • VAX VMS
  • variations of MS Windows

Terminology and concepts:

  • Login / logout
  • Passwords
  • Command line user interface -- CUI
  • Graphics user interface -- GUI
  • Shells --- command processor / interpreter
  • Internal commands
  • External commands
  • Utility programs
  • Pathing
  • File transfers
  • Filters
  • Standard input, output, and error streams
  • Redirection
  • Command processor / command interpreter
  • File protection
  • File Encryption
  • Directory structure
  • Programming language translators
  • Foreground processing
  • Background processing
  • Server
  • Daemon(s)

Unix file naming conventions, including:

  • File names
  • File extensions
  • Wild carding ( globbing )
  • Use of meta symbols.

File organization concepts:

  • Logical organization of file system directories
  • The data hierarchy
  • Design and management of a hierarchical or tree-structured file system
  • File and directory permissions
  • Hard and symbolic links
  • Absolute and relative paths

File types:

  • Ordinary files
  • Text vs. binary
  • Executable vs. non-executable
  • Character device files
  • Block device files
  • Pipes
  • Sockets
  • Directories
  • Symbolic links

Text file editing and formatting

  • vi
  • emacs / pico
  • ed
  • nl
  • pr
  • X window based WYSIWYG word processors
  • Mark up for advanced formatting
Problem Solving

Basic file processing operations:

  • Create a file
  • Access a file using the relative pathname
  • Access a file using the absolute pathname
  • Erase or delete a file
  • Copy a file
  • Move a file
  • Cut columns of data from a file
  • Paste / concatenate files
  • Rename a file
  • Create a directory
  • Display the contents of a directory
  • Display the user initialization files
  • Change the working directory
  • Return to the home directory
  • Remove a directory
  • Display the file and/or directory information
  • Change file/directory permissions
  • Initialize default file/directory permissions.
  • Utilities such as sed and awk

Unix filters and use of the pipe construct to form pipelines to:

  • Search files
  • Search for files by attributes
  • Sort files
  • Display files

Shell customization and programming:

  • Shell initialization files
  • Aliases
  • Functions
  • History mechanism(s) sh, ksh, and bash
  • Shell variables
  • Script writing
  • Script debugging
  • Script usage

Fundamental structured program control structures:

  • Sequence
  • Alternation / Selection
  • Repetition / Iteration
  • Recursion

Introduction to advanced scripting languages to include one or more of:

  • python
  • perl

Process of developing C/C++ programs in Unix

  • Entering C/C++ programs
  • Finding syntax errors
  • Preprocessing
  • Compiling
  • Linking
  • Source files
  • Object files
  • Binary executables

X Window graphic user interface

  • X server
  • Popular X window managers
  • Basic X clients

Client / server model in Unix communications software:

  • tcp/ip
  • udp
  • Electronic mail services
  • finger
  • who / w / users
  • write / chat
  • telnet
  • rlogin
  • ftp
  • Web browsers
Communication
  • Use of electronic mail software
  • Preparation of reference guides and user documentation
  • Team projects
  • Class discussions