Course Description

This course introduces fundamental programming concepts in the Python language and related environment.
Fundamental concepts include overview of computer systems, Python environment setup, Python language
overview, command line interface, numbers, string formatting, sequences, dictionaries and sets, control flow,
exception, file, function, recursion, object orientation, inheritance, polymorphism, and modules. The
programming environment will be primarily text-based in Unix environment, although graphical user interface
(IDLE) and web-based (Jupyter) will also be demonstrated.

Textbooks

One of the following (to be decided)

- David I. Schneider, An Introduction to Programming Using Python, Global Edition, Pearson, 2016.
- Tony Gaddis, Starting Out with Python, Global Edition, Fourth Edition, Pearson, 2019.

References

- Mark Summerfield, Programming in Python 3: A Complete Introduction to the Python Language, Second
Edition, Addison-Wesley, 2010, Person Education, Inc., Boston, MA USA.
- Python website, www.python.org


Teaching Method

- 2 hours of recorded lecture and 1 hour of in-person discussion per week.

Syllabus

Week 1 Introduction, environment setup
Week 2 Language overview
Week 3 Basic data types, command line
Week 4 Command line interface (cont'd), strings, formatting
Week 5 Sequence (lists, tuples, strings), dictionaries, sets
Week 6 Control flow (if-elif-else, while-loop, for-loop)
Week 7 Exceptions, files
Week 8 Functions
Week 9 Functions (continued), recursion
Week 10 object Oriented Programming Part 1: objects, Classes, Methods
Week 11 object Oriented Programming Part 2: Inheritance, Polymorphism
Week 12 Networking
Week 13 Modules and Applications
Week 14 Modules and Applications

Evaluation

15% midterm
25% final
40% assignments
5% participation
15% programming project

Website

To be announced