How the course is conducted

From 22101
Jump to navigation Jump to search

Weekly exercises are given every Tuesday. This constitutes an exercise set. There will be 13 of those.
Exercises have to be uploaded to "DTU Learn" latest Sunday in the week after the exercises were given, i.e you have 6 days to complete a set.
Peer evaluation of exercises are done in the following week to be handed in Friday.
The evaluations are mandatory. At least 11 of 13 evaluations must be handed in - in time - for you to be allowed to take the exam. Since you can only evaluate if you have handed in exercises, then you need to do those, too :-)
You are required to make a notebook in Jupyter for every exercise set, i.e. every week. The .ipynb file is what you hand in to Peer Evaluation.
Solutions to each week's exercises are published before the next week's lesson on DTU Learn (under Discussions).
Exercises which are handed in after the solutions are published, are voided and will not count, no matter the reason for being late.
You can find a link to a Discord server in the announcement on DTU Learn (first page). The intention is that you can group together here and get/give help outside normal class hours.


Peer evaluation of exercises

You must upload the solutions for the exercise set at given lesson to DTU Learn. The following week you must evaluate another students solutions - to be handed in on the Friday. You are getting some help with that as I have published my solutions at that time. You can only evaluate if you have uploaded solutions yourself and you must have done at least 11 evaluations to participate in the exam.

The peer evaluation is a central part of the learning process. As you will discover, I will be asking many questions about various aspects of the code you will have to evaluate. Initially, it can seem overwhelming, and you might not have been taught about all yet, but it is the same questions week after week, and you mostly have to check boxes, so it will get easier during the course. You learn both by doing the evaluation and by receiving (reading) it.

You can/should use the criteria in Good code in your own programs and the evaluation. The questions in the evaluation are more in depth than Good code. The evaluation is anonymous, but known to the teacher.

Learning from exercises and teachers solutions

You obviously learn from doing the exercises. However, that is just phase 1. Reflecting over your own solutions while reading the teachers solutions is extremely useful; It prepares you for the following week, it prepares you for the peer evaluation, it shows you alternative solutions you might not have thought about.
The solutions are examples with explanations and also cover common mistakes.

Pythonic exercises

Python has several constructs, functions, ways/idioms to do certain things. People who have seen some python before may know of this. When using these methods and ways of thinking the code becomes "pythonic".
It is a learning objective in the course and important for your future as a programmer to learn to program and to design algorithms.
It happens especially in the first half of the course that learning to program and making pythonic code are at odds. This can been seen in the teachers solutions - you might think: "Why did he do it this way, when you can do it smarter/more intuitive/easier/pythonic this way". This is the reason - the course prioritizes learning to program more than doing it the pythonic way. When you have learned to make algorithms and code well, you can do this in any language. Pythonic coding only works with python.

If you do not observe this during the course - no problem.

Special exercises

Purple exercises has to be done in pseudo code before you start implementing them in Python. The pseudo code is part of the hand-in for these exercises. So - make the pseudocode FIRST, then the real python programs AFTERWARDS for the purple exercises.

Reading ahead and using not yet covered techniques in exercises - don't do it

Sometimes people read ahead in the text book or the net and discover some techniques, that makes solving the exercises much easier. You might have learned some python in other courses. While you should learn whatever you can, then there is a reason for why the exercises are as they are, and the learning material (powerpoint) is as it is. A very important part of the course is to learn how program, how to think "programming", how to analyze a problem, how to formulate a strategy/workflow/algorithm that will solve the problem.
If you just use an advanced trick, then you are not learning to analyze or formulate strategies. You are simply not learning to work with what you have, and consequently you will be doing enormous harm to your future learning. By not thinking - structuring the code more logically - gaining insight in the natural flow of problem solving, you will lack those skills - that mindset - when you really need it to solve more difficult exercises and/or problems. Python is full of tricks, so it is rather tempting, but damaging to use them during the course. You will have plenty of opportunity later to do trick programming.

Preparation for exam

The exam is a multiple choice questionnaire. There will be 72 questions, which should be answered at the best of your ability within 2 hours. There is usually between 5 and 8 choices of answer for each question and there is always one answer which is correct - or more correct than the others. Negative points are not used, i.e. there is no penalty for answering wrong (we call it guessing). Using the standard at DTU, you must have 60% correctly answered questions to pass. You have all aids available, but NO INTERNET. This means you can download the powerpoints, my solutions, videos and text books and other stuff you find useful. Likewise you can use Jupyter Notebook since a local version (as used in the course) does not require internet.
The questions will - obviously - be based on the curriculum. This very concretely means that knowing the context of the powerpoints will be an advantage. There are also questions where you must analyze 8-12 lines of code and answer what it does or what the result of running it is. You do not need extra files for answering.
There is no trial exam.