COMP-4355 Details

COMP 4355 Advanced Systems Programming

Course description

This course introduces students to systems level programming in Unix/Linux using Bash and Python. Specifics of the course are as follows:

  • Introduction to Linux and common system utilities
  • Scripting Languages (Bash and Python)
  • Threads and concurrent programming (Python)
  • Linux fundamentals (processes, file systems, I/O)
  • Programming using Linux system libraries
  • Programming using Bash (operators, structures, loops, functions)
  • Process management in Bash
  • File I/O in Bash
  • Python basics (types, program formatting, functions, loops)
  • Python classes and object oriented Python
  • Python exception handling
  • File I/O in Python
  • Process and thread management in Python
  • Functional programming in Python (map/reduce, etc.)
  • Networking basics in Python

Course learning objectives

  • Know some standard Unix/Linux tools and their usage
  • Understand the Linux design philosophy
  • Be able to navigate a Unix/Linux shell, know common Unix tools and commands for system tasks
  • Be familiar with how Unix/Linux systems manage devices
  • Know how Unix/Linux systems manage processes/threads, and how to create and manage them via scripting (Bash and Python)
  • Accomplish common programming tasks using scripting/interpreted languages (Bash and Python)
  • Be able to write programs utilizing system libraries based on reference material (man pages, online documentation, etc.)
  • Understand and be able to read/write Bash scripts
  • Understand and be able to read/write Python scripts
  • Have an understanding of modules and their usage in Python
  • Identify and use common Python concepts (list comprehensions, string operations, networking)