1. Time: Wednesday, 8:10-11:00
  2. Classroom: TC-301 (ext. 94334492)
  3. Course Name: Python for System Administration (Python網管程式設計)
  4. Course ID: 219144
  5. Upper-limit: 10 Students
  6. Credit: 3
  7. Overview: Python is an ideal language for solving problems, especially in Unix networks. With this pragmatic course, administrators can review various tasks that often occur in the management of these systems, and learn how Python can provide a more efficient and less painful way to handle them.

    In each week, students will be presented with a particular administrative issue, such as concurrency or data backup, and Python solutions will be demonstrated through hands-on examples. Once a student finishes this course, he/she will be able to develop his/her own set of command-line utilities with Python to tackle a wide range of problems.

    With this course, students learn how to package and deploy your Python applications and libraries, and write code that runs equally well on multiple Unix platforms. They'll also learn about several Python-related technologies that will make lives much easier, such as interacting with SNMP and integrating Cloud Computing.

  8. Prerequisite: Computer Networks, Python Programming
  9. Target Students: GP
  10. Field Classification: Multimedia, Digital Network Communication, Signal and Information Processing
  11. Grading Criteria:
  12. Required Software: PuTTY, VirtualBox
  13. Instructor: Dr. Quincy Wu
  14. TA:
  15. Textbook:
    1. Noah Gift and Jeremy M. Jones, "Python for Unix and Linux System Administration", O'Reilly Media,2008. ISBN:978-0-596-51582-9.
  16. References:
    1. Douglas Mauro and Kevin Schmidt, "Essential SNMP", 2nd Edition, O'Reilly Media, 2005. ISBN:978-0596008406.
    2. Al Sweigart, "Automate the Boring Stuff with Python", No Starch Press; 1 edition (May 1, 2015). ISBN: 978-1593275990
  17. Outline:
    1. 2/21 logging and syslog
    2. 2/28 Peace Memorial Day
    3. 3/6 ping and traceroute
    4. 3/13 RRDtool
    5. 3/20 [YouTube] RRDtool Tutorial - Part 1 by Mr. Oetiker
    6. 3/27 [YouTube] RRDtool Tutorial - Part 2 by Mr. Oetiker
    7. 4/3 Spring Vacation
    8. 4/10 Chapter 2: IPython - Interactive Python
    9. 4/17 Chapter 3: Text Processing in Python
    10. 4/24 Data and struct
    11. 5/1 Chapter 9: Package Management
    12. Documentation and Reporting
    13. Networking
    14. SNMP
    15. Cross-Platform Unix Programming in Python
    16. 5/15 Processes and Concurrency
    17. 5/22 Building GUIs
    18. 5/29 Command Line
    19. 6/5 Term Project Demo
    20. 6/12 Report Review
    21. Cacti
    Python for Unix and Linux System Administration
  18. Educational Goals:
    1. 配合國家經濟發展,培養符合資訊產業需求的工程技術人才
    2. 配合國家科技發展,培養具備前瞻資訊科技研發潛能的人才
    3. 配合全球永續發展潮流,培養具備國際視野、工程倫理、人文關懷及社會責任的科技人才
  19. Core Capabilities:
    1. 具備資訊科學基礎數理知識並應用於發掘、分析與解釋數據的能力
    2. 具備程式設計基礎知識並應用於設計及實作資訊軟體的能力
    3. 具備使用英文閱讀資訊領域技術文件及學術論文的能力
    4. 具備團隊合作及獨立執行資訊工程領域學術研究的能力
    5. 理解資訊工程專業倫理、敬業態度、環境保護及社會責任

Related Links

  1. Verlaine Muhungu, Best practices for network automation with Python, TechTarget Networking, September 26, 2023.
  2. Supplemental files and examples
  3. Python v3.5.0 On-line Documentation