# Python Programming for Physics Students - Syllabus (*draft*) ## Course Objective This course is to guide you to be comfortable at using Python as a programming tool in your research work. The course will begin to briefly goes through some basic programming concepts while introducing fundamental constructs and structures of Python. If we simply introduce Python as a programming language, you may feel unrelated. With a base layer set, we will start to get a better grip with some applications better related to your disciplines of pursuit. It's set to facilitate you by practices with an understanding in how Python can be used. VPython is a Python package module that lets you program 3D animation you can navigate in real-time. Numpy is another package that offers a comprehensive set of mathematical functions and routines. Both packages will be in our exercises to visually present phenomena derived from physics theories and models. Quantum Technology has started to gain practical momentum in recent years. Python is used as platform tool language in many fields in academics as well as industrial practices including Quantum Computing. We won't have time to take on this but at the end of the course, we may be able briefly introduce the concept of ```class```, a programming language feature that facilitates a more streamlined integration with specific utility modules including Qiskit, a Quantum Computing library. This is in hope to prepare you for further pursuits in like areas. 這門課程引導你將能夠在研究工作中自信地使用 Python 做為編程的工具。課程開始將簡單介紹一些基礎的編程概念以及 Python 的基本語法和結構。 如果我們單純介紹如何用 Python 寫程式,你可能不會有興趣。在將 Python 編程重點做簡要的提綱式介紹和練習後,會帶領同學們以和科系訓練較為相關的應用來建立更確實的掌握。透過這樣的練習,同學們能夠對 Python 可以如何使用有更清楚的認識。 VPython 是一套 Python 的套件模組,它能讓你做可以互動操控的 3D 動畫;Numby 則是另一套提供了許多數學分析工具的模組。我們會學習運用這兩個模組,建立模型,把從理論推導出來的現象視覺化呈現出來。 量子科技近幾年逐漸受到關注。Python 在學界研究與業界應用許多領域廣泛用做平台工具語言,包括量子計算。雖然上課時數無法涵蓋這個課題,不過如果最後時間允許,我們可能簡單介紹一下「```class```類別」的概念。多數工具套件模組 (包括 Qiskit,一個量子計算的函式庫) 都使用 ```class``` 的語法結構和應用程式做架構更為清楚的整合。希望能夠幫助你在之後類似領域的繼續鑽研有所幫助。 "*Computer simulation* has become an important and respected research tool, complementing the traditional approaches of *theory* and *experiment*. ... [S]imulation can produce revelation, ... has the potential to yield the unexpected." - J. M. Haile in Prolegomena of \<Molecular Dynamics Simulation\>, <span style="color:red">*1992*</span> ## Instructor 黃敦紀 Elton Huang (Contact info, etc.) ## Tentative Schdule (adpated from [VPython & VPhysics](https://vphysics.ntu.edu.tw/vpfc.php)) Week 1 (3 hr) Programming and Python Basics: Variables, Input/Output, Sequential/Conditional/Iterative Structures, Function Week 2 (3 hr) "Motion": iterative and conditional structure Week 3 (3 hr) "Wave": complex data and function Week 4 (3 hr) "Gas": Numpy Week 5 (3 hr) "Energy": integrated exercises and more Week 6 (3 hr) Course project problem resolutions ## Evaluation TBD: Homeworks (and Course Project)