TODO

From Juneday education
Jump to: navigation, search

Slides without videos

Clean up quotes

Replace quotes with own words:

fixed in G - record videos and replace pdf in wiki

Low prio

C-introduction https://docs.google.com/presentation/d/1U_VXL_dR-KZlo6pc1vcrhOcCqgTAbAiE_b9HO0K4XbE/edit#slide=id.ge5b6d0902_0_99

Creating-objects-Java (non-free image of van zandt) https://docs.google.com/presentation/d/1V_PYLhhmzHK9AtSVevKL7sW-oXuo5GH_e-7g89nIo9c/edit#slide=id.gc89cbdc8b_1_85

Singleton https://docs.google.com/presentation/d/1XoTGy9pHab-wjuxx7MMXZCxrPKna4iJ5Kh_LGRZeWdk/edit#slide=id.g12ef48c2ac_0_97

Memory-Tools https://docs.google.com/presentation/d/1HuZIozlL0LFUciL4b5b7-ewbaXbnnzl5AzumGS32NX8/edit#slide=id.geb138f062_0_70

Testing-C-code (tror det här är en variant av en redan rapporterad pdf med samma namn) https://docs.google.com/presentation/d/1Ipf-FLw9W_oqsWgshND7bbO3HVEnx7QDojW0_TNEEnk/edit#slide=id.gd99a87f45_0_59

Pointer (eventuellt en kopia eller variant på redan rapporterad pdf med samma namn) https://docs.google.com/presentation/d/1yTAbauUiIaMCAy8wjtosdH7YVFINKBPZkSteMkLfycE/edit#slide=id.ge91fd34dd_0_388

C-Build-Tools (eventuellt en kopia eller variant på redan rapporterad pdf) https://docs.google.com/presentation/d/1U9o1gqLil2BcBVKphQsbBI2kfWlAcr1bUI8Yeq3l2Jg/edit#slide=id.p

Java-Class-Basics https://docs.google.com/presentation/d/1X_FuQQF2pF-icnfLudh4bFrbNafr2O4QxapJj_Oipjw/edit#slide=id.gc9a43e0e0_0_153

Inheritance https://docs.google.com/presentation/d/1kwuacNCP050ZTLQTIDNt4HODCGo2oGMSlR-KaYzz7EI/edit#slide=id.ge294df53a_0_0

Class-variables-and-methods https://docs.google.com/presentation/d/1f6naPmtS1GVIZm1GJH75Bf1tcI-nh5EmKl_shaNYAbY/edit#slide=id.gc9a43e0e0_0_710

Introduction https://docs.google.com/presentation/d/1PIo9Ge6IiuSeYvwIqjSxAsg4N71597wmbcnvlEVfDUk/edit#slide=id.gc9a43e0e0_0_731

Constructor https://docs.google.com/presentation/d/1uAEDrYg_4ULgfHYi_gtSzw7Zz029W3bZ4F79JV_MnNA/edit#slide=id.gc9a57c82c_0_7

Java-Constructors https://docs.google.com/presentation/d/1iCibGIvFQRaOQIu6ihHb3xaxfEaykrZZiqmuTL4ljMo/edit#slide=id.gc9a57ccb6_0_6

Invoking-methods https://docs.google.com/presentation/d/1dAXZiNC-vwCvA-E8pLlbtR2_-wkjl_J3OqgixCxKUJo/edit#slide=id.gc89f42bee_0_45

control-statements https://docs.google.com/presentation/d/1uPXQm6S-kNge4LzuO0wCJRYPthu7m67vauJ1s7ZryBE/edit#slide=id.gdd4e9732d_0_54

paths https://docs.google.com/presentation/d/1H6ZkBKztt2PbiOsqY48IlWCI4UtVe7jwaYLX6rfXelo/edit#slide=id.gdf1f44d03_0_32

introduction (nåt slags java-intro) https://docs.google.com/presentation/d/1V7dkd28JutQjB4QWqQ4bLn4J1uV31KZsurO0_fh_Xfw/edit#slide=id.gde82ab9cd_0_62

introduction (nåt slags groovy-intro) https://docs.google.com/presentation/d/1A2PJJin6eSBh3VOIAjVVUAnY9YuEyB9KyChL0-gxeZc/edit#slide=id.p

Error-handling (nåt slags C-föreläsning om error handling) https://docs.google.com/presentation/d/1j457JcAO0lDBIXaBaU_zlElNzf05EQlalYrWV4v_29Y/edit#slide=id.gde3894a9b_0_60

function-parameter https://docs.google.com/presentation/d/1wthO_TUdWTwbAwFsPj5PB_xYaqcGhXCngGuhjf30Eug/edit#slide=id.gdd8786bf4_0_0

function-return https://docs.google.com/presentation/d/1D0pLr7KSpEjri1rrZW8RjlJBYDz-XxOZ4F19pKQFk5U/edit#slide=id.gddf78ce79_0_11

type-cast https://docs.google.com/presentation/d/1yeazIMmksWk1jp_XkBzpElZuFudGQpVjIduqZxbMPFI/edit#slide=id.gdd48e522e_0_25

assignment https://docs.google.com/presentation/d/1zT1jh7ousgIztUJyjcsZdHSylPpaFyqklbttg3mvcyA/edit#slide=id.gdd49a8ac3_0_85

programming-introduction https://docs.google.com/presentation/d/1FYJobfnHzgNHFZ9FasC-RVRVMR-HVmHUnOGZyIke9Ho/edit#slide=id.gc5d8bb452_1_6

Program https://docs.google.com/presentation/d/1XtguzyQ05CUQfYvys0d0T1qa2h0jcFx0osDgaBwSpEE/edit#slide=id.gc64faf7c1_0_174

os https://docs.google.com/presentation/d/1iXNiHJEIOrXOQS7Cc-dg0rBIXtCET1hni9NDKSFfOBc/edit#slide=id.gc64fe5dc2_0_0

java-typecast https://docs.google.com/presentation/d/1jeQhd5oE0uqH-PWXF4Z8LSDm47eHG9Nx5nGQHUYzDIo/edit#slide=id.gc6330400a_0_30

function https://docs.google.com/presentation/d/15fpn0rRKuorffnwqnzSI7fMWXjUKkVJgd_S1z-imYxw/edit#slide=id.gdd863c935_0_5

block https://docs.google.com/presentation/d/1LGa3fgt3ndeLe97zBG-QPdH5Pv_rmcpCjlQxptkV8kI/edit#slide=id.gdd4e6ffb2_0_33

expression https://docs.google.com/presentation/d/1uYkIAD0Z7h2B10mi934-KmA3PeGUF5zLZoLzKf3TpOI/edit#slide=id.gc5ef1f1ec_0_48

Introduktion till datorn https://docs.google.com/presentation/d/1Vxb3D7oUd1d3Nkvi6Bwyu-5p-8Zrog-IFOYdb0rX_0Q/edit#slide=id.g37cafe84b_0113

Introduktion till operativsystem https://docs.google.com/presentation/d/1QK2kiFTuOUcgcC6n2VoLraRqcF9pFW8t2yUkyVx5m-A/edit#slide=id.g37d5fd881_064

Oklart om och var dessa används

method https://docs.google.com/presentation/d/1fXfitkmD3QZNvDBMmMWnD63T1bY0hfR7Yw71OD_DU5c/edit#slide=id.gdd863c935_0_33

Really fix these?


Subject for removal

TIG058 (kind of urgent)

Lectures to produce (and record)

  • None right now

PDF vs PDF links

Example of pdf link: Memory Management (pdf)

ADD TO SCHEDULE etc

* URGENT Everything from and including 2018-03-08 needs to be put in the schedule! Done 25/2

Lectures with Only Swedish videos - english videos needed

Databases

  • Practically all videos are in Swedish only (the slides are in English, though!)

Introduction to XML

Parsing JSON from Java (both javax.json and org.json versions)

Bash - A slightly more advanced script

AJAX front-end, servlet back-end

Lectures without Videos

JSON-XML client

Minimal introduction to AJAX

Ajax with XML for dynamically building an HTML table

Development tips

Interfaces - VI - Writing your own - Alternative version (decorator)

Swing - Input validation

Threads

I/O with java.io

Both videos and slides missing

Java

Android

Computing

* Computing:Binary_representation Chapter page and exercisese (almost) done. We need slides and video lecture. Done! See above.

C

Robust

  • Add CBC example on int with 0..9 as valid input as an example on when to about how to write robust code

Videos on Vimeo without link from our Wiki (according to the script)

170021880: "Flödeskontroll"
172768738: "programming-in-java-1"
191941172: "Design patterns - Exceptions pattern 4/4"
191941173: "Design patterns - Exceptions pattern 3/4"
191941174: "Design patterns - Exceptions pattern 2/4"
191941175: "Design patterns - Exceptions pattern 1/4"
192794904: "Design patterns - Decorator 2/2"
192794917: "Design patterns - Decorator 1/2"
193716284: "Design patterns - Observer 3/3"
193716302: "Design patterns - Observer 2/3"
193716319: "Design patterns - Observer 1/3"
193716343: "Design patterns - Strategy 2/2"
193716384: "Design patterns - Strategy 1/2"
199324987: "Introduktion till bash skript del 2/2"
199325002: "Introduktion till bash skript del 1/2"
200221329: "Introduktion till Winstone och Servlets del 6/6"
200221350: "Introduktion till Winstone och Servlets del 5/6"
200221371: "Introduktion till Winstone och Servlets del 4/6"
200221400: "Introduktion till Winstone och Servlets del 3/6"
200221431: "Introduktion till Winstone och Servlets del 2/6"
200221461: "Introduktion till Winstone och Servlets del 1/6"
200358804: "Using a factory for creating XML or JSON 6/6"
200358832: "Using a factory for creating XML or JSON 5/6"
200358847: "Using a factory for creating XML or JSON 4/6"
200358860: "Using a factory for creating XML or JSON 3/6"
200358890: "Using a factory for creating XML or JSON 2/6"
200358920: "Using a factory for creating XML or JSON 1/6"
200358946: "Generera JSON från Java del 2/2"
200358960: "Generera JSON från Java del 1/2"
200358984: "Generera XML från Java 2/2"
200359007: "Generera XML från Java 1/2"
202217983: "Bash - Nätverksprogram 1/3"
202218011: "Bash - Nätverksprogram 2/3"
202218043: "Bash - Nätverksprogram 3/3"
211462762: "Android:Activity Switch Activity (live)"
211462778: "Android:Activity Start App (live)"
211462796: "Android:Activity Session (live)"
211462912: "Android:Activity Lifecycle (live)"
211462928: "Android:Activity Intro (live)"
211462935: "Android:Activity Passing data (live)"
214650961: "Java - Introducing sorting with lambda notation"
216177216: "Outtakes - HTTP status codes"
216824296: "Java Cave Game - Sprint 1 - Analyzing the old specification V"
216824320: "Java Cave Game - Sprint 1 - Analyzing the old specification IV"
216824338: "Java Cave Game - Sprint 1 - Analyzing the old specification III"
216824359: "Java Cave Game - Sprint 1 - Analyzing the old specification II"
216824379: "Java Cave Game - Sprint 1 - Analyzing the old specification I"
217185752: "Så mycket sämre - avsnitt 1, säsong 2017"
218012334: "Java Cave Game - Sprint 1 - Designing 5"
218012348: "Java Cave Game - Sprint 1 - Designing 1"
218012359: "Java Cave Game - Sprint 1 - Designing 4"
218012370: "Java Cave Game - Sprint 1 - Designing 3"
218012388: "Java Cave Game - Sprint 1 - Designing 2"
218155152: "Java Cave Game - Sprint 1 - UML 2"
218155177: "Java Cave Game - Sprint 1 - UML 1"
218445952: "Cave Game - Sprint 2 - Determining responsibilities 2"
218445981: "Cave Game - Sprint 2 - Determining responsibilities 1"
218445993: "Java Cave Game - Sprint 2 - Player movements 2"
218446014: "Java Cave Game - Sprint 2 - Player movements 1"
218616976: "Java Cave Game - Sprint 2 - Implementing Rules 7"
218617007: "Java Cave Game - Sprint 2 - Implementing Rules 1"
218617024: "Java Cave Game - Sprint 2 - Implementing Rules 6"
218617041: "Java Cave Game - Sprint 2 - Implementing Rules 5"
218617053: "Java Cave Game - Sprint 2 - Implementing Rules 4"
218617073: "Java Cave Game - Sprint 2 - Implementing Rules 3"
218617092: "Java Cave Game - Sprint 2 - Implementing Rules 2"
218787042: "Java Cave Game - Sprint 3 - RoomRule 1"
218787077: "Java Cave Game - Sprint 3 - RoomRule 5"
218787125: "Java Cave Game - Sprint 3 - RoomRule 4"
218787162: "Java Cave Game - Sprint 3 - RoomRule 3"
218787190: "Java Cave Game - Sprint 3 - RoomRule 2"
218787220: "Java Cave Game - Sprint 3 - Design RoomRule 4"
218787245: "Java Cave Game - Sprint 3 - Design RoomRule 1"
218787276: "Java Cave Game - Sprint 3 - Design RoomRule 3"
218787315: "Java Cave Game - Sprint 3 - Design RoomRule 2"
237063870: "Saa mycket saemre - part II"
244357261: "Upphovsrätt, licenser, FOSS med mera 2/5"
244357284: "Upphovsrätt, licenser, FOSS med mera 3/5"
244357313: "Upphovsrätt, licenser, FOSS med mera 4/5"
244357337: "Upphovsrätt, licenser, FOSS med mera 5/5"
244357369: "Upphovsrätt, licenser, FOSS med mera 1/5"
244652965: "Java Class and Object loading 6"
248316784: "Java Servlet Introduction Workshop II"
248316797: "Java Servlet Introduction Workshop I"
252610655: "Students telling us what they feel"
253774626: "Juneday source code activities around Christmas 2017"

Exercises needed!

Java language pages - from More programming

Java API pages

Introduction to network

Programming with Java

Java-Swing

There are currently no exercises for Swing. They should prefarably be put in separate pages, so the navigation must also be fixed (sigh!).

Urgent

* Complete the schedule for TIG058Done!

  • SQL-injection Slides, Examples and Exercises on SQL injections ported to PHP before 30/11
    • "Skriv SQL-injection (slides, exempel, övningar) som inte är Java-specifik" in PHP for YRGO Webb/databaser before 30/11 (started - Rikard has a rough proof of concept but it needs to be conceptualized)
  • Add information about block (Henrik, can you elaborate?)
  • Logging in Android

TIG015

  • kurs-introduktion (pdf och film)
  • script (till student) som kontrollerar inlämningsuppgifterna, ev med docker för auto-rättning
  • instruktioner för hur/vad/när man lämnar in i GUL

TIG167

  • kurs-introduktion (pdf och film)
  • projekt-introduktion (pdf och film)

Terms

  • Log - what is it? why do we use them?
  • deployment (used in Exposing data .... lab 1)
  • side-effect

Errors

General

Non urgent

  • Create page for Atom added to editor
    • Add note on atom.cmd on the Atom page
  • Add instructions for starting java (classes) using classes in diffferent dir....
  • Logger in Java (and C?)

Databases

  • In exercise scraping data, investigate how to translate date -d 2016-01-08T06:05:00+01:00 +"%Y-%m-%d %H:%M:%S" to MacOS date syntax.

bash

  • Tip
    • bash -x ./script
    • set -x; ./script ; set +x


Java

  • expressions continued (after methods)
  • link http status code video
  • Stream API exercises
  • set and map (possibly a term page)
  • static initializer
  • Threading
  • Unit test, JUnit
  • Design / Architecture
  • Refactoring
  • Lambda introduction / exercises / Sorting lists with Comparable and Comparator
  • Split early chapters into smaller ones (Variables, Types, ...). This would make it 1) sequential and 2) practice comes after theory. Compare with Java/Classes
  • Unecc calls in solution in Chapter:Inheritance_-_Overriding_methods_in_Object_-_Exercises#Q8
  • check if object is null is done obj == null rather than object.equals(null). What are the implications if the object actually is null ;)
  • for each-loop
  • Contactbook handin: replace AddressBook list with AddressBook addressbook. Students seem to think that list is a List - this can be explained by the name for list we've been using a lot in the "Java book"
  • TODO: add FQA entry on why you can't compile outside src - -.... arggghhh, badly phrased but this is a note to self
  • create page for servlet workshop

C

  • Document the test cases (unit tests in parser and searcher). They are there to prevent the program from failing. But students see them as painful - but after explaining why they are there they think they're useful.
  • Hand in #02. The use of strtoint needs to be better explained.
  • Arduino - tips and tricks / video
    • link to id-iot page
  • Compile your own kernel (Linux)

Android

SharedPreferences, and settings "window"

Check prev | next

Write solutions for exercises on 'your own code'

Add material on landscape|portrait, different resolutions

One more example on AsyncTask:

  • different parameter types

Activity:

  • more on passing data between activities
  • Activity died after new activity started. Had an impact on database open/clode

Thread:

  • we need to make sure students understand threads before we introduce AsyncTask

SnackBar

Possibly add:

  • SimpleAdapter - might be a good way to show Map
  • GSon
  • Strategy for AsyncTask
    • what object should be executed in an AsyncTask
    • inner class or not
  • JUnit
  • Designing an app/getting started / Going from paper to activity (fragment)

Ideas

  • Pedagogical anti-patterns
    • Why not IDE
    • Getters and Setters
    • main methods in each and every bleeding class
    • PBL (Problem-based Learning) with no (or not enough) supervisors
    • Hand out an assignment you haven't sovled yourself before the course starts
    • Hand out an assignment you can't solve yourself
    • Hand out an assignment which is very hard, but don't teach strategies and techniques for solving it (open-ended and uneducated)
    • Hand out an assignment in programming but don't look at the students code when they hand it in - only look at the running software
    • Teach a complicated topic by showing the name of a concept and saying "There's a thing called X, and it is good" (and nothing else)
    • Write exercises in programming without progress (e.g. "Write a program where the main does something very specific and the same thing every time the program is run")
    • Ask for supervisors, but don't introduce the material (and solutions) to the supervisors
    • Teach a programming topic you just learned yourself but haven't gotten around to use in a real application you wrote yourself
    • Focus the exam questions (on programming), on code comprehension of really complicated code (weird loops etc) which don't do anything meaningful and never ever would pass a code review, just because you wanted to give a "hard" question


  • Parody
    • old operator
    • empty objects
    • Viktigt meddelande till allmänheten / Public message
    • anonymous method not referring to lambda
    • idiotic variable names (or methods)
    • Over use of Scanner (i e all use)
  • Dont_do_this_at_home
  • FAQ
    • for (;;); - it is used sometimes (in C):)
    • for (int i=0; i<size; i++); { .... } - why does my program hang ;)
  • pipe: salt water | salt-removal filter | drink
  • code oddities
    • if overuse
        if (m==null) {
          return null;
        }
        return m;
      
      ... check: If_true_return_true
    • what?
        if (a==true) {
           return true;
        } else {
           return false;
        }
      
      ... check: If_true_return_true
    • interactive printf (or similar) functions/methods
    • print error messages instead of returning/signaling error
  • C: sizeof(array)/sizeof(int) leads to problems when passing array