Type of Credit: Elective
Credit(s)
Number of Students
This course introduces students to Python programming. The first part will cover foundational topics on data types, data structures, control flow, function, and method. The second part will discuss Python applications in business analytics. Students will learn to use popular Python packages, including NumPy, Pandas, Matplotlib, Statmodels, Requests, and SciPy. We will also discuss the use of API in acquiring macroeconomic data, stock prices, corporate filings, and internet search volume from internet sources such as FRED, DBnomics, BLS, SEC Edgar, Yahoo!, and Google.
This is a distance-learning (遠距課程) course. We will only meet in the classroom for Week 1 (Course Overview), Week 11 (Brainstorming Session), Week 15, and Week 16 (Project Presentations).
能力項目說明
1. Learn the basics of Python programming
2. Applications of Python packages
3. Business Analytics with Python
4. Develop tools in Python
教學週次Course Week | 彈性補充教學週次Flexible Supplemental Instruction Week | 彈性補充教學類別Flexible Supplemental Instruction Type |
---|---|---|
週次 |
授課內容 |
學生指定閱讀資料 |
授課方式 |
1 |
Course overview Learning objectives: Introduce students to the interactive JupyterLab environment. Overview of Python applications in business analytics. Installation of the Anaconda distribution. Course design: Presentation slides, news articles, and computer demonstrations. |
Classroom session to introduce the topics, assessments, and class delivery options.
|
▓面授 □遠距 |
2 |
Basic data types Learning objectives: Introduce built-in data types including str, int, float, bool, NoneType and etc. Illustrate basic math operations and text manipulations. Course design: Computer demonstrations. Assessment: Homework 1 |
ABSP Ch1, JupyterLab |
□面授 ▓遠距 |
3 |
Flow control I Learning objectives: Explain the concepts of comparison operators and True-False tables. Course design: Flow charts and computer demonstrations. Assessment: Homework 2 |
ABSP Ch2, JupyterLab |
□面授 ▓遠距 |
4 |
Flow control II Learning objectives: Automate processes with while- and for-loop. Course design: Flow charts and computer demonstrations. |
ABSP Ch2, JupyterLab |
□面授 ▓遠距 |
5 |
Functions and methods Learning objectives: Write functions to reuse code. Discuss concepts in recursive functions. Course design: Computer demonstrations and applications of recursion. Assessment: Homework 3 |
ABSP Ch3, JupyterLab |
□面授 ▓遠距 |
6 |
Basic data structures I Learning objectives: Introduce the list, indexing, and list methods. Course design: Computer demonstrations and apply flow controls to list. |
ABSP Ch4, JupyterLab
|
□面授 ▓遠距 |
7 |
Basic data structures II Learning objectives: Introduce dict and tuple; keys and values; mutable and immutable data structures. Course design: Computer demonstrations and applications of data structures. Assessment: Homework 4 |
ABSP Ch5, JupyterLab |
□面授 ▓遠距 |
8 |
NumPy and Pandas I Learning objectives: Numerical computations in Python, arrays, and matrix operations. Course design: Computer demonstrations and applications of NumPy. |
PDA Ch4,5, JupyterLab |
□面授 ▓遠距 |
9 |
NumPy and Pandas II Learning objectives: Pandas dataframe; attributes and methods of dataframe. Data import and cleaning. Course design: Computer demonstrations and data analysis with NumPy and Pandas. Assessment: Homework 5 |
PDA Ch6,7,8, JupyterLab |
□面授 ▓遠距 |
10 |
Web-scraping Learning objectives: Automate data gathering from websites; Application Programming Interface (API). Course design: Computer demonstrations and applications of API with economics and finance data. |
ABSP Ch12, JupyterLab |
□面授 ▓遠距 |
11 |
Brainstorming session for project Learning objectives: Encourage innovation through a capstone project. Develop a roadmap for doing data analytics with business applications. Discuss the feasibility of students’ ideas. Q&A on technical issues. Course design: Group discussions and in-class presentations. |
Classroom session to discuss with students on potential topics for the semester project. |
▓面授 □遠距 |
12 |
Data visualization Learning objectives: Visualize data with matplotlib and seaborn. Compare and constrast data visualization tools. Course design: Computer demonstrations and interactive plotting with real-world data. Assessment: Homework 6 |
PDA Ch9, JupyterLab |
□面授 ▓遠距 |
13 |
Manipulating strings Learning objectives: Methods and functions for manipulating strings. Import and export string data. Course design: Computer demonstrations. |
ABSP Ch6, JupyterLab |
□面授 ▓遠距 |
14 |
Textual analysis Learning objectives: Dictionary approach for counting words; word clouds; document-term matrix; text-mining. Course design: Computer demonstrations with applications of English and Chinese corpora. |
Lecture notes and JupyterLab |
□面授 ▓遠距 |
15 |
Project presentations Learning objectives: Students present their projects on business analytics with Python Course design: Group discussions and in-class presentations. |
Classroom session |
▓面授 □遠距 |
16 |
Project presentations Learning objectives: Students present their projects on business analytics with Python Course design: Group discussions and in-class presentations. |
Classroom session |
▓面授 □遠距 |
17 (17+1) |
NumPy, SciPy, and Statsmodels Learning objectives: Scientifical computing and statistical modeling with Python. Course design: Computer demonstrations with applications of econometrics and optimizations. Assessment: Homework 7 |
Lecture notes and JupyterLab |
□面授 ▓遠距 |
18 |
Final online examination Exam design: Examinations with different question types including multiple choices, short computations, data gathering, data analysis, debugging, and code writing problems. |
□面授 ▓遠距 |
6 individual assignments (30%)
Group projects (30%)
Final examination (40%)
"Automate the Boring Stuff with Python" (ABSP) by Al Sweigart, https://automatetheboringstuff.com/
"Python for Data Analysis, 3E" (PDA) by Wes McKinney, https://wesmckinney.com/book/