[major=AI | course_id=PFP191 | syllabus_id=12224 | semester=1 | combo=core | title=Programming Fundamentals with Python]
Course ID: PFP191
Title EN: Programming Fundamentals with Python
Title VI: Cơ sở lập trình với Python
Credits: 3.0
Prerequisites: 
Description: - Knowledge about programming language has become an essential part of an education in computer science because the realization of ideas, approaches, models, and algorithms is extremely important for the field of education and research as well as production. In order to deploy from an idea to a product, programming language tools are required.
- In recent years, python has emerged as a popular, powerful, multitasking and widely applicable 3rd generation language, especially in some new technology fields such as AI, Fintech, Data Science, IoT, and so on.
- This course covers the essential aspects of programming, including fundamental concepts, coding design, and the Python programming language, with an emphasis on object-oriented programming (OOP), given its importance for advanced software development and subsequent courses.
Student tasks: - Students must attend at least 80% of contact slots in order to be accepted to the final examination.
- Student is responsible to do all exercises given by instructor in class or at home and submit on time
- Constantly follow https://flm.fpt.edu.vn/ for up-to-date course information regarding assignment submission and feedback on assignments and project work.
Tools: Visual Studio Code, Google Colab
Course type: traditional
Decision: 1286/QĐ-ĐHFPT dated 11/22/2024
Approved date: 2024-11-22
CLO1: Understand the development environment (IDE), programming concepts and python's world
[1] category=Assignment; type=on-going; weight=15.0; duration=28 slots; question_type=CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7; grading_guide=All subjects in syllabus; completion_criteria=; clos=>0
[2] category=Lab; type=on-going; weight=10.0; duration=90'/each; question_type=CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7; grading_guide=; completion_criteria=; clos=>0
[3] category=Practical Exam; type=on-going; weight=30.0; duration=85'/each; question_type=CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7; grading_guide=; completion_criteria=; clos=>0
[4] category=Progress Test; type=on-going; weight=15.0; duration=30'/each; question_type=CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7; grading_guide=Based on the progress on the class; completion_criteria=; clos=>0
[5] category=Final Exam; type=Final exam; weight=30.0; duration=60'/each; question_type=CLO1, CLO2, CLO3, CLO4, CLO5, CLO6, CLO7; grading_guide=All subjects in syllabus; completion_criteria=; clos=4
[1] desc=Python for Everybody Exploring Data Using Python 3; author=Charles R. Severance; publisher=Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Unported License; edition=1st; isbn=978-1530051120; main=True; online=True; note=http://do1.dr-chuck.com/pythonlearn/EN_us/pythonlearn.pdf
[2] desc=Python for Everybody (PY4E); author=Charles R. Severance; publisher=; edition=; isbn=; main=; online=True; note=https://www.py4e.com/
[3] desc=Python for Everybody Specialization; author=Charles R. Severance; publisher=; edition=; isbn=; main=; online=True; note=https://www.coursera.org/specializations/python
[4] desc=Python Programming and Numerical Methods - A Guide for Engineers and Scientists; author=; publisher=; edition=; isbn=; main=; online=True; note=https://pythonnumericalmethods.studentorg.berkeley.edu/notebooks/Index.html
Session 1: Chapter 1. Why should you learn to write programs? (Part 1)
1.1 Creativity and Motivation
1.2 Computer hardware architecture
1.3 Understanding programming
Topic: Offline; Teaching type: LO1; LO: I
ITU: Textbook, slides
Materials: PFP191_Mat
Download: Read chapter 1 in text book

Session 2: 1.4 Words and sentences
1.5 Conversing with Python
1.6 Terminology: Interpreter and compiler
Topic: Offline; Teaching type: LO1; LO: I
ITU: Textbook, slides
Download: Read chapter 1 in text book

Session 3: Chapter 1. Why should you learn to write programs? (Part 2)
1.7 Writing a program
1.8 What is a program?
1.9 The buiding blocks of programs
1.10 What could possibly go wrong?
1.11 Debugging
1.12 The learning journey
1.13 Introduce IDE
Topic: Offline; Teaching type: LO1; LO: I
ITU: Textbook, slides
Download: Read chapter 1 in text book

Session 4: Chapter 2. Variables, expressions, and statements (Part 1)
2.1 Values and types
2.2 Variables
2.3 Variable names and keywords
2.4 Statements
Topic: Offline; Teaching type: LO2; LO: I, T
ITU: Textbook, slides
Download: Read chapter 2 in text book
CLO2: Understand variables, expression and statement
Session 1: 2.5 Operators and operands
2.6 Expressions
Topic: Offline; Teaching type: LO2; LO: I, T
ITU: Textbook, slides
Download: Read chapter 2 in text book

Session 2: Chapter 2. Variables, expressions, and statements (Part 2)
2.7 Order of operations
2.8 Modulus operator
2.9 String operations
Topic: Offline; Teaching type: LO2; LO: I, T
ITU: Textbook, slides
Download: Read chapter 2 in text book

Session 3: 2.10 Asking the user for input
2.11 Comments
2.12 Choosing mnemonic variable names
2.13 Debugging
Topic: Offline; Teaching type: LO2; LO: I, T
ITU: Textbook, slides
Download: Read chapter 2 in text book

Session 4: Lab1 assistance
Topic: Offline; Teaching type: LO1, LO2; LO: U
ITU: Textbook, slides, lab's questions
Download: Do lab 1 as homework
CLO3: Understand Conditional Execution, Functions, Loop and Iterations
Session 1: Lab1 assistance (cont.)
Topic: Offline; Teaching type: LO1, LO2; LO: U
ITU: Textbook, slides, lab's questions
Download: Do lab 1 as homework

Session 2: Chapter 3. Conditional execution
3.1 Boolean expressions
3.2 Logical operators
3.3 Conditional execution
3.4 Alternative execution
Topic: Offline; Teaching type: LO3; LO: IT
ITU: Textbook, slides
Download: Read chapter 3 in text book

Session 3: 3.5 Chained conditionals
3.6 Nested conditionals
3.7 Catching exceptions using try and except
3.8 Short-circuit evaluation of logical expressions
3.9 Debugging
Topic: Offline; Teaching type: LO3; LO: IT
ITU: Textbook, slides
Download: Read chapter 3 in text book

Session 4: Chapter 4. Iteration
4.1 Updating variables
4.2 The while statement
4.3 Infinite loops
4.4 Finishing iterations with continue
Topic: Offline; Teaching type: LO3; LO: IT
ITU: Textbook, slides
Download: Read chapter 5 in text book
CLO4: Understand Strings
Session 1: 4.5 Definite loops using for
4.6 Loop patterns
4.7 Debugging
Topic: Offline; Teaching type: LO3; LO: IT
ITU: Textbook, slides
Download: Read chapter 5 in text book

Session 2: Chapter 5. Functions (Part 1)
5.1 Function calls
5.2 Built-in functions
5.3 Type conversion functions
Topic: Offline; Teaching type: LO3; LO: I, T
ITU: Textbook, slides
Download: Read chapter 4 in text book

Session 3: 5.4 Math functions
5.5 Random numbers
5.6 Adding new functions
Topic: Offline; Teaching type: LO3; LO: I, T
ITU: Textbook, slides
Download: Read chapter 4 in text book

Session 4: Chapter 5. Functions (Part 2)
5.7 Definitions and uses
5.8 Flow of execution
5.9 Parameters and arguments
Topic: Offline; Teaching type: LO3; LO: I, T
ITU: Textbook, slides
Download: Read chapter 4 in text book
CLO5: Understand Files
Session 1: 5.10 Fruitful functions and void functions
5.11 Why functions?
5.12 Debugging
Topic: Offline; Teaching type: LO3; LO: I, T
ITU: Textbook, slides
Download: Read chapter 4 in text book

Session 2: Lab 2 assistance
Topic: Offline; Teaching type: LO3; LO: U
ITU: 'Textbook, slides, lab's questions
Download: Do lab 2 as homework

Session 3: Lab 2 assistance (cont.)
Topic: Offline; Teaching type: LO3; LO: U
ITU: 'Textbook, slides, lab's questions
Download: Do lab 2 as homework

Session 4: Progress test 1
Topic: Offline; Teaching type: LO1, LO2, LO3; LO: I, U
ITU: Textbook, slides,assignment's questions
Download: Do the progress test on the class
CLO6: Understand List, Dictionaries, Tuples
Session 1: Chapter 6. Strings (Part 1)
6.1 A string is a sequence
6.2 Getting the length of a string using len
6.3 Traversal through a string with a loop
Topic: Offline; Teaching type: LO4; LO: I, T
ITU: Textbook, slides
Download: Read chapter 6 in text book

Session 2: 6.4 String slices
6.5 Strings are immutable
6.6 Loop and counting
Topic: Offline; Teaching type: LO4; LO: I, T
ITU: Textbook, slides
Download: Read chapter 6 in text book

Session 3: Chapter 6. Strings (Part 2)
6.7 The in operator
6.8 String comparison
6.9 String methods
Topic: Offline; Teaching type: LO4; LO: I, T
ITU: Textbook, slides
Download: Read chapter 6 in text book

Session 4: 6.10 Parsing strings
6.11 Format operator
6.12 Debugging
Topic: Offline; Teaching type: LO4; LO: I, T
ITU: Textbook, slides
Download: Read chapter 6 in text book
CLO7: Understand OOP and how to apply this technology to an actual application
Session 1: Chapter 7. Files
7.1. Persistence
7.2 Opening files
7/3 Text files and lines
7.4 Reading files
Topic: Offline; Teaching type: LO5; LO: IT
ITU: Textbook, slides
Download: Read chapter 7 in text book

Session 2: 7.5 Searching through a file
7.6 Letting the user choose the file name
7.7 Using try, except, and open
7.8 Writing files
7.9 Debugging
Topic: Offline; Teaching type: LO5; LO: IT
ITU: Textbook, slides
Download: Read chapter 7 in text book

Session 3: Lab 3 assistance
Topic: Offline; Teaching type: LO5; LO: U
ITU: Textbook, slides, lab's questions
Download: Do lab 3 as homework

Session 4: Lab 3 assistance (cont.)
Topic: Offline; Teaching type: LO5; LO: U
ITU: Textbook, slides, lab's questions
Download: Do lab 3 as homework
Session 1: Chapter 8. Lists (Part 1)
8.1 A list is a sequence
8.2 Lists are mutable
8.3 Traversing a list
Topic: Offline; Teaching type: LO6; LO: I, T
ITU: Textbook, slides
Download: Read chapter 8 in text book

Session 2: 8.4 List operations
8.5 List slices
8.6 List methods
Topic: Offline; Teaching type: LO6; LO: I, T
ITU: Textbook, slides
Download: Read chapter 8 in text book

Session 3: Chapter 8. Lists (Part 2)
8.7 Deleting elements
8.8 Lists and functions
8.9 Lists and strings
8.10 Parsing lines
Topic: Offline; Teaching type: LO6; LO: IT
ITU: Textbook, slides
Download: Read chapter 8 in text book

Session 4: 8.11 Objects and values
8.12 Aliasing
8.13 List arguments
8.14 Debugging
Topic: Offline; Teaching type: LO6; LO: IT
ITU: Textbook, slides
Download: Read chapter 8 in text book
Session 1: Chapter 9. Dictionaries
9.1 Dictionary as a set of counters
9.2 Dictionaries and files
9.3 Looping and dictionaries
Topic: Offline; Teaching type: LO6; LO: IT
ITU: Textbook, slides
Download: Read chapter 9 in text book

Session 2: 9.4 Advanced text parsing
9.5 Debugging
Topic: Offline; Teaching type: LO6; LO: IT
ITU: Textbook, slides
Download: Read chapter 9 in text book

Session 3: Chapter 10. Tuples (Part 1)
10.1 Tuples are immutable
Topic: Offline; Teaching type: LO6; LO: I, T
ITU: Textbook, slides
Download: Read chapter 10 in text book

Session 4: 10.2 Comparing tuples
Topic: Offline; Teaching type: LO6; LO: I, T
ITU: Textbook, slides
Download: Read chapter 10 in text book
Session 1: 10.3 Tuple assignment
Topic: Offline; Teaching type: LO6; LO: I, T
ITU: Textbook, slides
Download: Read chapter 10 in text book

Session 2: 10.4 Dictionaries and tuples
Topic: Offline; Teaching type: LO6; LO: I, T
ITU: Textbook, slides
Download: Read chapter 10 in text book

Session 3: Lab 4 assistance
Topic: Offline; Teaching type: LO6; LO: U
ITU: Textbook, slides, lab's questions
Download: Do lab 4 as homework

Session 4: Lab 4 assistance (cont.)
Topic: Offline; Teaching type: LO6; LO: U
ITU: Textbook, slides, lab's questions
Download: Do lab 4 as homework
Session 1: Chapter 14. Object-oriented programming
14.1 Introduction to OOP
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 2: 14.2 Classes and Objects
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 3: 14.3 Encapsulation and Data Hiding
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 4: 14.4 Abstraction and Modular Design
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4
Session 1: 14.5 Inheritance
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 2: 14.6 Polymorphism and Method Overloading
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 3: Assignment assistance
Topic: Offline; Teaching type: LO1, LO2, LO3, LO4, LO5, LO6, LO7; LO: U
ITU: Textbook, slides,assignment's questions
Download: Do assignment as homework

Session 4: Assignment assistance (cont.)
Topic: Offline; Teaching type: LO1, LO2, LO3, LO4, LO5, LO6, LO7; LO: U
ITU: Textbook, slides,assignment's questions
Download: Do assignment as homework
Session 1: 14.7 Using Objects and Work with OOP Programs
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 2: 14.8 Object Lifecycle
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 3: Progress test 2
Topic: Offline; Teaching type: LO1, LO2, LO3, LO4, LO5, LO6, LO7; LO: U
ITU: Textbook, slides, lab's questions
Download: Do the progress test on the class

Session 4: 14.9 Advanced OOP Concepts and Design Patterns
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4
Session 1: 14.10 Case Studies
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 2: 14.11 Summary
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 3: Lab 5 assistance
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4

Session 4: Lab 5 assistance (cont.)
Topic: Offline; Teaching type: LO7; LO: I, T
ITU: Textbook, slides
Download: Read chapter 7 in text book 4
Session 1: Assignment review
Topic: Offline; Teaching type: LO1, LO2, LO3, LO4, LO5, LO6, LO7; LO: U
ITU: 'Textbook, slides,assignment's questions
Download: Present the result of the assignment

Session 2: Assignment review (cont.)
Topic: Offline; Teaching type: LO1, LO2, LO3, LO4, LO5, LO6, LO7; LO: U
ITU: 'Textbook, slides,assignment's questions
Download: Present the result of the assignment

Session 3: Review
Topic: Offline; Teaching type: All Los; LO: 
ITU: 
Download: Review the course

Session 4: Review
Topic: Offline; Teaching type: All Los; LO: 
ITU: 
Download: Review the course