SLIDE 1 TDDE45 - Lecture 8: Wrapping Up
Martin Sjölund
Department of Computer and Information Science Linköping University
2019-10-17
SLIDE 2
Part I The exam
SLIDE 3
What is the purpose of the exam? (2hp)
◮ Not showing that you fulfjlled the intended learning outcomes ◮ The purpose of the grades (5/A or 4/B) is to show how much you learned beyond the intended learning outcomes ◮ The labs and seminars show that you fulfjlled the intended learning outcomes and deserve a passing grade (3/C) ◮ The exam is used to assess individual abilities (the labs and seminars are done in groups and is hard to document who does what)
SLIDE 4
What could be on the exam?
◮ Anything from the labs ◮ Anything from the seminars ◮ Anything from the articles you read ◮ Anything from the book ◮ Combining the knowledge gained in the course to solve problems
SLIDE 5
Aids during the exam
◮ The IDA lab computers (with most of the internet blocked) ◮ A PDF of design patterns / design principles (from Wikipedia) will be available (also on the course homepage). ◮ Dicitionary English ↔native language (physical book) ◮ Design Patterns: Elements of Reusable Object-Oriented Software (physical book). (Alternative to Wikipedia) You are not expected to memorize every design pattern out there.
SLIDE 6 Format of the exam
- 1. Read me
- 2. Explain me
- 3. Fix me
- 4. Design me
The types of questions are subject to change for re-exams, etc. Since there are only 4 assignments and 6 themes of the course, every topic is not covered on every exam.
SLIDE 7
How to get the good grades?
Each assignment is scored (0/3/4/5) and the fjnal grade depends on frequency of good scores in the assignments. Number of 3’s Number of 4’s Number of 5’s Final grade: 5 2 2 Final grade: 5 3 Final grade: 4 2 Final grade: 4 3 Final grade: 4 2 2 Final grade: 3 1 Final grade: 3 1 1 Final grade: 3 3
SLIDE 8
How to get a passing grade?
By passing UPG1 and LAB1 you will have fulfjlled the intended learning outcomes and we are sure you did enough work to pass. After the exam, whether you failed or did not attend you are given the possibility to give up on re-exams to try to get grades 4 and 5. Simply email Martin to get a fjnal grade in the course (grade 3/C; requires having passed UPG1 and LAB1). The result will then be reported in a big batch after the exam and deadline for the lab/seminar reports has passed.
SLIDE 9
Part II Course Summary
SLIDE 10
Design Principles: SOLID
SOLID Motivational Posters by Derick Bailey, used under CC BY-SA 3.0 US
SLIDE 11
Statically typed languages are good for design
Duck typing (Python) has no guarantees. If something fjts, it works.
SLIDE 12
Design patterns
◮ Strategy ◮ Factory Method ◮ Decorator ◮ Template Method ◮ Composite ◮ Abstract Factory ◮ Singleton ◮ Builder ◮ Adapter ◮ Bridge ◮ Observer ◮ Chain of Responsibility ◮ Memento ◮ Command
SLIDE 13
Cross-platform design construction
◮ Difgerences between platforms ◮ Internationalization / localization ◮ Unicode
SLIDE 14
Domain-specifjc languages
◮ Template languages ◮ Shell / scripting languages ◮ Build systems ◮ Building images ◮ Document languages ◮ Language recognition ◮ Special-purpose languages
SLIDE 15
Meta-programming
◮ Generative programming ◮ Template programming ◮ Refmective programming ◮ Macro programming
SLIDE 16
Debugging
◮ Caveman ◮ Debugger (dynamic) ◮ Simulator (dynamic) ◮ Static analysis (static)
SLIDE 17
Testability
◮ Inversion of Control / Dependency Injection ◮ Unpredictable behaviour ◮ Inversion of Control / Dependency Injection ◮ Fakes, mocking ◮ Inversion of Control / Dependency Injection
SLIDE 18
What you can do with design?
◮ Read design ◮ Improve design ◮ Design from scratch ◮ Design with DSLs, meta-programming, localization in mind
SLIDE 19
www.liu.se