This course offers a 6-week
introduction to working with Unix, and it is intended to help students work with tools commonly used in CS courses. The class is comprised of both discussion and hands-on exercises in the EdLab. Topics covered include working with the command line, installing and maintaining the OS and software packages, version control systems, compiling programs, and more. No previous experience with Unix is required. This course is for majors and minors only, but it does not count towards the BS-CMPSCI. 1 credit.
- Course Website: http://people.cs.umass.edu/~tian/197U/
Instructor: Tian Guo; Email: firstname.lastname@example.org
Meeting Time: Tue/Thu 4:00-5:15 Engineering Lab 323
This class will meet for only 6 weeks, and starts on the second week: 09/25/15 and ending 10/22/15.
Reserved Lab Time/Office Hours: Wed 1-3PM Edlab LGRT Room 223
During this time the instructor will be available to answer questions.
Mandatory Textbook: Unix and Linux: Visual QuickStart Guide (4th Edition), by Deborah S. Ray, Eric J. Ray.
The course will be graded Pass / Fail. To pass the course, you must satisfy both:
- Turn in six out of seven assignments (each assignment is worth 10 points)
- Achieve a total of 45 or more points by the end of the class in six assignments and in class attendance.
I cannot give any incomplete grades unless you have a note from a doctor proving your inability to complete the course material.
I will monitor class attendance at the beginning of every class. Class attendance will be counted as following:
- A total of 5 points and a minimal of 0 point.
- A point will be deducted for each missing class.
There will also be quizzes/in class exercises that will count for points towards your final grade.
- Special withdrawal policy: only possible until 09/25/2015.
Academic Honesty Policy
This is a rough outline for all the lectures (subject to changes). For up-to-date course information, please visit the Course Website.
Lecture 1: What is Unix/Linux?
- Basic overview and history of unix/linux
- Command line basics
ssh, ls, pwd, cd, cp, rm, mv
Lecture 2: Using the Command Line
- Accessing remote servers and files
- Editing and manipulating files
- Piping commands and saving output
- Searching in command line history
mkdir, vim, cat, head, tail, less, clear, grep, sort, uniq, man, >, |, ssh-keygen
Lecture 3: Operating System Organization
- OS basics, processes
- Filesystem layout
- File permissions
chmod, find, locate
Lecture 4: Your Own Copy of Linux
- Overview of popular Linux distributions
- Running Linux in a virtual machine
- Super user powers
- Installing applications
Lecture 5: Programming in Linux
- Simple Bash shell scripting
- Compiling C/C++ files
- File processing:
Lecture 6: Programming & Scripting
Lecture 7: Configuring the System
- Basic system administration
- Setting environment variables
- Listing users and processes
- Basics of mount and NFS
uname, users, finger, alias, ps, top, kill, mount, df, du
Lecture 8: Subversion Control and Advanced Topics
- Source control with SVN
- More powerful editors:
- More commands:
svn, tar, screen, nohup, disown, nice, cron, whereis, which, diff, scp, rsync
Lecture 9: UNIX Networking Basics
- Network Configuration
- Network background knowledge
- Basic Networking debugging
Lecture 10: Security Issues and Traffic Monitoring
- IP Addressing
- Address Resolution Protocol
- Packet Sniffing
- Unsecure vs Secure Network Connections
Lecture 11: Network Connections and WWW
Lecture 12: Review and all the others
- Course Evaluations
- Random Cool Topics
(Exact details will be discussed in class)
- Assignment One: Connect to an Edlab Linux server and browse through your home directory.
- Assignment Two: Command line tool basics, editing files with vim, basic file processing.
- Assignment Three: Create a Ubuntu virtual machine and install new software packages .
- Assignment Four: Write AWK and shell scripts to process data in several files.
- Assignment Five: Create an SVN repository. More command line tool basics and more file processing.
- Assignment Six: Debugging a Network, encrypting messages, and packet sniffing
- Assignment Seven: A little bit of everything.