Programming, 3rd semester (PROG)

This plan is subject to change. Look at the plan often. Do not print the plan (waste of paper).

Week 36, 03-07.09.2018

Readings

Exercises

  1. Check that you have the necessary software:
  1. Brush Up: Student + Test + Documentation | solution | Use this GitHub repo for your solution
  2. Extra: Hackerrank.com Programming competitions etc.

Administration

Week 37, 10-14.09.2018

Readings

Exercises

  1. Calculator part 1: DLL | Solution
  2. Calculator part 2: User interface | Solution
  3. w3schools.com/html play with some [not all] of the "Try it Yourself" (green buttons) examples
  4. Use the W3C HTML validator to validate some web pages like http://anbo-easj.dk/ and https://www.easj.dk/ 
  1. If you find a page with a lot of illegal HTML, try viewing the page in different browsers. Any differences in what you see?
  1. HTML Quiz
  2. Download and install Visual Studio Code 
  3. Use Visual Studio Code to make a few linked web pages, like a presentation etc.

Do not forget to HTML validate the pages.

  1. w3schools.com/css play with some of the "Try it Yourself" (green buttons) examples
  2. Use Visual Studio Code to make an external style sheet. Define some relevant rules.
  3. Link the style sheet to one or more of you HTM documents.
  4. Add an internal style sheet to one of your HTML documents
  5. Add in-line styles to some of your HTML elements
  6. Validate your CSS
  7. CSS Quiz
  8. Extra: Bootstrap

Week 38, 17-21.09.2018

Readings

Examples

  1. DOM manipulation

Exercises

  1. Install node.js
    We need the Node Package Manager mph to download various JavaScript and TypeScript modules
  2. Clone (using git) the WebPack template
    In the command line go to the folder …./typescript/yourWebPack
    Run “npm install” to get the necessary modules.
    Run “ code .” to start Visual Studio Code
    Run “npm run watch” to ask WebPack to monitor and transpile your file.
  3. Install the extension TSLint to Visual Studio Code
    TSLint will help you write good (and human readable) TypeScript programs.
  4. Collect Words (TypeScript DOM, event handling, functions, arrays, if statement) | Solution

Week 39, 24-28.09.2018

TypeScript, DOM, WebPack, npm

Friday 28.09 No lessons (we are moving everything to the new campus)

Readings

  1. Jess Chadwick TypeScript Essential Training/Introduction, lynda.com (video)
    Create a Lynda account (if you do not have one)
  2. What is Webpack?
  3. What is npm?
  4. Webpack, a brief introduction to some files ...

Examples

  1. DOM manipulation
  2. EventHandling

Exercises

  1. Calculator (TypeScript DOM, event handling, functions, type conversion, switch statement) | Solution
  2. Upload your web applications to Microsoft Azure. Help!
  3. Mandatory assignment 1, hand-in no later than Tuesday 9 October 10:45

Week 40, 01-05.10.2018

Monday: First day on the new campus, Maglegårdsvej 2, the new building.

More DOM, more TypeScript

Readings

  1. TypeScript
  1. Classes
  2. Interfaces
  3. Namespaces (export + import)
  1. W3Schools Collapsible List (JavaScript) | Adapted to TypeScript
  2. Elective courses from LAST year.
  3. Extra: Mario Cart programmed in TypeScript

Examples

  1. Pong game
  2. Object carousel (car)
  3. CollapsibeList (static data)
  4. My First REST (consuming a simple REST service from TypeScript using Axios)

Exercises

  1. Make changes to the Pong game
  1. Object carousel: Changes | Solution (List version, Person objects)
  2. Mandatory assignment 1, hand-in no later than Tuesday 9 October 10:45  

Week 41, 08-12.10.2018

Consuming REST services from TypeScript

Mandatory assignment 1

Mandatory assignment no. 1 must be handed in no later than Friday 12 October, 11:30 AM

Readings

  1. Sebastian Eschweiler Getting Started with Axios
    This is a JavaScript tutorial. We should convert to TypeScript.
  2. GitHub Axios documentation
  3. Travis Horn Building json2table: Turn JSON into an HTML table
  4. Extra: GitHub offers a REST API. Try it. How to display the data?

Examples

  1. General REST consumer
  2. Peters Cars (REST GET all, POST, DELETE)
  3. Generic Table
  4. List + detail
  5. Calculator REST (REST POST)

Exercises

  1. Go through Getting Started with Axios
    This is a JavaScript tutorial. You should convert to TypeScript.
  2. Consume the REST services you made in TEK class
    Like the
    Customer service
  3. High score list for Pong-like game (use REST service)
  4. Object Carousel, make it work with JSON | Solution
  5. Collapsible List, make it work with JSON | Solution
  6. Mandatory assignment 1, hand-in no later than Tuesday 9 October 11:30

Week 42, 15-19.10.2018

Autumn holidays all week

Week 43, 22-26.10.2018

Readings

Examples

  1. Students (static list, no database) | Runs in Azure
  2. Books (simple database, only 1 table)
  3. LeaderBoard (more than one table in the database)
  4. RoomReservation (several tables in the database)

Exercises

  1. Customer REST service with database.
  2. Orders REST (added to Customer REST service)

Week 44, 29-02.11.2018

Readings

Examples

Exercises

  1. Unit test one of your REST controllers.
  2. Make a test in Postman for one of your REST controllers.

Week 45, 05-08.11.2018

Readings

  1. Wikipedia: Internet of Things
  2. Lopez Research An Introduction to the Internet of Things, 2013
  3. Libelium: 50 Sensor Applications for a Smarter World
  4. Introduction to Lora
  5. Internet of Things (slides)
  6. A Tour of the Pi Zero
  7. Getting started with the Sense Hat
  8. Sense HAT API Reference
  9. Python, a very brief introduction
  10. Tutorials Point: Python Quick Guide
  11. Extra: Consuming REST from Python
  12. Extra: Learn more Python3
  1. Tutorials Point: Python Tutorial
  2. Python Software Foundation
  3. Guru99: Python Tutorial for Beginners 
  4. Allen Downey: Think Python, 2nd edition (a full book, 244 pages)

Exercises

  1. Download and install Putty (Putty.exe)
     Putty will enable you to communicate from your laptop to Raspberry Pi: Use the laptop keyboard + screen with the Pi.
    Use the IP address printed at the bottom of the Raspberry Pi
  2. Download and install WinSCP

With WinSCP you can easily move files from Raspberry Pi to your laptop (and vice versa)

  1. Disco and Christmas lights | solution (Christmas) + solution (Disco)
  2. Sensing the environment 
  3. Ball control | solution (joystick) + solution (orientation)
  4. Show the Pi’s IP address on the LED display

Week 46-47, 12-23.11.2018

Examples

  1. UDP broadcast example (Python)
  2. Extra: UDP broadcast sender (C#)
    May be used to broadcast fake measurements (if you don’t have a Raspberry Pi)
  3. Extra: Tamagotchi in the emulator

Readings

  1. Kurose & Ross: Computer Networks, 6th edition, the section Socket Programming with UDP

Exercises

  1. Read data and send UDP broadcast.
  2. Use the emulator to program Python

Week 48-50, 26.11-14.12.2018

Interdisciplinary project

This project is one of the mandatory study activities mentioned in the curriculum section 14.3.

Wednesday 12.12.2018, 14:00 stop programming. Sync all your code to GitHub. Focus on the systems development report

Week 51, 17-21.12.2018

Monday 17.12.2018

Tuesday 18.12.2018

Wednesday 19.12.2018

Week 52, 24-28.12.2018

Christmas holidays

Week 1, Friday 04.01.2019

Q&A

Week 2, 07-10.02.2019

PROG+TEK exam, detailed plan ready mid December

Week 3, 17-18.2019

SYM exam

Week 4

Re-exams

Week 5, Monday 28.01.2019

4th semester starts