TIG167
Contents
- 1 Schedule 2018
- 1.1 Bonus course material
- 1.2 Preparation
- 1.3 Week 1 (w 45)
- 1.4 Week 2 (w 46)
- 1.5 Week 3 (w 47)
- 1.6 Week 4 (w 48)
- 1.7 Week 5 (w 49)
- 1.8 Week 6 (w 50)
- 1.9 Week 7 (w 51)
- 2 Schedule 2017
- 2.1 2017-11-01
- 2.2 2017-11-06
- 2.3 2017-11-08
- 2.4 2017-11-10
- 2.5 2017-11-13
- 2.6 2017-11-15
- 2.7 2017-11-20
- 2.8 2017-11-22
- 2.9 2017-11-24
- 2.10 2017-11-27
- 2.11 2017-11-28
- 2.12 2017-11-30
- 2.13 2017-12-01
- 2.14 2017-12-04
- 2.15 2017-12-06
- 2.16 2017-12-11
- 2.17 2017-12-13
- 2.18 2017-12-15
- 2.19 2017-12-18
- 2.20 2017-12-20
Schedule 2018
Bonus course material
This year, we offer you our Datorkunskap för IT-studenter (Swedish) compendium, as bonus reading. It contains a thorough introduction to working in the command line. It is not mandatory reading, but we recommend it.
The main course material will be on this wiki, as usual.
Preparation
Make sure you (still) know Java
The following chapters (and their corresponding exercises) are recommended that you read in order to be prepared for this course:
- Chapter:Classes - Static members
- Chapter:Classes - final members
- Chapter:Classes - Using packages
- Chapter:Interfaces - Introduction
- Chapter:Interfaces - Implementing an interface
- Chapter:Exceptions - What is it
- Chapter:Exceptions - Two main types
- Chapter:Exceptions - Code examples
Install software
- Setup your environment according to these course material pages:
- Android Studio
Week 1 (w 45)
Wednesday 7/11 - course and project introduction
Preparation
10.15 - 12.00 Lecture
- Course intro
- Project intro
13.15 - 15.00 Supervision
Friday 9/11 - Introduction to HTTP, HTML and Json
Preparation
Study the following wiki pages:
10.15 - 12.00 Lecture (Server)
13.15 - 15.00 Supervision
Week 2 (w 46)
Monday 12/11 - Android - basics, resources, views
Preparation
Study the following material:
10.15 - 12.00 Lecture (Android)
We will discuss:
The remaining time, if any, is used as decided there then
13.15 - 15.00 Supervision
Wednesday 14/11 - Parsing Json from Java, Punk API workshop
Preparation
Study the following material:
- Introduction_to_JSON (includes parsing JSON)
- Note that it is good if you see all the lectures on that page (introduction to Json, you saw already, but the other two)
- Note also, that it is good if you do the exercises (click next at the bottom of the chapter page)
- Follow the instructions here, for how to get familiar with the Punk API: Workshop_Punk_API_-_Fetching_JSON_and_Parsing_JSON#Investigate_the_Punk_API_documentation
- If you can answer the question, you are good to go on the workshop
10.15 - 12.00 Lecture (Server)
- Workshop Punk API - Fetching JSON and Parsing JSON, only the following sections:
13.15 - 15.00 Supervision
Friday 16/11 - Java Collections
Preparation
Study the following material:
- Java Collections
- Read the examples and texts on that page
- See the video lectures
10.15 - 12.00 Lecture (Java)
We will discuss:
The remaining time, if any, is used as decided there then
Week 3 (w 47)
Monday 19/11 - Android - ListView, Volley
Preparation
Study the following material:
10.15 - 12.00 Lecture (Android)
We will discuss:
The remaining time, if any, is used as decided there then
13.15 - 15.00 Supervision
Primary focus:
Wednesday 21/11 - Java - Servlets and Winstone
Preparation
Study the following material:
- Java-Web:Workshop-Introduction_to_Servlets
- Java-Web:Introduction_to_Winstone
- Java-Web:Exercise_-_Introduction_to_Winstone
- Java-Web:Servlet_-_HTTP_response_codes
- Java-Web:Exercises_-_Servlet_-_HTTP_response_codes
10.15 - 12.00 Lecture (Server)
Workshop (together)
- Java-Web:Workshop-Introduction_to_Servlets
- Workshop: Introduction to Servlets: Introduction to Servlets (PDF)
We will discuss:
- Java-Web:Introduction_to_Winstone
- Java-Web:Exercise_-_Introduction_to_Winstone
- Java-Web:Servlet_-_HTTP_response_codes
- Java-Web:Exercises_-_Servlet_-_HTTP_response_codes
The remaining time, if any, is used as decided there then
13.15 - 15.00 Supervision
Friday 23/11 - Java - Design patterns - Factory, Singleton
Preparation
Study the following material:
10.15 - 12.00 Lecture (Design Patterns)
We will discuss:
The remaining time, if any, is used as decided there then
Week 4 (w 48)
Monday 26/11 - Android - Adding your own classes, Storage
Preparation
Study the following material:
10.15 - 12.00 Lecture (Android)
We will discuss:
The remaining time, if any, is used as decided there then
13.15 - 15.00 Supervision
Primary focus:
Wednesday 28/11 - Java - Creating Json from Java
Preparation
Study the following material:
- Creating JSON from Java (in particular the material on
org.json
)
10.15 - 12.00 Lecture (Server)
We will discuss:
- Creating JSON from Java (in particular the material on
org.json
)
The remaining time, if any, is used as decided there then
13.15 - 15.00 Supervision
Friday 30/11 - Java - Design patterns - Builder patterns
Preparation
10.15 - 12.00 Lecture (Design Pattern)
Week 5 (w 49)
Monday 3/12 - Java - Strings and I/O, Time API, Ternary operator, Arrays
Preparation
10.15 - 12.00 Lecture (Java)
13.15 - 15.00 Supervision
Primary focus:
Wednesday 5/12 - Java - Enums, Java 7 additions
Preparation
10.15 - 12.00 Lecture (Java)
13.15 - 15.00 Supervision
Friday 7/12 - Computer - Binary representation
Preparation
10.15 - 12.00 Lecture (Computer)
Week 6 (w 50)
Monday 10/12
Preparation
10.15 - 12.00 Lecture (Java)
13.15 - 15.00 Supervision
Primary focus:
Wednesday 12/12
Preparation
10.15 - 12.00 Lecture (Java)
13.15 - 15.00 Supervision
Friday 14/12
Preparation
10.15 - 12.00 Lecture (misc)
- students decide topic(s)
Week 7 (w 51)
Monday 17/12
Preparation
10.15 - 12.00 Lecture (Java)
13.15 - 15.00 Supervision
Primary focus:
Wednesday 19/12
Preparation
10.15 - 12.00 Lecture (students decide)
13.15 - 15.00 Supervision
Friday 21/12
Preparation
10.15 - 12.00 Lecture (Misc)
- Workshop: C language and Arduino
Schedule 2017
2017-11-01
13:00 - 15:00 (föreläsning)
Inga förberedelser behövs. Vi går igenom:
- kursen
- pedagogiken
- projekt
Submissions
Upload project proposal (pdf, txt) including:
- name of project participants
- goal
- intended users
- techniques used (such as network, database...)
- how the project scales (important that you can finish at least some parts, and then this part, and then this part...)
2017-11-06
10:00 - 12:00 (föreläsning)
Inga förberedelser behövs
13:00 - 15:00 (handledning)
- Prio 1: installation av Android Studio avklarat
- Prio 2: en Hello world-app skall gå att skapa, köra på mobil/platta och i emulator
- Prio 3: Exercises on Android Basics
- vad ni vill
2017-11-08
10:00 - 12:00 (föreläsning)
13:00 - 15:00 (handledning)
- Exercises on Adding views
- Exercises on Resources
- vad ni vill
2017-11-10
10:00 - 12:00 (handledning)
- vad ni vill
2017-11-13
10:00 - 12:00 (föreläsning)
13:00 - 15:00
- Handl
2017-11-15
10:00 - 12:00 (föreläsning)
- Structure a project's code into smaller modules
- Android:Network (Volley)
- Android:Storage
13:00 - 15:00
- Handl
2017-11-20
Föreberedelser (Exceptions-delen)
Läs:
- Using exceptions while protecting tiers/reducing coupling
- Repetition: Java Exceptions (frivillig läsning)
Se:
Frivillig videorepetition: Se frivillig läsning ovan!
10:00 - 12:00 (föreläsning)
- Genomgång hur (och vad) ni bör repetera: Programming_with_Java
- Exceptions PDF (18 sidor)
- Strukturera din kod ... ännu mer
- Tips för att komma igång
2017-11-22
10:00 - 12:00
- Handl
13:00 - 15:00 (föreläsning)
- Hur skickas data mellan app och server?
- Network:Introduction
- HTTP
- vi rekommenderar: MoreBash:Network_Tools och MoreBash:Exercises_-_Network_Tools
- Test - why test at all?
- Unit Test / instrumented test
- Android:Test
2017-11-24
10:00 - 12:00
- Handl
2017-11-27
10:00 - 12:00
* Förel
2017-11-28
10:00 - 12:00 (föreläsning)
-
FOSS (c), licens osv - enum
- Classloading
- Static or non static
-
Genomgång av Chat-server/Chat-klient -
Data strukturer (förmodligen nästa gång)- list - ordered/sequential elements
- set - making sure we have a unique collection
- map - finding unique keys when "normalizing XML to database"
- stack - browser (back/forward), android Activity back stack, call stack
- queue - probably skipping this one
- tree -
- hash table
- hash maple
- binary search tree vs. binary search (on an ordered list)
- hashcode()
2017-11-30
10:00 - 12:00
- Handl
2017-12-01
10:00 - 12:00 (föreläsning)
- FOSS (c), licens osv
- enum
- Classloading
- Static or non static
- Genomgång av Chat-server/Chat-klient
- Data strukturer (förmodligen nästa gång)
- list - ordered/sequential elements
- set - making sure we have a unique collection
- map - finding unique keys when "normalizing XML to database"
- stack - browser (back/forward), android Activity back stack, call stack
- queue - probably skipping this one
- tree -
- hash table
- hash maple
- binary search tree vs. binary search (on an ordered list)
- hashcode()
13:00 - 15:00
- Handl
2017-12-04
10:00 - 12:00 (föreläsning)
Vi kikade på: JNI som, enligt wikipedia; The Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and be called by[1] native applications (programs specific to a hardware and operating system platform) and libraries written in other languages such as C, C++ and assembly.
Vi kunde inte spela in föreläsningen. Sorry!
JNI
- Kod finns här: progund/programming-with-c/tree/master/jni
- Koncept som var lite nya för er i C-delen, med en länk till vårt material:
- function pointer: [Function pointers in C and C++
- shared lib (inget skrivet om detta. Sorry, vi skriver fram emot mars)
- macro (#ifdef, LOG ...): (inget skrivet här heller... shame on you Mr Bush)
- Koncept som var lite nya för er i C-delen, med en länk till vårt material:
Chat client
- Vi gick igenom koden: progund/web-misc/tree/master/chat-client/c
Förkunskaper: Networking (and web)
2017-12-06
10:00 - 12:00
- Handl
13:00 - 15:00
- Handl
2017-12-11
10:00 - 12:00 (föreläsning)
- Hur skapar man ett id klient-koden om detta id skall vara unikt för alla (andra klienter, servern...)
- Ett alternativ till cache via databas:
- serializing och går vidare till
- Product, ObjectCache, ObjectCacheException och Session
- Vi kikar lite snabbt på: Serializable, Generics
2017-12-13
13:00 - 15:00
- Handl
2017-12-15
10:00 - 12:00
- Handl
2017-12-18
10:00 - 12:00
- Handl
13:00 - 15:00
- Handl
2017-12-20
10:00 - 12:00
- Handl
13:00 - 15:00
- Handl