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 2020/2021
Table of content
Book and notes
The official book of the course, Computational Thinking and Programming book, is available online in PDF format. 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.
All the lecture notes and additional material of the laboratory are available at https://comp-think.github.io/2020-2021/laboratory/.
Material
Keys:
- the = theoretical lecture
- lab = laboratory session
- [14/10/20, the] Introduction to the course
- [14/10/20, the] Introduction to Computational Thinking
- book chapter: PDF
- slides: HTML
- exercises: 1, 2, 3
- solutions: 1, 2, 3
- [16/10/20, the] Algorithms
- book chapter: PDF
- slides: HTML
- exercises: 1, 2, 3
- solutions 1, 2, 3
- [19/10/20, the] Computability
- [21/10/20, the] Programming languages
- book chapter: PDF
- slides: HTML
- 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
- exercises: 1, 2, 3
- solutions 1, 2, 3
- [23/10/20, lab] 1st Lesson
- [26/10/20, the] Organising information: ordered structures
- [28/10/20, lab] 2nd Lesson
- [30/10/20, the] Brute-force algorithms
- book chapter: PDF
- slides: HTML
- from How To Code in Python:
- Chapter "How To Construct While Loops": all content
- Chapter "How To Construct For Loops": all content
- Chapter "Understanding Tuples": all content
- Chapter "Understanding Lists": section "Constructing a List with List Items"
- Chapter "How To Use List Methods": section "list.insert()"
- Python: stack_from_list.py, run_forever.py, linear_search.py, insertion_sort.py
- exercises: 1, 2, 3, 4, 5
- solutions 1, 2, 3, 4, 5
- [09/11/20, the] Organising information: unordered structures
- [11/11/20, lab] 3rd Lesson
- [13/11/20, the] Recursion
- [16/11/19, lab] 4th Lesson
- [20/11/20, the] Divide and conquer algorithms
- [23/11/20, the] Dynamic programming algorithms
- [25/11/20, lab] 5th Lesson
- [27/11/20, the] Organising information: trees
- [30/11/20, lab] 6th Lesson
- [02/12/20, the] Backtracking algorithms
- [04/12/20, lab] 7th Lesson
- [09/12/20, the] Organising information: graphs
- [11/11/20, lab] 8th Lesson
- [14/12/20, the] Project: specification
- [16/12/20, the] Greedy algorithms
- [16/12/20, the] Ask a thesis
Schedule
Date | Time | Title |
14/10/20 | 9:30-11:30 | Introduction to Computational Thinking |
16/10/20 | 12:30-14:30 | Algorithms |
19/10/20 | 9:30-11:30 | Computability |
21/10/20 | 9:30-11:30 | Programming Languages |
23/10/20 | 12:30-14:30 | Laboratory |
26/10/20 | 9:30-11:30 | Organising information: ordered structures |
28/10/20 | 9:30-11:30 | Laboratory |
30/10/20 | 12:30-14:30 | Brute-force algorithms |
09/11/20 | 9:30-11:30 | Organising information: unordered structures |
11/11/20 | 9:30-11:30 | Laboratory |
13/11/20 | 12:30-14:30 | Recursion |
16/11/20 | 9:30-11:30 | Laboratory |
20/11/20 | 12:30-14:30 | Divide and conquer algorithms |
23/11/20 | 9:30-11:30 | Dynamic programming algorithms |
25/11/20 | 9:30-11:30 | Laboratory |
27/11/20 | 12:30-14:30 | Organising information: trees |
30/11/20 | 9:30-11:30 | Laboratory |
02/12/20 | 9:30-11:30 | Backtracking algorithms |
04/12/20 | 12:30-14:30 | Laboratory |
09/12/20 | 9:30-11:30 | Organising information: graphs |
11/12/20 | 12:30-14:30 | Laboratory |
14/12/20 | 9:30-11:30 | Project: specification |
16/12/20 | 9:30-11:30 | Greedy algorithms |
Exam sessions
- 29 January 2021
- 15 March 2021
- 17 May 2021
- 14 June 2021
- 7 July 2021
- 20 September 2021
Links