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.


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.

Using python elements not in the curriculum

Most people sooner or later use python not in the curriculum, or not yet covered by the course progression. There are several reasons for that: They know some python from other courses, they have been using AI to create solutions, they have been reading ahead or they have search the internet for answers.

While knowledge is good, then there is a reason for why the exercises and the learning materials (powerpoint) are as they are - it is a designed course progression. 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.
By not following the course progression, then you are not learning to analyze or formulate strategies. 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.
Also, it brings problems to peer evaluation, as not everyone knows python that is outside the curriculum.

If you want to show some fancy python (i.e. outside the curriculum/progression), then make TWO solutions to the exercise. One that shows the fancy python and one that follows the curriculum and the course progression. The last one can then be used for peer evaluation. If you find yourself unable to make the second solution, then maybe you should study the subject some more.

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). 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.