BTO120 Course Outline

Course Code: BTO120
Course Name: Operating Systems for Programmers - UNIX
Offered Date: Winter - 2018 | Other versions
Print Outline
Course Description:
Unix is stable, mature, multi-purpose operating system with a reputation for efficiently storing and rapidly delivering Internet content, as well as serving as an effective and efficient development platform for programmers, web designers, graphic artists and document publishers. This course introduces Unix to students majoring in computer programming. Student learn to work in a Unix graphical environment using both Unix and Linux servers. Students also learn to configure their login account, manipulate data stored in files, effectively une Unix commands and utilities, and write basic shell scripts.
Credit Status: 1 credit (3 units)
Required for BSD - Bachelor of Technology (Software Development)
Prerequisite: None
Mode of Instruction: Modes: In-class lecture, in-class exercises, and hands-on activity
Hours per week: 4
Room configurations: Classroom (2 hours), and computer lab (2 hours)
Typical scheduling pattern: Fall and Winter terms
Learning Outcomes:
1) customize a Unix login account using environment variables, configuration files and startup scripts 
2) maintain Unix directories and files 
3) manage Unix jobs and processes 
4) use Unix pipes and file redirection 
5) work in both graphical and text-based environments 
6) manipulate data with proper use of Unix filters 
7) automate a sequence of operations by writing a shell script 
8) use Unix networking facilities to connect to remote systems, transfer files between systems and send email 
9) apply Unix security tools to ensure Unix directories and files are protected from unauthorized users 
10) explain the role of an operating system 
11) explain the Unix philosophy 
12) use on-line documentation, research and experimentation to discover how new Unix commands function 
Topic Outline:
  • Operating Systems Basics - 10%
    •         hardware basics
    •         command line vs GUI interfaces
    •         resource management
    •         device management
    •         task management
    •         user management
    •         memory management
    •         networking
    •         history of UNIX and Linux (flavours, strengths, weaknesses)
  • UNIX Basics - 30%
    •         shells
      •             changing shells (chsh)
      •             common shell commands
      •             common shells (sh, csh, ksh, bash)
      •             how the shell processes a command
      •             logging in to the shell (login,telnet)
    •         changing passwords (passwd)
    •         command line editing (correcting mistakes)
      •             command line history
      •             command separation and grouping ( ; & ( ) )
      •             some useful shell commands (echo, whereis, date, cal, who, clear, man, uptime)
    •         viewing files (cat, more, less, head, tail)
      •             logging (ctrl-d, exit, logout)
      •             redirecting output
    •         UNIX file system
      •             root file system
      •             tree structure
      •             UNIX file types
    •         stdin, stdout, stderr
      •             redirecting input
    •         file system commands
      •             basic file & directory manipulation commands (cd, chmod, cp, ls, mkdir, pwd, rm, rmdir, umask)
      •             file processing commands
      •             manipulating files (cut, find, which, less, lpr, more, sort, touch)
      •             navigating the file system (pathnames, prompt, wildcards, [], ? *, ~)
    •         quoting special characters (backslash)
    •         using pipes
    •         regular expressions
    •         file processing commands (grep, egrep, fgrep, uniq, diff, cmp, wc, tr, pr)
    •         file compression (gzip, gunzip, zcat, zmore, zcmp, zgrep)
    •         vi Editor
      •             ASCII files vs binary files
      •             basic commands (:!, :q, :r, :set, :w, :wq, :x, i, p, u, yy, ZZ, .n, Ctrl-Z)
      •             basic editing (x, dd, dw, d$, D, d0)
      •             basic searching (/) and replacing
      •             modes (command, input, last line)
      •             moving the cursor (., h, l, k, j, H, L, nG, w, b, 0, $, Ctrl+U, Ctrl+D, Ctrl+F, Ctrl+B)
    •         network & communication utilities
      •             communication (write, talk, mesg, mail, finger, mail, pine)
      •             file transfer (ftp)
      •             remote connection (PuTTY, telnet, ssh)
    •         process control
      •             batch/real time/time sharing/time slicing
      •             foreground/background
      •             OS concepts of thread and process management
      •             process control commands (& , ps, kill, Ctrl-C, top)
  • Installing Linux - 5%
    •         disk partitions
  • X Windows GUI - 10%
    •         overview of X Window protocol
    •         windows managers
    •         running X Applications locally and remotely
    •         desktop Managers
    •         KDE & GNOME
  • Scripting - 25%
    •         how the shell runs a script
    •         creating and running scripts
    •         manipulating information from files (join, awk)
    •         comments
    •         shell operators
    •         variables (HOME, ~, PATH, PS1, USER, TERM, PWD, VISUAL)
    •         reading and writing user defined variables
    •         costomizing shells (.bashrc, .profile, alias, export)
    •         integer and string comparison (test)
    •         debugging a script
    •         screen Control
      •             clearing the screen
      •             moving the cursor
    •         shell functions
    •         scripting Conditional Statements
      •             if-the-else, for, while, until, break, continue, case
  • Program Development and Version Control - 20%
    •         linking to libraries
    •         conditional compilation of multiple source files (make)
    •         specifying dependencies
    •         optimizing executables
    •         measuring software performance (gprof)
    •         size vs running time
    •         developing and using libraries (ar, nm)
    •         version control of source files
    •         creating files
    •         checking out files
    •         rolling back changes
    •         merging versions
    •         source code debugging (gdb, dbx)
Prescribed Text(s):
Reference Material:
Practical Guide to Linux Commands, Editors and Shell Programming, 2nd edition
By Mark Sobell
ISBN 0-131-36736-6
Published by Prentice Hall
Promotion Policy:
To obtain a credit in this subject, a student must:
  •     Pass the weighted average of all assessments
  •     Pass the weighted average of the exam and the tests
  •     Pass the final exam
  •     Successfully complete all of the assignments and exercises. Submissions that do not meet specifications will be returned to the student for revision and resubmission.

Grading Policy
A+ 90%  to  100%
A 80%  to  89%
B+ 75%  to  79%
B 70%  to  74%
C+ 65%  to  69%
C 60%  to  64%
D+ 55%  to  59%
D 50%  to  54%
F 0%    to  49% (Not a Pass)
EXC Excellent
SAT Satisfactory
UNSAT Unsatisfactory

For further information, see a copy of the Academic Policy, available online (http://www.senecacollege.ca/academic-policy) or at Seneca's Registrar's Offices.

Term Work 30%
Mid-term Test 30%
Final Exam 40%
Approved By:
Mary-Lynn Manton
Cheating and Plagiarism:
Each student should be aware of the College's policy regarding Cheating and Plagiarism. Seneca's Academic Policy will be strictly enforced.

To support academic honesty at Seneca College, all work submitted by students may be reviewed for authenticity and originality, utilizing software tools and third party services. Please visit the Academic Honesty site on http://library.senecacollege.ca for further information regarding cheating and plagiarism policies and procedures.
Discrimination and Harassment:
All students and employees have the right to study and work in an environment that is free from discrimination and/or harassment. Language or activities that defeat this objective violate the College Policy on Discrimination/Harassment and shall not be tolerated. Information and assistance are available from the Student Conduct Office at student.conduct@senecacollege.ca.
Accomodation for Students with Disabilities
The College will provide reasonable accommodation to students with disabilities in order to promote academic success. If you require accommodation, contact the Counselling and Disabilities Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.

Program Information