Computational Thinking and Programming
This space contains all the material related to the Computational Thinking and Programming course of the Digital Humanities and Digital Knowledge degree at the University of Bologna.
Academic year 2024/2025
Table of content
Book and notes
The official book of the course, Computational Thinking and Programming book, is available online in PDF format. Google Docs links are provided for each chapter to enable students to comment and suggest improvements. The suggested accompanying book for Python coding, How To Code in Python by Lisa Tagliaferri, is also freely available online in PDF and EPUB formats.
Material
Keys:
- the = theoretical lecture
- lab = laboratory session
- wor = workshop session
- [14/10/24, the] Introduction to the course
- [16/10/24, the] Introduction to Computational Thinking
- [18/10/24, the] Algorithms
- [23/10/24, lab] Laboratory: 1st Lesson
- [25/10/24, the] Computability
- [11/11/24, the] Programming languages
- book chapter: PDF, Google Docs
- from How To Code in Python:
- Chapter "Understanding Data Types": introductory paragraphs and sections "Background", "Numbers", "Floating-Point Numbers", "Booleans", "Strings"
- Chapter "How To Use Variables": introductory paragraphs and sections "Understadning Variables", "Naming Variables: Rules and Style", "Reassigning Variables", "Multiple Assignment"
- Chapter "Understanding Boolean Logic": all content
- Chapter "How To Write Conditional Statements": all content
- Chapter "How To Define Functions": introductory paragraphs and sections "Defining a Function", "Working with Parameters", "Returning a Value"
- Python: first_algorithm_empty.py, first_algorithm_no_assignments.py, first_algorithm.py
- [13/11/24, the] Organising information: ordered structures
- [15/11/24, lab] Laboratory: 2nd Lesson
- [18/11/24, the] Brute-force algorithms
- [20/11/24, the] Organising information: unordered structures
- [22/11/24, lab] Laboratory: 3rd Lesson
- [25/11/24, the] Recursion
- [27/11/24, the] Divide and conquer algorithms
- [29/11/24, lab] Laboratory: 4th Lesson
- [2/12/24, the] Dynamic programming algorithms
- [4/12/24, the] Organising information: trees
- [6/12/24, lab] Laboratory: 5th Lesson
- [9/12/24, lab] Laboratory: 6th Lesson
- [11/12/24, the] Backtracking algorithms
- [13/12/24, the] Organising information: graphs
- [16/12/24, the] Greedy algorithms
- [17/12/24, wor] Workshop
Schedule
14/10/24 | 09:00-11:00 | Introduction to the course |
16/10/24 | 09:00-11:00 | Introduction to Computational Thinking |
18/10/24 | 12:00-14:00 | Algorithms |
23/10/24 | 09:00-11:00 | Laboratory: 1st Lesson |
25/10/24 | 12:00-14:00 | Computability |
11/11/24 | 09:00-11:00 | Programming languages |
13/11/24 | 09:00-11:00 | Organising information: ordered structures |
15/11/24 | 09:00-11:00 | Laboratory: 2nd Lesson |
18/11/24 | 09:00-11:00 | Brute-force algorithms |
20/11/24 | 09:00-11:00 | Organising information: unordered structures |
22/11/24 | 09:00-11:00 | Laboratory: 3rd Lesson |
25/11/24 | 09:00-11:00 | Recursion |
27/11/24 | 09:00-11:00 | Divide and conquer algorithms |
29/11/24 | 09:00-11:00 | Laboratory: 4th Lesson |
2/12/24 | 09:00-11:00 | Dynamic programming algorithms |
4/12/24 | 09:00-11:00 | Organising information: trees |
6/12/24 | 09:00-11:00 | Laboratory: 5th Lesson |
9/12/24 | 09:00-11:00 | Laboratory: 6th Lesson |
11/12/24 | 09:00-11:00 | Backtracking algorithms |
13/12/24 | 09:00-11:00 | Organising information: graphs |
16/12/24 | 09:00-11:00 | Greedy algorithms |
17/12/24 | 09:00-12:00 | Workshop |
Links