Course Details
About This Course
The course "Programming: From Abstraction to Implementation" is designed to introduce students to essential programming concepts, using Python as the main tool.
This course aims to familiarize participants with computational thinking, enhancing their ability to understand and apply fundamental programming concepts, such as procedural and data abstraction, while explaining core principles and presenting a set of best practices in this field.
Target
This course is ideal for anyone looking to understand the fundamentals of programming and enhance their skills, particularly using Python.
Learning objectives
It is expected that participants will be able to program simple algorithms. Specifically, they should be capable of:
- Understanding and applying basic control commands.
- Understanding and using elementary data types.
- Grasping procedural and data abstraction concepts.
- Working with lists, dictionaries, and files in Python.
- Developing very simple programs in Python.
Requirements
None.
Contents covered
The course is organized around five main topics:
- The Art of Programming: introduction to basic concepts such as abstraction, algorithms, and program execution.
- Data Types: exploration of primitive types, including booleans, numbers, and strings, essential for data manipulation and writing expressions.
- Control Flow: study of structures that control program flow, such as assignment, input/output instructions, selection statements, loops (repetitions), and exception handling.
- Functions: focus on procedural abstraction with an emphasis on function definition and calls, including the basics of recursive functions.
- Data Abstraction: introduction to fundamental structured data types like tuples, lists, and dictionaries, along with file reading and writing.
By the end of the course, students will understand the fundamental principles of programming, be familiar with best practices, and be ready to start developing small, but well-structured programs.
Assessment and Certification
At the end of each content module, participants will find multiple-choice exercises to self-assess their knowledge. Additionally, a final exam with similar questions is provided. Participants scoring 60% or higher on the exam will receive a certificate of completion, without mention of the final grade.
Course Staff
Cláudia Antunes
Cláudia Antunes is an Associate Professor at Instituto Superior Técnico – Universidade de Lisboa (IST-UL), where she has been teaching since 1998, and she completed her PhD in Information Systems and Computer Engineering. She is one of the first European doctors in the Data Science domain from an engineering perspective, having proposed new Machine Learning methods and methodologies to deal with temporal data. Her main research interests focus on using domain knowledge and exploring temporality to automate the data science process, namely in the education context. She has coordinated and participated in several national and European research projects, having around one hundred international publications. Along with this work, she supervised around fifty students and has been lecturing data science and programming courses, both in graduation and post-graduation programs. She produced three MOOCs on Data Science and Programming, openly available through the MOOC Técnico platform. Cláudia is currently the chair of two non-profit local organizations: the Women in Engineering Affinity Group in IEEE Portugal and the Computer Science and Engineering College for the Southern Region of the Portuguese Engineering Association (Ordem dos Engenheiros).
Bibliography
João Pavão Martins, “Programação em Python. Introdução à programação utilizando múltiplos paradigmas”, Coleção Ensino da Ciência e da Tecnologia, 5ª Edição, 2023. ISBN: 978-989-8481-47-4