Home
Course Guidelines
About the course Prerequite Material References
Python
Jupyter Notebooks Python overview
Exercises
Before the semester start: Installation and exercise setup Week 1: Introduction to Python and libraries Week 2: Vector representations Week 3: Linear Algebra Week 4: Linear Transformations Week 5: Models and least squares Week 6: Assignment 1 - Gaze Estimation Week 7: Model selection and descriptive statistics Week 8: Filtering Week 9: Classification Week 10: Evaluation Week 11: Dimensionality reduction Week 12: Clustering and refresh on gradients Week 13: Neural Networks Week 14: Convolutional Neural Networks (CNN's)
Tutorials
Week 1: Data analysis, manipulation and plotting Week 2: Linear algebra Week 3: Transformations tutorial Week 4: Projection and Least Squares tutorial Week 7: Cross-validation and descriptive statistics tutorial Week 8: Filtering tutorial Week 11: Gradient Descent / Ascent
In-class Exercises
In-class 1 In-class 2 In-class 10 In-class 3 In-class 4 In-class 8
Explorer

Document

  • Overview

Content

  • Exercises
  • Assignments
  • Submission

General guidelines

This page contains general guidelines for the course.

Expect that

  • exercises and reading material is available to you at least one week before it is needed. Contact Dan immediately if material is unavailable or missing.

  • You will need to spend 10-11.8 hours every week on the course.

  • If you spend less time in one week that you would need to compensate for this in subsequent weeks.

  • you do not have time to do all of the material within the ECTS model (11.8 hrs). Use the priority markings in the exercises to guide your time management.

  • If you have been struck with an exercise or parts of an assignment for more than one hour then ask for help.

We highly recommend that you

  • Complete as many exercises as your schedule permits within the ECTS model. This will better prepare you for subsequent exercises and the exam.

  • Review the assigned readings and watch any provided video material before attending lectures. Feel free to skip sections you don't understand. This will enable you to ask questions during the lectures and engage more effectively with both the instructor and in-class exercises.

  • Read the tutorials before starting the exercises; the code examples may prove invaluable!

  • Get an overview of the exercises and attempt to do some of the exercises before the exercise class so you can spend the time on material that is more difficult during the exercise sessions with a TA.

  • Take your time to thoroughly understand the task at hand before diving into solving it. The introductory text often reveals useful information about the problem and how to solve it. Getting an overview of all material can also lead you to identify key concepts, genereal direction, and potential pitfalls that may affect your approach and ultimately the time spent on the exercise. So,

  • The lectures requires your active participation through in-class exercises. These will typically be on mathematical concepts where a pen and paper, iPad or similar may be be needed - You have to bring this to the lecture.

About the exercises / Assignments

All exercises and assignments are central parts of the exam questions.

Exercises

Exercises are clearly marked to specifcally allow you to prioritize what you have time for and what is important. The markings indicate(see video):

  • whether they are mandatory
  • priority
  • expected level of difficuly or time needed to solve

Mandatory exercises will typically be using Grasple. You can use as many trials as you need and do no need to submit them explicitly as we can see if you have completed them.

Assignments

Assignments are mandatory larger programming exercises designed to provide students with valuable feedback on the material covered in the exercise classes and lectures. They have to be handed in via LearnIT. There are no expectations for the submission to be flawless however we expect that (when possible):

  • An honest and fair attempt has been made at solving the assignment.
  • The answers should be reproducible from the context (e.g., by TA, teachers or other students can understand and reproduce the results). For example this means that the answers should showcase the methodology, parameter settings, how you solved the problem or derivation, theoretical arguments in obtaining the results.
  • You should comment and reflect on the results e.g. by using theoretical arguments in why / why not the method works, uncertainties etc. This means that it is not enough to give the result 42 or 87, but what does this result imply (reflection on results). In this way we can better assess what you have understood and where we can further guide your understanding of the topic. For example "i tried approach a and b ... a was superior due to xyz [reflection] ... here is the code [reproducibility] .. the answer is 42 .. this said approach b is still simpler and more digestible, hence depending on context it might be a useful and viable approach [reflection]
  • You should display your understanding of the theory in relation to the problem but there is no reason to write long essays rewriting the theory. Your answers should be concise, comments in the code/ jupyter cells, references to theory is sufficient (yet the answers should be reproducible). In this way we can provide feedback to enhance your learning.

Submission

Assignments are to be submitted in groups of 2-3 students - One submission is needed pr group. The assignments consitute only the completed jupyter notebooks with code and text cells and your specific data if requested. Text can be entered in the provided cells as either python comments, or markdown/latex. It is important that the TAs can run the jupyter notebooks without having to install other libraries or need to update the jupyternotebooks (e.g. paths etc). Assignments should be submitted through LearnIT. In case of any uncertainties during the assignment, refer back to the instructions in the assignment text. If you need further clarification, do not hesitate to as the TA's.

For successful approval, ensure

  • your assignment can be run without modification,
  • the filename clearly identifies your group.

Hence:

  • Use Only Referenced Libraries: Please refrain from using libraries not mentioned in the assignment instructions. Stick to the ones we have referenced so TA's can run and correct your submission without needing to install a zillion libraries.
  • Maintain Directory Paths: Do not alter the location and directory paths provided in the assignment. Keeping the paths intact will help us run your submissions easily.
  • Proper File Naming: Ensure your files are appropriately named. Add your name as a suffix to the original filename. For instance, if the original file is named "Assignment1.ipynb," and you are a member of group 87 then your submission filename should be "Assignment1_group_87.ipynb." Use underscores for spaces to avoid any issues.

Academic honesty

This course adheres to the usual rules of academic conduct and honesty, and helpfulness. This specifically means that: Good practices

It is appreciated to ask for help, to help each others and to collaborate in groups / between groups, as well as to ask in-depth questions and explain to the best of our ability across competence and experience boundaries. Academic Violations

On the other hand, it is a violation of academic honesty to claim the work of others as one's own. Hence all group members must have actively participated in the assignments. Students/group members much explicitly inform Dan when this is not the case.

For example, write comments in the Jypyter notebooks / program code: By David Hilbert; in reading group with Emmy Noether.

Thanks to Emmy Noether for the help finding out the Optimization library and examples. By David Hilbert.

I have done part A and B of Exercise 42. The idea for part C and D is mostly due to Emmy Noether.

One single sentence is often enough.

If you do not write anything, you are implicitly claiming that the submitted material is your own.