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)