C S 30A: INTRODUCTION TO LINUX
Foothill College Course Outline of Record
Heading | Value |
---|---|
Effective Term: | Summer 2023 |
Units: | 4.5 |
Hours: | 4 lecture, 2 laboratory per week (72 total per quarter) |
Degree & Credit Status: | Degree-Applicable Credit Course |
Foothill GE: | Non-GE |
Transferable: | CSU/UC |
Grade Type: | Letter Grade (Request for Pass/No Pass) |
Repeatability: | Not Repeatable |
Student Learning Outcomes
- A successful student will be able to describe the various aspects of the Unix operating system from a user and administrator perspective.
- A successful student will be able to perform basic sysadmin tasks, write simple shell scripts, make changes to the OS file system and use regular expressions for searching the file system.
Description
Course Objectives
The student will be able to:
- Describe the basic features of the Linux operating system
- Understand the history and philosophy of Linux systems and standards
- Discuss the various components of Linux
- Describe the Linux kernel and its subsystems
- Create a user account, log on, and get information using commands on a Linux system
- Compare Linux shell types and use variables in the shell environment
- Understand a basic shell script and demonstrate the understanding of the shell through the use of an alias and built in commands
- Use the man pages effectively and show proficiency in using the command line
- Display, count, sort, and compare files using filter commands
- Discuss the Linux files system concepts and organization
- Perform directory and file operations, including changing permissions, creation, deletion, moving, and renaming
- Demonstrate an understanding of user and system processes and basic process operations
- Use regular expressions to effectively describe desired search patterns
- Write code to redirect input and output to and from the user, files, and commands, using redirection and pipe
- Connect to remote computers and transfer files using Linux commands
- Create and edit text files in a Linux text editor to illustrate knowledge of the text editor functions and commands
Course Content
- Overview
- Brief overview of operating systems
- Overview and features of Linux
- Pros and cons of Linux
- History and philosophy
- Original and current philosophies
- Origin and history of Linux systems and their derivatives
- Overview of Linux standards
- Components of Linux
- Kernel
- Shells
- Utilities
- Shell command line vs. GUI
- The kernel and its subsystems
- System call interface, file subsystem, I/O and device subsystem
- Process control: scheduler, time slicing
- Memory management: paging vs. swapping
- Getting started with Linux
- How to log in and log out
- User accounts
- The superuser
- Account settings and configuration
- Commands for getting information
- Stopping a program
- Introduction to Linux shells
- Function of shells
- Comparison of Linux shell types
- Shell environment
- Shell variables and environment variables
- Using variables
- More about the shell
- Meta-characters
- Quoting and escaping
- Built in and external commands
- Search path
- Aliases
- Basic shell programming functions
- Overview of commands
- Understanding man pages
- Command line syntax
- Arguments and options
- Command line history
- Command line completion
- Command line editing
- Filter commands
- Displaying files
- Comparing files
- Counting lines, words, and characters
- Sorting data
- Selecting lines
- The Linux filesystem
- Overview of files
- Inode concepts
- Hardware and processes as file abstractions
- Modern Linux filesystem types
- Hierarchical organization of filesystems
- Directory organization
- Working with directories and files
- Absolute and relative pathnames
- Working directory
- Moving about in the filesystem
- Basic directory operations
- Basic file operations
- Permissions
- Links
- Finding files
- Processes
- Kernel management of processes
- System processes vs. user processes
- Foreground vs. background processes
- Displaying process information
- Suspending and killing processes
- Regular expressions
- Introduction to regular expressions
- Matching lines, words, and characters
- Character classes
- Operators
- Introduction to sed and awk
- Input and output
- Standard input
- Standard output and standard error
- Redirection
- Pipes
- File descriptors
- Communications
- Introduction to basic utilities
- Connecting to remote computers
- Transferring files
- Text editors
- Comparison of Linux text editors
- Text editor basics
- How to create, open, and save a file
- Editing a text file
Lab Content
- Getting started with Linux
- Create a new user account with user id and password
- Enter commands, such as whois, which, and whereis, to get basic information
- Run and stop programs from the command line
- Alter user account settings
- Using basic commands
- Demonstrate the use of commands to display, compare, count, sort, and select files and text
- Use a text editor to incorporate commands into small scripts
- Explore the Linux man pages to gain information on command purpose and use
- Demonstrate the use of command options to alter the behavior of commands
- Exploring various environment and shell variables in the Linux operating system
- Develop understanding of the numeric and string variable types as well as allowed operations on each
- Gain experience in effectively using the text editor to edit system files
- Use the text editor and command line to alter the value assigned to certain shell and environment variables
- Deduce the effect working with shell and environment variables has on the shell environment
- Mastering the command line
- Explore command line syntax through reading man pages and trial and error
- Interact with utilities by typing arguments and options on the command line
- Practice the use of the command line history and command line completion while invoking basic commands
- Play the role of user and programmer, alternately, to establish a command line-interaction plan for a program
- Files and directories
- Become familiar with the history and concepts of the Linux filesystem
- Practice moving about the filesystem to become familiar with the hierarchical organization of files
- Understand the Linux permissions by viewing and changing permissions on both files and directories
- Use a variety of commands to perform basic operations on the filesystem including moving, creating, and deleting files and directories
- Finding, reading, and writing files
- Use utilities to assist in the location of files in the Linux system
- Write a short script which uses redirection to send output to a specified file
- Gain experience with pipes to send output from one command to another command
- Incorporate regular expressions into a grep call to refine search terms
- Communicating with remote computers
- Demonstrate the use of basic commands to transfer files to and from a remote computer
- Gain experience with file transfer protocols
- Explore the use of a variety of methods to connect, along with the benefits and risks of each
- Investigate the need for security in communicating with external machines and develop strategies to lessen security risks
- Demonstrating the Linux text editor
- Compare the features of two or more text editors in the Linux environment
- Use the basic commands of a text editor to create a new file, write and edit text, and save the file
- Edit a script using the text editor's commands for moving around and editing
Special Facilities and/or Equipment
2. A website or course management system with an assignment posting component (through which all lab assignments are to be submitted) and a forum component (where students can discuss course material and receive help from the instructor). This applies to all sections, including on-campus (i.e., face-to-face) offerings.
3. When taught via Foothill Global Access on the internet, the college will provide a fully functional and maintained course management system through which the instructor and students can interact.
4. When taught via Foothill Global Access on the internet, students must have currently existing email accounts and ongoing access to computers with internet capabilities.
Method(s) of Evaluation
Examinations (quizzes, mid-term)
Homework assignments, projects, and hands-on exercises
Laboratory skill demonstrations
Comprehensive final examination
Method(s) of Instruction
Lectures which include history, structure and use of the Linux operating system
Online labs (for all sections, including those meeting face-to-face/on-campus), consisting of:
1. A lab assignment webpage located on a college-hosted course management system or other department-approved internet environment. Here, the students will review the specification of each laboratory assignment and submit their completed work
2. A discussion webpage located on a college-hosted course management system or other department-approved internet environment. Here, students can request assistance from the instructor and interact publicly with other class members
Detailed review of written assignments which includes model solutions and specific comments on the student submissions
In-person or online discussion which engages students and instructor in an ongoing dialog pertaining to all aspects of the Linux operating system
When course is taught fully online:
1. Instructor-authored lecture materials, handouts, syllabus, assignments, tests, and other relevant course material will be delivered through a college-hosted course management system or other department-approved internet environment
2. Additional instructional guidelines for this course are listed in the attached addendum of CS department online practices
Representative Text(s) and Other Materials
Negus, Christopher. Linux Bible, 9th ed.. 2015.
Pelz, Oliver. Fundamentals of Linux, 1st ed.. 2018.
Types and/or Examples of Required Reading, Writing, and Outside of Class Assignments
- Reading
- Textbook assigned reading averaging 30 pages per week
- Reading the supplied handouts and modules averaging 10 pages per week
- Reading online resources as directed by instructor though links pertinent to understanding the Linux environment
- Reading library and reference material directed by instructor through course handouts
- Writing
- Writing technical prose documentation that supports and describes the assignments that are submitted for grades