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

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 30%
Final exam 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 5% 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:
Thursday, August 22, 2024
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:
Thursday, August 29, 2024
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:
Thursday, September 5, 2024
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:
Thursday, September 12, 2024
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:
Thursday, September 19, 2024
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:
Thursday, September 26, 2024
Exercise 5: Signals and process control
This exercise uses: kill and various signals in Unix processes
Chapter 11: The environment
Chapter 12: A Gentle Introduction to vi
Commands covered: printenv, set, export, alias
Week 7:
Thursday, October 3, 2024
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:
Thursday, October 10, 2024
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
Week 9:
Thursday, October 17, 2024
Lecture: A brief introduction to HTML5
Exercise 7: Create a webpage on Blue
This exercise uses: vim and chmod
Chapter 23: Compiling programs
Chapter 24: Writing your first script
Commands covered: make, gcc, wget
Week 10:
Thursday, October 24, 2024
Exercise 7: File processing (part 2)
This exercise uses: grep, zgrep, uniq, sort, diff, zip, gzip, bzip2
Chapter 25: Starting a project
Chapter 26: Top-down design
Week 11:
Thursday, October 31, 2024
Exercise 9: Unix permissions Chapter 27: Flow control: branching with if
Chapter 28: Reading keyboard input
Week 12:
Thursday, November 7, 2024
Lecture: Building projects with cmake (Note: cmake is not covered in book)
Exercise 10: Building Projects
Chapter 29: Flow Control: Looping with while / until
Chapter 30: Troubleshooting
Week 13:
Thursday, November 14, 2024
Lecture: Introduction to AWK (Note: awk is not covered in book)
Exercise 11: Regular Expressions
Chapter 31: Flow Control: branching with case
Chapter 32: Positional parameters
Week 14:
Thursday, November 21, 2024
Exercise 12: BASH scripts Chapter 33: Flow Control: Looping with for
Chapter 34: Strings and numbers
Week 15:
Thursday, December 5, 2024
Lecture: Final exam study_guide
Exercise 13: Bash scripts
Chapter 35: Arrays
Thursday, December 12, 2024 FINAL EXAM from 3:30 PM to 5:30 PM
Note: The final exam covers chapters 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, and 35.