COMP-4455 Details

COMP 4455 Shell Scripting and System Tools

Course description

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

  • Introduction to Linux and common system utilities
  • Scripting Language for systems tasks (Bash)
  • Programming using Bash (operators, structures, loops, functions)
  • Linux fundamentals (processes, file systems, I/O)
  • Process management in Bash
  • File I/O in Bash
  • Threads and concurrent programming (Python)
  • Programming using Linux system libraries
  • 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
  • Have an understanding of modules and their usage in Python
  • Identify and use common Python systems concepts (process management, concurrent programming, networking)