Course Materials

Slides

Slides are partly different from last year's slides.

Permission is granted to make use of the Powerpoint slides hereby linked from the companion website to the textbook "A Practical Introduction to Computer Vision with OpenCV" by Kenneth Dawson-Howe, Wiley, 2014, as the book is included as recommended text in the syllabus of this course.


Projects

  • Standard projects
  • Special projects. The document contains only summaries: students tackling a special project are required to submit a full specification to the instructor for approval


Code Samples

Code samples are available via a Git repository hosted by BitBucket.


Open Questions


Suggested Exercises

Language basics: build a program that generates two matrices, prints them, sums them, then prints the result. Fill the input matrices with random doubles. Do the exercise in both Java and C++. If you do not know how to generate random numbers, look at the sample code in compilertests.tar.bz2.
OO basics: design a class called Polygon that handles polygons with an arbitrary number of sides. The class should store the coordinates of all the vertices of the polygon: the vertices are assumed to be on a plane, therefore two coordinates are sufficient. The vertices are numbered and edges go from vertex i to vertex i+1. The class should provide methods to 1) get and set the number of vertices in the polygon; 2) get and set the coordinates of the vertices; 3) get the perimeter of the polygon. The class should also provide a non-default constructor that receives the number of vertices when an object is instantiated from the class. In the default constructor you can assume that the polygon has an unmodifiable number of sides of your choice or, if you want to tackle a challenging exercise, you can use a data structure that allows you to adjust the number of sides dynamically (an ArrayList in Java, a vector in C++). When Polygon is complete, design a new class Triangle derived from Polygon. The new class should provide an additional method to get the area of the triangle. Do the exercise in both Java and C++.
Application basics: build a simple calculator application that operates on integer numbers. The UI of the calculator should provide at least 16 buttons: 10 buttons for the digits from "0" to "9", 4 buttons for the 4 basic operations ("+", "-", "×", "÷"), an "=" button to calculate the result, and a "C" button that resets the calculator. The UI should also provide a display that shows the numbers being input and the results. Write your own code even if pre-built solutions can be found online.


Guides

A Basic Understanding of Version Control

Created by tutor Edoardo Degli Innocenti in 2016.


Android User Interface: Managing a List

Created by tutor Michele Schimd in 2013.


Android: Using Intents

Created by Elena Fortini in 2015.


Design Patterns: Examples

Examples for design patterns Builder, Observer, and Singleton. Created by Alessandro Moretto in 2015.

  • ZIP archive with examples and documentation (June 3rd 2015)


Further Presentations

Android Security

Created by Paolo Montesel in 2016.


An Introduction to Human-Machine Interaction

Created by tutor Edoardo Degli Innocenti in 2016.

.