Sonoma State University
Department of Computer Science
CS-210: Introduction to Unix
Spring 2026

Course Description

This course is an introduction to the use of Linux/Unix as a programming environment. Communicating with a Linux host, shells and shell commands, files and directories, jobs and processes, scripting, programming utilities (compiler, linker, debugger, make, hex dump, etc.).

Prerequisites

Prerequisites: Grade of C- or better in CS 115 and previous or concurrent enrollment in CS 215, or consent of instructor.

Instructor

Robert Bruce

Learning Outcomes

Upon successful completion of this course, students will be able to:

  1. Use a Unix command line interface.
  2. Navigate the Unix file system and perform common file operations.
  3. Use standard Unix commands and utilities.
  4. Write basic shell scripts.
  5. Use regular expressions in Unix commands.
  6. Use Unix development tools (vim, gcc, gdb, make).
  7. Demonstrate technical fluency in speaking about the Unix environment.

Required Texts/Readings

Course Requirements

Midterm Examination

The midterm exam covers chapters 1 through 12 (inclusive), chapter 17, and chapter 18 of Shotts' The Linux Command Line. The midterm exam will be comprised of open-ended questions. The exam will be closed-book. You may use one A4 sheet of paper (8.5 inches width by 11 inches length) for notes during the midterm examination. You may write notes on both sides of the sheet of paper.

Final Examination

The final exam will covers chapter 19, chapter 20, and chapters 23 through 35 (inclusive) of Shotts' The Linux Command Line. The final exam will be comprised of open-ended questions. The exam will be closed-book. You may use one A4 sheet of paper (8.5 inches width by 11 inches length) for notes during the midterm examination. You may write notes on both sides of the sheet of paper.

Grading Information

Assignment Percentage of Grade
Exercises 40%
Midterm exam
midterm_exam_study_guide
30%
Final exam
Final exam study guide
Real final exam from former semester
30%
TOTAL 100%

Determination of Grades

Ultimately this course is graded A, B, C, D, or F. Percentage grades are rounded to the nearest whole number. For example, a grade of 92.4% will be rounded to 92% and result in a grade of "A minus". A grade of 92.5% will be rounded to 93% and result in a grade of "A".

Grading Scale

Percent range Grade
93% to 100% inclusive A
90% to 92% inclusive A-
87% to 89% inclusive B+
83% to 86% inclusive B
80% to 82% inclusive B-
77% to 79% inclusive C+
73% to 76% inclusive C
70% to 72% inclusive C-
67% to 69% inclusive D+
63% to 66% inclusive D
60% to 62% inclusive D-
Below 60% F

Grading Policies

Late assignments

Absent extenuating circumstances (illness, family emergency), late submissions will be accepted under the late policy until the advertised "Until" deadline on Canvas. The late policy is minus 10% per day, and never grows more than minus 50% markdown (as long as the assignment is submitted before the final deadline via Canvas).

Late exams and quizzes
  • There are no make-up exams.
  • Official proof of emergency required for missing an exam, project, or project presentation.

Course Schedule

Week Topics and Assignments Readings and Deadlines
Week 1:
Tuesday, Jan 27, 2026
Lecture: Success in CS-210: Introduction to Unix Chapter 1: What is the shell?
Chapter 2: Navigation
Commands covered: date, cal, df, free, exit, pwd, cd, ls
Week 2:
Tuesday, Feb 3, 2026
Exercise 1: Logging in to Blue Chapter 3: Exploring the system
Chapter 4: Manipulating files and directories
Commands covered: ls, file, less, cp, mv, mkdir, rm, ln
Week 3:
Tuesday, Feb 10, 2026
Exercise 2: File_utilities (part 1) Chapter 5: Working with Commands
Chapter 6: Redirection
Commands covered: type, which, help, man, apropos, info, whatis, alias, cat, sort, uniq, grep, wc, head, tail, tee
Week 4:
Tuesday, Feb 17, 2026
Exercise 3: File utilities (part 2) Chapter 7: Seeing the world as the shell sees it
Chapter 8: Advanced Keyboard Tricks
Commands covered: echo, history, script
Week 5:
Tuesday, Feb 24, 2026
Exercise 4: File processing (part_1) Chapter 9: Permissions
Chapter 10: Processes
Commands covered: id, chmod, umask, su, sudo, chown, chgrp, passwd, ps, top, jobs, bg, fg, kill, killall, shutdown, pstree, vmstat, xload, tload
Week 6:
Tuesday, Mar 3, 2026
Exercise 5: Signals and process control Chapter 11: The environment
Chapter 12: A Gentle Introduction to vi(m)
Commands covered: printenv, set, export, alias
Week 7:
Tuesday, Mar 10, 2026
Lecture: Midterm exam study_guide
Exercise 6: Editors and dot files
Chapter 17: Searching for files
Chapter 18: Archiving and backup
Commands covered: locate, find, xargs, touch, stat, gzip, bzip2, tar, zip, rsync, gunzip, zcat, tar, zip, unzip
Week 8:
Tuesday, Mar 17, 2026
MIDTERM EXAM
Note: the midterm exam covers chapters 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, and 18.
Chapter 19: Regular expressions
Chapter 20: Text processing
Commands covered: grep, zgrep, locale, cat, sort, uniq, cut, paste, join, comm, diff, patch, tr, sed, aspell, du
Tuesday, Mar 24, 2026 SPRING BREAK  
Tuesday, Mar 31, 2026 César Chavez Day: CAMPUS CLOSED  
Week 9:
Tuesday, Apr 7, 2026
Lecture: A brief introduction to HTML5
Exercise 7: Create a webpage on Blue
Chapter 23: Compiling programs
Chapter 24: Writing your first script
Commands covered: make, gcc, wget
Week 10:
Tuesday, Apr 14, 2026
Exercise 8: File processing (part 2) Chapter 25: Starting a project
Chapter 26: Top-down design
Week 11:
Tuesday, Apr 21, 2026
Exercise 9: Unix permissions Chapter 27: Flow control: branching with if
Chapter 28: Reading keyboard input
Week 12:
Tuesday, Apr 28, 2026
Lecture: Building projects with cmake
Exercise 10: Building Projects
Chapter 29: Flow Control: Looping with while / until
Chapter 30: Troubleshooting
Week 13:
Tuesday, May 5, 2026
Lecture: Introduction to AWK
Exercise 11: Regular Expressions
Chapter 31: Flow Control: branching with case
Chapter 32: Positional parameters
Week 14:
Tuesday, May 12, 2026
Exercise 12: Debugging a C program with the GNU Debugger (gdb) Chapter 33: Flow Control: Looping with for
Chapter 34: Strings and numbers
Chapter 35: Arrays
May 19, 2026 FINAL EXAM at 3:30PM