CSCI 50 - Introduction to Unix/Linux


An introduction to the Unix and Linux operating systems with an emphasis on system programming. Topics include the filesystem, permissions, regular expressions, processes, networking, basic system administration, and shell scripting. Extensive hands-on experience using the command line interface.


Completion of CSCI 10 with a grade of "C" or better.

Course Outcomes

Lecture Objectives:
1. Identify and describe prominent figures in Unix/Linux history: Ken Thompson, Dennis Ritchie, and Linus Torvalds;
2. From a written description, analyze and calculate correct permissions to set on files and directories using both numeric and symbolic representations; and
3. Specify file locations using absolute and relative paths.

Laboratory Objectives:
1. Create, edit, and remove files and directories using core commands: cp, mv, mkdir, rmdir, rm, ls;
2. Construct pipelines of commands to filter data;
3. Construct correct regular expressions to match patterns in data files;
4. Create and kill processes using job control commands and signals;
5. Copy files to and from remote machines;
6. Diagnose network problems using ping, nslookup, and netstat;
7. From written descriptions, write correct shell scripts utilizing sequencing of commands, conditionals, and iteration;
8. Compile and install third-party software packages; and
9. Compile and execute user-supplied programs in Java, C, or C++.


Barry Brown (classroom)
Tim McGowen (online)


This course is offered in both Fall and Spring semesters in both a traditional classroom setting and online.