/2021-2022

The GitHub repository containing all the material related to the Computational Thinking and Programming course of the Digital Humanities and Digital Knowledge degree at the University of Bologna (a.a. 2021/2022).

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 2021/2022

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
  1. [11/10/21, the] Introduction to the course
  2. [13/10/21, the] Introduction to Computational Thinking
  3. [15/10/21, the] Algorithms
  4. [18/10/21, lab] 1st Lesson
    • book chapter: HTML

  5. [20/10/21, the] Computability
  6. [22/10/21, the] Programming languages
    • book chapter: PDF, Google Docs
    • 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

  7. [25/10/21, the] Organising information: ordered structures
  8. [27/10/21, lab] 2nd Lesson
  9. [29/10/21, the] Brute-force algorithms
  10. [08/11/21, lab] 3rd Lesson
  11. [10/11/21, the] Organising information: unordered structures

  1. [15/11/21, the] Recursion
  2. [17/11/21, lab] 4th Lesson
  3. [22/11/21, lab] 5th Lesson
  4. [24/11/21, the] Divide and conquer algorithms
  5. [29/11/21, lab] 6th Lesson
    • book chapter: HTML

  6. [01/12/21, the] Dynamic programming algorithms
  7. [06/12/21, the] Organising information: trees
  8. [13/12/21, the] Backtracking algorithms
  9. [15/12/21, the] Organising information: graphs
  10. [20/12/21, the] Greedy algorithms

Schedule

DateTimeTitle
11/10/2109:30-11:30Introduction to the course
13/10/2109:30-11:30Introduction to Computational Thinking
15/10/2112:30-14:30Algorithms
18/10/2109:30-11:30Laboratory
20/10/2109:30-11:30Computability
22/10/2112:30-14:30Programming languages
25/10/2109:30-11:30Organising information: ordered structures
27/10/2109:30-11:30Laboratory
29/10/2112:30-14:30Brute-force algorithms
08/11/2109:30-11:30Laboratory
10/11/2109:30-11:30Organising information: unordered structures
15/11/2109:30-11:30Recursion
17/11/2109:30-11:30Laboratory
22/11/2109:30-11:30Laboratory
24/11/2109:30-11:30Divide and conquer algorithms
29/11/2109:30-11:30Laboratory
01/12/2109:30-11:30Dynamic programming algorithms
06/12/2109:30-11:30Organising information: trees
13/12/2109:30-11:30Backtracking algorithms
15/12/2109:30-11:30Organising information: graphs
20/12/2109:30-11:30Greedy algorithms

Exam sessions

  • 28 January 2022
  • 14 March 2022
  • 16 May 2022
  • 20 June 2022
  • 15 July 2022
  • 5 September 2022

Links