Meta:How to study
Our material is based around videos, text, exercises and solutions. All of this is compiled on this wiki. The material have been produced with the following study skills (workflow) in mind, so we strongly recommend following it.
- 1 Course
- 2 Lecture
- 3 Chapter
- 4 Exercises
- 5 Videos
Each course has a page on the wiki with a schedule based on dates, all of which may include several lectures.
An example from our course TIG058 is shown below (click on expand to see it)
Expand using link to the right to see the example from the schedule for TIG058, Spring 2018 iteration.
Tisdag, 2018-01-23 - Java - Labbarna - Workshop - Hur funkar servleten
- Vad är det här med APIer? (PDF finns nedan, filmer finns i videokanal på vimeo)
- Så fungerar servleten i stora drag
- Hur kan man "parse:a" GET-parametrarna
- Hur kan man skapa Predicate från GET-parametrarna
- Att förstå servleten
- Alla har sett filmer (eller föreläsning). Se nedan för lista.
Gå igenom följande kapitel i wikin
- Assignment:Exposing data over http lab1 Web API - introduktion till Lab1 - Web API (OBS se särskilt filmerna om Workshop 2)
- Arrayer i Java (ej film, endast wiki-sida) (nytt koncept!)
- Java Ternary operator (pdf) (nytt koncept!)
- Java Enums (Java Enums (pdf),source code) (nytt koncept!)
- For-each-loopen i Java (endast del av sida) (delvis nytt koncept!)
- Java - Set and Map Set and Map (PDF) (nya koncept!)
- Java - Streams and Lambdas Streams and Lambda introduction (pdf) (nytt koncept!)
- Om APIer: videokanal på vimeo
Filmerna examineras inte men är viktiga att se för att förstå och klara labbarna och dessas källkod.
Extra lecture based on your questions
- APIs - what types of APIs exist in the assignment? och videokanal på vimeo
Vi utgår ifrån att ni därmed sett följande filmer
- Lab - Exposing data over http (video channel) (se filmerna nedan)
- Parsing the request: Parsing the request (channel) (se alla 5 filmer)
- Parsing the request - filter Parsing the request - filter (channel) (se alla 3 filmer)
- Parsing the request - filter/predicate version.pdf
- Simplified example as command line Java file source code /progund/java-extra-lectures/master/functional-streams/filtering-products/FilterBuilder.java (github)
- Simple streams example (source code) /progund/java-extra-lectures/master/functional-streams/intro-lambda-streams/TestLambda.java (github)
Körschema för dagen
- 09 - 10 Extra lecture about the API concept:
- APIs - what types of APIs exist in the assignment? (slides only, so far)
- Videokanal på vimeo
- 10 - 11 Vi går igenom hur servlet-koden som "parsar" GET-parametrar fungerar Parsing the request.pdf - SQL/Where version
- 11 - 12 - "" - Parsing the request - filter/predicate version.pdf
- 13 - 15 Handledning - boka in handledare, H+R är på sitt corner office om ni vill ha hjälp
As expected, a course consists of - among other things - lectures. We describe a lecture in a date section in the course schedule.
Most lectures are available on video and linked from both the schedule and from the chapter in the book used in the course. The idea behind that, is that you should be able to prepare yourself by watching the lecture in advance, so that you can be more active and interactive in the class room. The more you prepare, the better questions you will be able to pose, and the more you will understand from the live lecture in the class room.
Please note that even if you think that watching the video version of the lecture is enough for you to understand and learn the topic taught, you should strongly consider coming to the lecture in the physical classroom anyway. This is because the live lecture there will include teacher-student interactions (questions and answers), drawing on the whiteboard, and often extra topics not included in the video lecture. We like to think that you, the students, drive our physical lectures, so that we don't know exactly what will be brought up in advance. Staying home, just because you watched the video version of the lecture probably means that you miss out on explanations, detours into neighboring topics, examples and visualizations using the whiteboard and other tools etc. So please attend the lectures.
The goal of the lecture is often to prepare you enough for some practical work, such as exercises and/or assignments. In our view, it is not during the lectures you learn so that you can pass the exam. It is rather during hard work with the (supervised) exercises and assignments that you learn. Practice makes perfect. The lectures serve more as an orientation and preparation for the practical work, and also as an interactive session where you may ask questions and give feedback on both your own learning and our teaching.
Prepare for the lecture
To make the best use of your and our time we suggest you watch the videos BEFORE the lecture. This increases the chances of learning the concepts, and makes the physical lecture more worth while, not only for you but also for us (the teachers) and for your class mates. Attending a lecture well prepared, means that we will need to spend less time on details and can focus on the larger picture and the parts you fell needs more explaining.
The ideal situation would be if all students came well prepared, in which case we could skip the lecturing altogether, and instead spend time on answering questions, elaborating on topics from the lecture and discuss the topics from different angles and perspectives. We could use the time to show you hands-on practice (live programming etc) or getting started with exercises and assignments.
To prepare, we suggest the following strategy:
- Check the course schedule for the next date
- Read the wiki pages linked from the schedule date
- Read the text and examples on the wiki page
- Watch the video lectures linked from the wiki page
- Take notes about unclear or hard to understand topics from the video and bring these notes to the lecture
- Read the "Further reading"/"External links" resources (typically linked at the bottom of the wiki page)
- If you have the time, read through the exercises (often linked as "the next page" at the bottom of the page)
- Start with one or two exercises if you have the time
Being well-prepared for a lecture means that you:
- have seen the lecture in video format beforehand
- read about the topics, both on our wiki and on the external resources linked from it
- glanced through the exercised for the topic (and possibly even started)
- come to the lecture with a list of questions and comments
A "Book" on our wiki consists of an ordered list of "Chapters" (which really are wiki pages). Each chapter is presented on our wiki and typically contains the following sections:
- Introduction - Text introducing the content of the chapter.
- Sometimes we also have a "Meta information" section - This section, especially the Common problems subsection, is mainly intended for teachers and supervisors
- We believe that for students interested in the context of the current chapter’s context this will be worthwhile reading
- Videos and lectures etc - We aim to provide both a playlist of all videos, and a list of all individual videos for the lecture (and sometimes examples/live coding) pertaining to this chapter
- Further reading
- (Sometimes also) "Source code"
- Navigation - where to go next, after finishing with the chapter
Videos for a chapter
We try to keep the videos no longer than 8-10 minutes. Sometimes a lecture requires more than that, in which case we divide the lecture into several parts. Other times, we provide videos with live coding or even videos of the teachers in front of a whiteboard. The most common type, however, is a lecture video where we screen cast a PDF presentation with teachers' voice over.
Links with further reading
Please don't skip these links. You are expected to gather information from more sources than the course literature and the teachers' blabbing when attending our courses. It is very important that you get explanations, opinions and examples from more than one source, in order for you to form both an understanding of the topics taught, as well as gaining insights and understanding the topics. Many of the resources we link, also form a great link collection for you, in the form of reference material and tutorials for refreshing your knowledge at a later point.
Most "chapter pages" have as their "next" page (linked from the navigation section at the bottom) a page dedicated to exercises on the same topic as the chapter. The exercises have suggested solutions as expandable blocks (hidden by default). You are encourage to try and solve the exercises yourself before peeking at the suggested solutions. If you don't understand the suggested solution (or are not sure that you understand it), it is your responsibility to make a note of this and bring it up with the teachers. Many times, we have experienced, the explanations (or even the exercise texts) have minor errors or are a little unclear. Bring this to our attention, and we promise to improve and fix the exercises and solutions as quickly as possible.
We strongly recommend doing all (yes all!) the exercises in each chapter, even if they seem obvious. The exercises have been created with a progression leading towards the course goal (our book goal) in mind.
You’re responsible for doing the exercises. We are responsible for helping you succeed in doing them. We need to work together to make this happen.
All exercises have a solution. In this solution we discuss our suggested solution and sometimes there are several solutions. As with the exercises we strongly recommend you to read all the solution texts.
We provide videos to introduce the concepts for you. We’ve chosen to do so for the following simple reasons:
- Students can repeat as many times he/she wants
- Students can miss a lecture and still catch up
- We all can focus the time on each lecture on discussing the material instead
- Videos can be used as "extra material" or required "self-studies"
In some cases we record videos where we “live code” and solve exercises, and sometimes we record ourselves in front of the whiteboard teaching "old-school".
We try to link the videos for each lecture directly from the schedule page (the course page) to make it easier for you to know how to prepare for a lecture. But we strongly suggest that you also visit the pages/chapters related to the lecture, to make sure there aren't any extra videos or other stuff for you to consume for preparations.
We are updating the video links for "all videos" (the link to the Vimeo page where all videos related to one lecture or one topic are collected) to include a playlist which allows you to watch the videos "in the correct order". We also try to provide links to all individual videos. Note that, as mentioned above, a longer lecture is typically divided into several shorter parts, in order to make the file size smaller and to encourage taking a break. No one has the stamina to listen to computer lectures more than 8-10 minutes (especially not when we are the ones blabbing).
During supervision you can ask the supervisor about all material, but the focus of the supervision are the exercises. Prepare each supervision class by trying to solve all the exercises and make notes on what exercises you have questions on.
If the teacher notices that one or some questions are frequently being asked questions on we may interrupt the supervision and discuss the exercise text and solution.
We normally provide assignment that should be handed in during the course. These assignments are there to help you practice and get a more in depth knowledge in concepts we think are either or both important and/or usually hard to learn.
Each assignment comes with a suggested solution.
The courses are normally examined through a written exam. The questions on the exam are usually rewritten version of the exercises. This means we reduce the risk of students not understanding the questions and asking students something that have not been taught.