UNX511 Course Outline

Course Code: UNX511
Course Name: UNIX Systems Programming
Offered Date: Winter - 2022 | Other versions
Print Outline
Course Description:
UNIX, the operating system of choice for much of the Internet, is the most versatile non-platform-specific, general-purpose computing environment available. This subject explores UNIX at a technical level. The primary focus will be system and network programming using C. Students will also learn advanced scripting techniques and the use of development tools and utilities.
Credit Status: 1 Credit for CPA/CPD program.
Prerequisite: OOP344 or OOP345
Mode of Instruction: 2 hours interactive lecture per week.
2 hours lab time per week.
Learning Outcomes:
  •         Code UNIX client/server applications
  •         Work with C programs and libraries to develop UNIX applications
  •         Understand and use UNIX inter-process communication facilities
  •         Make effective use of UNIX commands, utilities and filters
Employability Skills:
    •  Respond to written, spoken, or visual messages in a manner that ensures effective communication.|    •  Apply a systematic approach to solve problems.|    •  Use a variety of thinking skills to anticipate and solve problems.|    •  Manage the use of time and other resources to complete projects.|    •  Take responsibility for one's own actions, decisions, and consequences.|
Topic Outline:
  •     Unix Background - 5%
    •         History (flavours, origins)
    •         Shells (Bourne, Korn, Bash)
    •         OS Functions (resource management)
  •     Programming Facilities - 15%
    •         Debugging (gdb, Electric Fence, Valgrind)
    •         Makefiles
    •         Libraries (Static vs. Dynamic)
    •         Memory Management (Static, Stack, Heap)
    •         Version Control
  •     UNIX File System and Environment - 10%
    •         File system (Inode structure)
    •         System Calls (Accessing and Maintaining files and directories)
    •         Environment Variables
  •     File I/O - 10%
    •         I/O Model
    •         File Control
    •         Descriptors
    •         Non-blocking I/O
  •     Terminals - 10%
    •         Termcap
    •         Terminfo
    •         Curses Library
  •     Processes and Signals - 10%
    •         Process creation
    •         Parent & Child processes
    •         Signal handlers
    •         Threads
  •     Inter-Process Communications - 15%
    •         Pipes
    •         Semaphores
    •         Shared Memory
    •         Messge Queues
  •     Sockets - 15%
    •         Types
    •         Client/Server
    •         Common Functions
  •     The Shell - 10%
    •         Review functionality and basic commands
    •         Unix filters - grep, sed, sort, awk
Prescribed Text(s):
None
Reference Material:
  • The Linux Programming Interface: A Linux and UNIX System Programming Handbook by Michael Kerrisk - ISBN 978-1-59327-220-3 - Published by No Starch Press
Supply:
  • Students should have a Linux system installed on their own PC or Laptop.
Promotion Policy:
To obtain a credit in this subject, a student must:
  •     Achieve a grade of 50% or better on the final exam
  •     Satisfactorily complete all assignments
  •     Achieve a weighted average of 50% or better for the tests and final exam
  •     Achieve a grade of 50% or better on the overall course

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

Grading Policyhttp://www.senecacollege.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.senecacollege.ca/about/policies/academics-and-student-services.html) or at Seneca's Registrar's Offices. (https://www.senecacollege.ca/registrar.html).


Evaluation:
Term Work 50%
Mid-term Test 20%
Final Exam 30%
Approved By:
Kathy Dumanski
Cheating and Plagiarism:
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.senecacollege.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 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 Accessibility Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.