Upon successful completion of this teaching unit, students will be able to develop robust, maintainable, and efficient Python code, with particular attention to the analysis and manipulation of datasets, and simple multimedia processing, including image and video analysis.
This teaching unit offers a comprehensive introduction to Python programming with a strong emphasis on writing robust, maintainable, and efficient code. Designed for students with little to no prior programming experience, the course progressively builds skills in core Python concepts and advanced techniques for data manipulation and multimedia processing.
Students will learn to analyze and manipulate datasets using Python’s powerful libraries, such as Pandas and NumPy, and gain hands-on experience in processing images and videos using tools like OpenCV and PIL. Through practical assignments and projects, students will develop the ability to write clean, modular code and apply it to real-world problems in data science and multimedia applications.
By the end of the teaching unit, students will be equipped to:
This teaching unit employs a blended and hands-on teaching approach designed to foster both conceptual understanding and practical proficiency in Python programming. The teaching methods include:
Students with valid certifications for Specific Learning Disorders (SLDs), disabilities or other educational needs are invited to contact the teacher and the School's contact person for disability at the beginning of teaching to agree on possible teaching arrangements that, while respecting the teaching objectives, take into account individual learning patterns. Contacts of the School's disability contact person can be found at the following link Comitato di Ateneo per l’inclusione delle studentesse e degli studenti con disabilità o con DSA | UniGe | Università di Genova
The teaching unit will cover the following aspects of Python programming:
Allen B. Downey, Think Python: How to Think Like a Computer Scientist (2nd Edition), O’Reilly Media, 2015. A beginner-friendly introduction to programming concepts using Python.
Jake VanderPlas, Python Data Science Handbook, O’Reilly Media, 2016. Covers essential tools for data science in Python, including NumPy, Pandas, Matplotlib, and Scikit-learn.
Charles Severance, Python for Everybody: Exploring Data Using Python 3, CreateSpace, 2016. A gentle introduction to Python with a focus on data handling and practical applications.
Mark Lutz, Learning Python (5th Edition), O’Reilly Media, 2013. A comprehensive introduction to Python, covering both fundamental and advanced topics.
Wes McKinney, Python for Data Analysis (3rd Edition), O’Reilly Media, 2022. Focuses on data wrangling with Pandas, NumPy, and Jupyter—ideal for the data analysis portion of the course.
Adrian Rosebrock, Practical Python and OpenCV (3rd Edition), PyImageSearch, 2016. A hands-on guide to image and video processing using OpenCV and Python.
Python Official Documentation
Pandas Documentation
NumPy Documentation
OpenCV-Python Tutorials
Jupyter Project
Ricevimento: On request
Ricevimento: Please write an email to: andrea.sciarrone@unige.it
The timetable for this course is available here: EasyAcademy
The final exam is designed to assess students’ understanding and practical application of the core concepts covered throughout the course. It evaluates both theoretical knowledge and hands-on programming skills in Python, with a focus on data manipulation and multimedia processing.
Format
Duration: 2 hours
Type: Written and practical (computer-based)
Structure:
Section A – Conceptual Questions (30%) Short-answer and multiple-choice questions covering Python syntax, data structures, object-oriented programming, and key libraries (e.g., Pandas, NumPy, OpenCV).
Section B – Code Analysis and Debugging (30%) Students will analyze, interpret, and correct Python code snippets related to data and multimedia tasks.
Section C – Programming Task (40%) A hands-on coding exercise where students write a complete Python script to solve a problem involving dataset manipulation or basic image/video processing.
1. Weekly Assignments (30%)
2. Midterm Quiz (10%)
3. Final Project (30%)
4. Final Exam (20%)
5. Participation and Engagement (10%)