Introduction to Python Programming for AI
Python programming fundamentals: variables, control flow, data structures, and libraries essential for AI development.
Attendance at both weekly practical sessions is mandatory. You must submit your work during the session to be marked as present. Missed practicals count as absences.
Learning objectives
This course aims to teach students how to solve problems by means of a computer program. Learning Python is actually a side effect that happens because the programming language used to solve problems during the course is Python. However, the knowledge acquired by the students during the course is transferable to other programming languages like Java or C. Knowledge and understanding: at the end of the course, students will be familiar with basic programming concepts, such as data types, data structures, variables, expressions, control flow statements, methods, classes, and error-handling. Applying knowledge and understanding: Students will be able to write and read small to medium-sized programs when given a natural language description of the problem. Also, students will learn how to read, debug, and fix existing programs. Communication skills: Students will be able to read code written by others and write code such that others can understand it. Both, using pen and paper and computer. Learning skills: Students will learn how to read technical documentation (e.g., programming language and library references) and how to use programming as a tool for solving problems. Making judgments: Students will be able to judge whether a given program solves or not a certain problem.
This course will equip students with a wide range of programming skills. They will learn how to write programs for solving problems using different Data types (e.g., int, boolean, float, string, and custom types), Data structures (e.g., lists, sets, dictionaries, tuples, and matrices), expressions, control flow statements (e.g., conditionals, and loops) Also, they will gain a thorough understanding of standard functions, learn how to define functions, error-handling, perform I/O tasks, and grasp the basics of Object-Oriented Programming. Finally, students will also learn how to: write and debug programs using pen and paper, write and debug programs using a professional IDE, and write and debug programs using computational notebooks.
Assessment
Programming assignments (10%): There are several programming assignments to be developed individually that are non-resit. This means completing them on time and to the best of your abilities is important. In class quizes (10%): these are exercises/quizes/participation during the lecture and/or practical sessions. Final exam (80%): this exam determines the course's final grade. Students must obtain at least a 5.0 on the midterm exam to be able to take the final exam. Also: There will be a resit exam. Possible bonus points are not transferable to the resit exam. Students from previous years cannot transfer grades for assignments.
Teaching methods
There will be two lectures per week, as well as two practical sessions per week. Attendance to both practical sessions is mandatory. There is also a significant amount of programming exercises to practice the different programming concepts taught during the course. The exercises will be pen and paper and computer-based.
Literature
The book used in this course is Think Python: How to Think Like a Computer Scientist, Allen B. Downey, Green Tea Press. The book is available online at: https://greenteapress.com/wp/think-python-2e/.