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.
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.
Keys:
- the = theoretical lecture
- lab = laboratory session
- [12/10/22, the] Introduction to the course
- slides: HTML
- [14/10/22, the] Introduction to Computational Thinking
- [17/10/22, the] Algorithms
- [19/10/22, lab] 1st Lesson
- book chapter: HTML
- [21/10/22, the] Computability
- [24/10/22, 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
- [26/10/22, lab] 2nd Lesson
- book chapter: HTML
- [28/10/22, the] Organising information: ordered structures
- book chapter: PDF, Google Docs
- slides: HTML
- from How To Code in Python:
- Chapter "How To Write Comments": all content
- Chapter "How To Import Modules": all content
- Chapter "Understanding Data Types": section "Lists"
- Chapter "Understanding Lists": introductory paragraphs and section "Indexing Lists"
- Chapter "How To Use List Methods": introductory paragraphs and sections "list.append()", "list.extend()", "list.remove()"
- Python: define_functions.py, list_instructions.py, stack_instructions.py, queue_instructions.py
- exercises: 1, 2, 3
- solutions: 1, 2, 3
- [09/11/22, the] Brute-force algorithms
- book chapter: PDF, Google Docs
- 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
- [11/11/22, lab] 3rd Lesson
- book chapter: HTML
- [14/11/22, the] Organising information: unordered structures
- book chapter: PDF, Google Docs
- slides: HTML
- from How To Code in Python:
- Chapter "Understanding Data Types": section "Dictionaries"
- Chapter "Understanding Dictionaries": all content
- Chapter "How To Construct Classes and Define Objects": all content
- Python: set_instructions.py, dictionary_instructions.py
- exercises: 1, 2, 3
- solutions: 1, 2, 3
- [16/11/22, lab] 4th Lesson
- book chapter: HTML
- [21/11/22, the] Recursion
- book chapter: PDF, Google Docs
- slides: HTML
- Python: run_forever_recursive.py, multiplication.py
- exercises: 1, 2
- solutions: 1, 2
- [23/11/22, the] Divide and conquer algorithms
- book chapter: PDF, Google Docs
- slides: HTML
- Python: immutable_values.py, mutable_values.py, immutable_and_mutable_variables.py, merge.py, merge_sort.py
- exercises: 1, 2, 3
- solutions: 1, 2, 3
- [28/11/22, lab] 5th Lesson
- book chapter: HTML
- [30/11/22, the] Dynamic programming algorithms
- book chapter: PDF, Google Docs
- slides: HTML
- Python: fib_dc.py, fib_dp.py
- exercises: 1, 2
- solutions: 1, 2
- [05/12/22, lab] 6th Lesson
- book chapter: HTML
- [12/12/22, the] Organising information: trees
- book chapter: PDF, Google Docs
- slides: HTML
- Python: tree_instructions.py
- exercises: 1, 2
- solutions: 1, 2
- [14/12/22, the] Backtracking algorithms
- book chapter: PDF, Google Docs
- slides: HTML
- Python: peg_solitaire.py
- exercises: 1, 2
- solutions: 1, 2
- [19/12/22, the] Organising information: graphs
- book chapter: PDF, Google Docs
- slides: HTML
- Python: graph_instructions.py, multigraph_instructions.py, graph_attribute_instructions.py
- exercises: 1, 2
- solutions: 1, 2
- [21/12/22, the] Greedy algorithms
- book chapter: PDF, Google Docs
- slides: HTML
- Python: line_wrap.py
- exercises: 1, 2
- solutions: 1, 2
Date | Time | Title |
---|---|---|
12/10/22 | 09:30-11:30 | Introduction to the course |
14/10/22 | 12:30-14:30 | Introduction to Computational Thinking |
17/10/22 | 09:30-11:30 | Algorithms |
19/10/22 | 09:30-11:30 | 1st Lesson |
21/10/22 | 12:30-14:30 | Computability |
24/10/22 | 09:30-11:30 | Programming languages |
26/10/22 | 09:30-11:30 | 2nd Lesson |
28/10/22 | 12:30-14:30 | Organising information: ordered structures |
09/11/22 | 09:30-11:30 | Brute-force algorithms |
11/11/22 | 12:30-14:30 | 3rd Lesson |
14/11/22 | 09:30-11:30 | Organising information: unordered structures |
16/11/22 | 09:30-11:30 | 4th Lesson |
21/11/22 | 09:30-11:30 | Recursion |
23/11/22 | 09:30-11:30 | Divide and conquer algorithms |
28/11/22 | 09:30-11:30 | 5th Lesson |
30/11/22 | 09:30-11:30 | Dynamic programming algorithms |
05/12/22 | 09:30-11:30 | 6th Lesson |
12/12/22 | 09:30-11:30 | Organising information: trees |
14/12/22 | 09:30-11:30 | Backtracking algorithms |
19/12/22 | 09:30-11:30 | Organising information: graphs |
21/12/22 | 09:30-11:30 | Greedy algorithms |