1. Time: Wednesday, 18:10-21:00
  2. Classroom: TC-208 (ext. 94334492)
  3. Course Name: Python for System Administration (Python網管程式設計)
  4. 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.

  5. Prerequisite: Computer Networks, Python Programming
  6. Target Students: GP
  7. Field Classification: Multimedia, Digital Network Communication, Signal and Information Processing
  8. Upper-limit: 10 Students
  9. Credit: 3
  10. Grading Criteria: Oral Presentation (40%), Term Project (40%), Final Report (20%)
  11. Required Software: PuTTY, VirtualBox
  12. Instructor: Dr. Quincy Wu
  13. TA: Yung-Yu Wang
  14. 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.
  15. 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
  16. Outline:
    1. 2/24 Introduction - Why Python?
    2. 3/2 IPython - Interactive Python
      • [MP3] Talk Python to Me Podcast - Episode #44: Project Jupyter and IPython
      • 3/9 Text Processing in Python
      • 3/16 Documentation and Reporting
      • 4/6 Midterm Exam
      • Networking
      • Data
      • SNMP
      • Midterm Presentation
      • Cross-Platform Unix Programming in Python
      • Package Management
      • Processes and Concurrency
      • Building GUIs
      • Data Persistence
      • Command Line
      • Pragmatic Examples
      • Term Project Demo
      • Final Report
    Python for Unix and Linux System Administration
  17. Educational Goals:
    1. 配合國家經濟發展,培養符合資訊產業需求的工程技術人才
    2. 配合國家科技發展,培養具備前瞻資訊科技研發潛能的人才
    3. 配合全球永續發展潮流,培養具備國際視野、工程倫理、人文關懷及社會責任的科技人才
  18. Core Capabilities:
    1. 具備資訊科學基礎數理知識並應用於發掘、分析與解釋數據的能力
    2. 具備程式設計基礎知識並應用於設計及實作資訊軟體的能力
    3. 具備使用英文閱讀資訊領域技術文件及學術論文的能力
    4. 具備團隊合作及獨立執行資訊工程領域學術研究的能力
    5. 理解資訊工程專業倫理、敬業態度、環境保護及社會責任

Related Links

  1. Supplemental files and examples
  2. Python v3.5.0 On-line Documentation