TDDE55 Data and Program Structures
Activities
Submission instructions
To submit your exercises and labs:- First you will need to add the following two lines to your .bashrc file:
alias tdde55-start="module add /courses/TDDE55/modulefiles/tdde55"
alias tdde55-stop="module rm /courses/TDDE55/modulefiles/tdde55"atom ~/.bashrc
orkate ~/.bashrc
. After restarting the terminal, you can then load the environment for TDDE55 in your console withtdde55-start
and unload it withtdde55-stop
. It enables a python environment which contains all the modules needed for the exercises and labs. - Create a git repository:
git init TDDE55
- In a terminal you can now:
cd TDDE55
jupyter notebook - Later when you are registered on webreg and you have received access to your gitlab repository you can do:
git remote add origin git@gitlab.liu.se:tdde55-20XX/gr-XX.git git push -u origin master
- Exercises should be put in the top folder of your repository.
- For the labs, follow the instructions.
- Download the submissions.txt file and save it in the root of your repository. Use that file to indicate when you are done with an exercise or a lab. Before submitting an exercise, make sure to select Kernel / Restart & Run All on thinlinc or a lab computer, as I will run this before looking at the exercise. For the labs, run the tests on thinlinc or a lab computer.
Teaching Activities
- Lecture 1 Introduction (01_introduction.pdf)
- Introduction the course
- Lecture 2 Concepts and models of programming languages (video slides live 16th Jan 15:15-17:00)
- Recommended week: 3
- Introduction to programming concepts (Chapter 1)
- Exercise 1: Parsing Programming Languages Ex1.ipynb
- Lecture 3 Declarative Computation Model (video slides live 16th Jan 15:15-17:00)
- Recommended week: 3
- Declarative Computation Model (Chapter 2)
- Substitution model (Section 1.1 and 4.2 of SICP)
- Exercise 2: Substitution model Ex2.ipynb
- Lecture 4 Declarative Programming Techniques (video slides live 23rd Jan 15:15-17:00)
- Lecture 5 Declarative Computation Implementation (video slides live 23rd Jan 15:15-17:00)
- Lecture 6 Declarative Concurrency (video slides live 30th Jan 15:15-17:00)
- Lecture 7 Message Passing Concurrency (video slides live 30th Jan 15:15-17:00)
- Recommended week: 8
- Message-Passing Concurrency (Chapter 5)
- Exercise 7: Message Passing Ex7.ipynb
- Lecture 8 Explicit State and Imperative Model (video slides live 27th Feb 15:15-17:00)
- Recommended week: 8-9
- Explicit State (Chapter 6)
- Environement Model of Evaluation (Section 3.2 of SICP)
- python tutor
- Exercise 8: Environment Model Ex8.ipynb
- Lecture 9 Imperative Programming Techniques (video slides live 27th Feb 15:15-17:00)
- Recommended week: 9
- Object-Oriented Programming (Chapter 7)
- Exercise 9: Imperative Programming and Object Orientation Ex9.ipynb
- Lecture 10 Imperative Programming Implementation (video slides SimpleBytecode.txt live 5th Mar 8:15-10:00)
- Recommended week: 10,15-16
- Computing with Register Machines (Chapter 5 of SICP)
- Lab 4: Bytecode executon Lab4.pdf
- Exercise 10: Bytecode generation Ex10.ipynb
- Lecture 11 Shared-State Concurrency (video slides live 5th Mar 8:15-10:00)
- Recommended week: 16
- Shared-state concurrency (Chapter 8) and Distributed (Chapter 11)
- Exercise 11: Shared-State Concurrency Ex11.ipynb
- Recommended week: 16-18
- Relational Programming (Chapter 9)
- Lab 5: SQpy Lab5.pdf
- Recommended week: 17-18
- Constraint Programming (Chapter 12)
- Exercise 12: Deterministic Finite Automaton Ex12.ipynb
- Recommended week: 18
- Recommended week: 18-19
- Recommended week: 19-20
- Lab 6: Garbage Collection Lab6.pdf
Page responsible: Cyrille Berger
Last updated: 2024-01-30