Recorded Lectures 2020
Table of Contents
- 1. Lecture 1 – Introduction to course organisation, C-bootstrap labs kick-off
- 2. Lecture 2 – C-bootstrap lab review
- 3. Lecture 3 – Pointers and dynamic memory management
- 4. Lecture 4 – Hur kursen fungerar, mål, redovisningar, projektarbete, etc., etc.
- 5. Lecture 5 – Dynamic memory management, pointers, linked data structures
- 6. Lecture 6 – End of linked structures series
- 7. Lecture 7 – Introduction to Software Testing
- 8. Lecture 8 – Design and abstraction, bottom-up and top-down
- 9. Lecture 9 – Automatisering, profilering och optimering
- 10. Lecture 10 – Abstraktion, modularisering och informationsgömning
- 11. Lecture 11 – Skriva bra kod och Defensiv programmering
- 12. Lecture 12 – Bitmanipulering och preprocessorn
- 13. Lecture 15 (!) – Från C till Java
- 14. Lecture 16 – Skillnader mellan C och Java
- 15. Lecture 17 – Objektorienterad analys och design, konstruktorer, instantiering, referenser, klassvariabler, etc.
- 16. Lecture 18 – Objektorienterad analys och design, konstruktorer, instantiering, referenser, klassvariabler, etc.
- 17. Lecture 19 – Objektorienterad analys och design, konstruktorer, instantiering, referenser, klassvariabler, etc.
- 18. Lecture 20 – Liskovs substitutionsprincip, ekvivalens, identitet, overriding, overloading, exceptions
- 19. Lecture 21 – Testning och JUnit
- 20. Lecture 22 – Under huven på JVM. Bytekod. JIT. Reflection. Profiling.
- 21. Lecture 23 – Refactoring
- 22. Lecture 24 – Skräpsamling
- 23. Lecture 24 – Projektet och fas 3 samt början på slutet
- 24. Screencasts
1 Lecture 1 – Introduction to course organisation, C-bootstrap labs kick-off
(If anyone wonders why my face is half-cropped out, it is because the stupid recording feature on Zoom overlaid the participant window over my face, showing some students’ cameras during the lecture.)
2 Lecture 2 – C-bootstrap lab review
- Assignment
- Loops
- Importance of readability
- Mental models for programming
- Substitution model (works well with lots of pure functional programming)
- Platter model + graph paper model (works well with imperative C programming)
3 Lecture 3 – Pointers and dynamic memory management
- Memory
- Stack
- Heap
- Pointers and pointer variables
- Dynamic memory management
- Sneak peak at linked structures
4 Lecture 4 – Hur kursen fungerar, mål, redovisningar, projektarbete, etc., etc.
5 Lecture 5 – Dynamic memory management, pointers, linked data structures
6 Lecture 6 – End of linked structures series
7 Lecture 7 – Introduction to Software Testing
7.1 Regular Lecture
7.2 Bonus Material (that did not fit the original lecture slot)
Instead of recording the bonus material, I fleshed out the slides instead to be more self-contained (bonus material covers from “coverage” onwards).
8 Lecture 8 – Design and abstraction, bottom-up and top-down
Slide set (bonus material covers slides 61–72)
9 Lecture 9 – Automatisering, profilering och optimering
10 Lecture 10 – Abstraktion, modularisering och informationsgömning
11 Lecture 11 – Skriva bra kod och Defensiv programmering
12 Lecture 12 – Bitmanipulering och preprocessorn
13 Lecture 15 (!) – Från C till Java
14 Lecture 16 – Skillnader mellan C och Java
Slide set (Samma som föreläsning 15, från bild 40-)
15 Lecture 17 – Objektorienterad analys och design, konstruktorer, instantiering, referenser, klassvariabler, etc.
16 Lecture 18 – Objektorienterad analys och design, konstruktorer, instantiering, referenser, klassvariabler, etc.
17 Lecture 19 – Objektorienterad analys och design, konstruktorer, instantiering, referenser, klassvariabler, etc.
17.1 Part 1
17.2 Part 2
18 Lecture 20 – Liskovs substitutionsprincip, ekvivalens, identitet, overriding, overloading, exceptions
19 Lecture 21 – Testning och JUnit
20 Lecture 22 – Under huven på JVM. Bytekod. JIT. Reflection. Profiling.
21 Lecture 23 – Refactoring
22 Lecture 24 – Skräpsamling
23 Lecture 24 – Projektet och fas 3 samt början på slutet
24 Screencasts
24.1 Linked lists
I apologise in advance for the high resolution of this video. I hope it is possible to view anyway, but most certainly not on a small screen. In the, I will try to avoid making this mistake again in the future.
24.2 FreqCount.java
Av någon anledningen låter jag som en smurf. Något blev knas med ljudet.
Questions about stuff on these pages? Use our Piazza forum.
Want to report a bug? Please place an issue here. Pull requests are graciously accepted (hint, hint).
Nerd fact: These pages are generated using org-mode in Emacs, a modified ReadTheOrg template, and a bunch of scripts.
Ended up here randomly? These are the pages for a one-semester course at 67% speed on imperative and object-oriented programming at the department of Information Technology at Uppsala University, created by Tobias Wrigstad.