BTO120 - Operating Systems for Programmers - UNIX

Outline info
Semester
School
Last revision date 2023-10-02 00:50:08.027
Last review date 2023-12-04 00:15:09.427


Subject Title
Operating Systems for Programmers - UNIX

Subject 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)

Learning Outcomes
Upon successful completion of this subject the student will be able to:

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 

Academic Integrity
Seneca upholds a learning community that values academic integrity, honesty, fairness, trust, respect, responsibility and courage. These values enhance Seneca's commitment to deliver high-quality education and teaching excellence, while supporting a positive learning environment. Ensure that you are aware of Seneca's Academic Integrity Policy which can be found at: http://www.senecapolytechnic.ca/about/policies/academic-integrity-policy.html Review section 2 of the policy for details regarding approaches to supporting integrity. Section 2.3 and Appendix B of the policy describe various sanctions that can be applied, if there is suspected academic misconduct (e.g., contract cheating, cheating, falsification, impersonation or plagiarism).

Please visit the Academic Integrity website http://open2.senecac.on.ca/sites/academic-integrity/for-students to understand and learn more about how to prepare and submit work so that it supports academic integrity, and to avoid academic misconduct.

Discrimination/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@senecapolytechnic.ca.

Accommodation 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 Accessibility Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.

Camera Use and Recordings - Synchronous (Live) Classes
Synchronous (live) classes may be delivered in person, in a Flexible Learning space, or online through a Seneca web conferencing platform such as MS Teams or Zoom. Flexible Learning spaces are equipped with cameras, microphones, monitors and speakers that capture and stream instructor and student interactions, providing an in-person experience for students choosing to study online.

Students joining a live class online may be required to have a working camera in order to participate, or for certain activities (e.g. group work, assessments), and high-speed broadband access (e.g. Cable, DSL) is highly recommended. In the event students encounter circumstances that impact their ability to join the platform with their camera on, they should reach out to the professor to discuss. Live classes may be recorded and made available to students to support access to course content and promote student learning and success.

By attending live classes, students are consenting to the collection and use of their personal information for the purposes of administering the class and associated coursework. To learn more about Seneca's privacy practices, visit Privacy Notice.

Prerequisite(s)
None

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)

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

Prescribed Texts
None

Reference Material
A Practical Guide to Linux Commands, Editors, and Shell Programming, 4th Edition by Mark Sobell - ISBN 9780134774602

Required Supplies
None

Student Progression and Promotion Policy
To obtain a credit in this subject, a student must:

  •      Achieve an average of 50% or better for the two tests.
  •      Achieve a grade of 50% or better on the overall course.

http://www.senecapolytechnic.ca/about/policies/student-progression-and-promotion-policy.html

Grading Policyhttp://www.senecapolytechnic.ca/about/policies/grading-policy.html

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)
OR
EXC Excellent
SAT Satisfactory
UNSAT Unsatisfactory

For further information, see a copy of the Academic Policy, available online (http://www.senecapolytechnic.ca/about/policies/academics-and-student-services.html) or at Seneca's Registrar's Offices. (https://www.senecapolytechnic.ca/registrar.html).


Modes of Evaluation
- Quizzes (minimum of 5) - 30%
- Assignments (minimum of 3) - 30%
- Tests (minimum of 2 tests at 20% each) - 40%

Approved by: Kathy Dumanski