- THEORY: Basics of Computation: https://ebookcentral.proquest.com/lib/th-deggendorf/reader.action?docID=6640815
- PRACTICE: Basic Python: https://ebookcentral.proquest.com/lib/th-deggendorf/reader.action?docID=6797218
- EXERCISES: https://classroom.github.com/classrooms/98897122-22s_swen
- 20-30min | Brief theoretical input on basic topics of automation and computation.
- 60-90min | Practical Exercises and Coding Examples with Python
- 60-90min | Review and joint development of selected Homework Exercises
For each session there are a set of exercises listed here on GitHub Classroom: https://classroom.github.com/classrooms/98897122-22s_swen
We will do the first batch of exercises for Session 1 together. From Sesssion 2 onwards you are encouraged to prepare all exercises associated to a certrain session. I will provide feedback and guidance on the side. For each session, I will pick some difficult or important exercises and discuss solutions with the class.
The Exam will be written and online. It will ask about theory and require you to work on several coding exercise.
-
What would you like to automate?
-
What do you think about DAOs?
The ideal of a decentralized autonomous organization is easy to describe: it is an entity that lives on the internet and exists autonomously, but also heavily relies on hiring individuals to perform certain tasks that the automaton itself cannot do.
- Vitalik Buterin, Ethereum Foundation
- https://subpixel.space/entries/the-desire-for-full-automation/
- https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide/
- From REPL commands to simple scripts | Chapter 1, p.1-36
- https://classroom.github.com/a/QE3x_hhh
- https://classroom.github.com/a/kuewOJNA
- https://classroom.github.com/a/KARXRhL6
- https://classroom.github.com/a/G-YyPO-w
- https://classroom.github.com/a/e5YuqVvX
- https://classroom.github.com/a/PgiCkqlQ
- https://classroom.github.com/a/M1h508Bg
- https://classroom.github.com/a/zHuZThq7
- https://classroom.github.com/a/pyRnT4ov
Theory: What are the layers of abstraction by creating different Versions of Hello World in Assembler, C, Python | Chapter 1, p. 1-28, Chapter 2, p.29-38
- Assembly (NASM): https://github.com/netwide-assembler/nasm (Example: https://en.wikipedia.org/wiki/Assembly_language#:~:text=A%20program%20written%20in%20assembly,ops)%2C%20comments%20and%20data.)
- C Compiler: https://github.com/mortdeus/legacy-cc
- CPython: https://github.com/python/cpython
- https://archive.org/details/programsforelect00wilk/mode/2up
- https://www.nand2tetris.org/course
- https://github.com/Schweigi/assembler-simulator (https://www.mschweighauser.com/make-your-own-assembler-simulator-in-javascript-part1/)
- https://www.youtube.com/watch?v=tpIctyqH29Q&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo (Videos 1-10 explain really neatly all the abstraction levels between logic gates and programs)
Python Built-in Data Types | Chapter 2, pp. 37-82
- https://classroom.github.com/a/U-O8V5DV
- https://classroom.github.com/a/rdHFbhiB
- https://classroom.github.com/a/fGsmSeXs
- https://classroom.github.com/a/z4yFStmT
- https://classroom.github.com/a/UGcxRUbr
- https://classroom.github.com/a/5GlYdenA
- https://classroom.github.com/a/G_CL1Lr4
- https://classroom.github.com/a/BLWxgkfH
- https://classroom.github.com/a/Qfsy57Cy
- https://classroom.github.com/a/wa6DDPgu
- https://classroom.github.com/a/4Mwb_puU
- https://classroom.github.com/a/81EFBPgA
- https://classroom.github.com/a/VO0GPmXX
- https://classroom.github.com/a/me07QrYB
Theory: Algorithm and Data Structure | Chapter 3, pp. 53-81
Practice: Conditionals and Iteration | Chapter 3, pp. 83-114
- https://classroom.github.com/a/As4MXk8j
- https://classroom.github.com/a/rMEa0uqh
- https://classroom.github.com/a/dso1cD_f
- https://classroom.github.com/a/w5anpxRN
- https://classroom.github.com/a/Up7m9GmN
- https://classroom.github.com/a/tQtc3fxZ
- https://classroom.github.com/a/zruPbNUB
- https://classroom.github.com/a/2Y9uwrgE
- https://classroom.github.com/a/wstQKvY-
- https://classroom.github.com/a/CZcHVogi
- https://classroom.github.com/a/11vEzBif
- https://classroom.github.com/a/XAPY-tFV
- https://classroom.github.com/a/egtY89S3
- https://classroom.github.com/a/4Fk0J8hv
- https://classroom.github.com/a/gzG6S-6M
-
Theory: Programming Paradigms | Chapter 3, pp.38-51 Practice:
-
Functions, the Building Blocks of Code Chapter 4, pp. 115-156
-
https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming
-
Theory: Clean Code - Principles
-
Practice: Comprehensions and Generators | Chapter 5, pp. 157-194
-
Theory: Functions, data, classes and objects
-
Practice: OOP, Decorators, and Classes - Chapter 6, pp.195-238
Additional Material:
-
Theory: NONE
-
Practice: Exceptions and Context Managers | Chapter 7, pp. 239-256
-
Theory: Operating System | Chapter 4, pp.81-131
-
Practice: Files and Data Persistence | Chapter 8, pp. 257-294
-
Theory: NONE
-
Practice: Collective Session on current issues and status of learning
-
Theory: Software Development Lifecycle | Chapter A, 241-247
-
Practice: Testing | Chapter 10, pp.315-342
-
Theory: Software Engineering Practices | Chapter B, pp. 249-267
-
Practice: Debugging and Profiling | Chapter 11, pp. 343-364
-
Theory: Computer Networks | Chapter 6
-
Practice: GUIs and Scripting | Chapter 12, pp. 365-392
-
Theory: NONE
-
Practice: Data Science in Brief | [Chapter 13 ]
-
Theory: Computer Security and Cloud Computing Chapters 7 and 8, 195-240
-
Practice: API Development | Chapter 14, pp. 425-476
-
Theory: NONE
-
Practice: Collective Session on current issues and status of learning
Advanced Python: https://ebookcentral.proquest.com/lib/th-deggendorf/reader.action?docID=5353672 Data Science: https://ebookcentral.proquest.com/lib/th-deggendorf/reader.action?docID=6739165
Theory: Practice: - Cryptography and Tokes | Chapter 9, pp. 295-314