Contact, Help, Ethics and FAQ"
Before contacting anyone for help, please check whether your question has an answer in the FAQ list below. If not:
If you have a question about the lecture material or course organisation, then contact the head teacher.
If you have a question about the assignments or infrastructure, then contact the assistants at a help or solution session for an immediate answer. Short clarification questions (that is: not about programming issues) that are emailed to the AD2 helpdesk are answered as soon as possible during working days and hours. No answer means that you should go to a help session: almost all the assistants’ budgeted time is allocated to grading and to the help, grading, and solution sessions.
Ethics
The legislation on plagiarism and cheating and Pierre Flener’s summary of Uppsala University will be rigorously applied, without exceptions. This disallows using a public repository (such as GitHub), where you should use a free private student repository for code management. We reserve the right to use plagiarism detection tools and point out that they are extremely powerful.
Frequently Asked Questions (FAQ) and Answers
A. Generalities
Will I get rich after passing this course? Some of the wealthiest people on the planet made their fortunes from clever algorithms and data structures, witness Sergey Brin and Larry Page, inventors of the Google web search engine (valued at many gazillions of sek). Some of the wealthiest people in Sweden studied at Uppsala University and went on to develop software needing clever algorithms and data structures, witness some of the founders of OnGame (acquired by bwin for about 4.5 billion sek), MySQL (acquired by Sun Microsystems for about 6.3 billion sek), and Skype (acquired by eBay for at least 17 billion sek). There is no limit to the need for efficient algorithms and data structures.
What are the practical applications of the discussed algorithms and data structures? Most batches of slides list a lot of practical applications. Each algorithm and data structure has an abstract name so that one does not risk thinking its scope is restricted to a particular application.
Why all this theory in the course? Why is it at the beginning of the course? Is it useful? In order to discuss in a scientific way the relative merits of alternative algorithms or data structures for a given purpose, we need an analytic way of predicting their performance, rather than experimentally and inaccurately measuring it in milliseconds or bytes. The (few!) notions seen are among the most celebrated of computing science and will transcend the rest of your studies as well as any programmer career.
Why are there not more examples and solved exercises in lectures? Like every course, AD2 has a required theoretical content (which is not decided by the head teacher) and the standard time budget (students are 33% fulltime on AD2, and no teacher is anywhere near fulltime on AD2): the balance of theory and practice in the lectures simply follows from these data and is not a sign of our bad will. On the contrary, if allocated more time (but this is impossible), then we would love to offer additional practical problem solving sessions.
B. Assignments, Help Sessions, Grading Sessions, and Solution Sessions
Why are there not more assistants? Why are there not more examples and solved / supervised exercises by assistants in lessons? Like every course, AD2 has the standard time budget (students are 33% fulltime on AD2, and no teacher is anywhere near fulltime on AD2): the number of scheduled events simply follows from these data and is not a sign of our bad will. On the contrary, if allocated more time (but this is impossible), then we would love to offer additional practical problem solving sessions.
How do I best use my time, and yours, in order to solve an assignment? Prepare your solution as far as possible until the corresponding help sessions, in order to make best use of that reserved timespan of personal attention by the assistants. This is much more effective than going to a help session, printing out the assignment (which was published at least a week before the first help session and often does not require any material taught in the meantime), and not meeting all the difficulties until the end of the two session hours.
Why is there not more email support for the assignments? We have scheduled almost all the standard time budget for the lectures, help sessions, grading sessions, solution sessions, grading, and preparation. This is why we can only answer to emailed short questions that trigger brief reply times, and this is a more personal and rational way of spending the standard time budget: more email support would inevitably result in fewer help sessions.
I am lost! Why do the assignment instructions not tell us how to solve the questions? Stating only what output has to be computed from the inputs is a pedagogical choice. In real-life engineering problems, you are not asked to solve a problem by using method m on page p of textbook t. Come to some of the help sessions of an assignment in order to get advice on what is wrong with your current solution or get hints on how to proceed. If you think a programming task is insufficiently described in terms of its pre- and post-conditions, then contact the teachers: we vet problem descriptions with utmost care and no flaws are due to purpose or sloppiness.
Why are the assignment questions neither in sync with the lecture contents, nor closer to them? See the previous question. The assignment questions are at most within the order of difficulty of the questions tackled in the lectures, and the lecture material helps in solving them, but the data structures and algorithms to be designed in assignments are new compared to the lectures, and they have been selected as examples of the infinite variety of interesting algorithmic questions that occur in real life.
Why are there not a lot of small assignments rather than the few bigger ones? Algorithm and data structure design is best practised not by drill of small questions with no relation to each other or real life, but by tackling bigger assignments, which have been selected as examples of the infinite variety of interesting algorithmic questions that occur in real life.
Why are the assignments to be programmed in Python rather than in any language of my choice? We have no resources for offering skeleton programs and simple test cases for more than one programming language. A lot of students prefer those features over the freedom of choice of a programming language. Besides, our semi-automated grading system is language-specific for the same reason: it allows us to grade assignments faster and to dedicate more of the standard time budget to actual teaching.
Why do we need to hand in reports in addition to programs? This is an algorithms course and the algorithms underlying your programs have to be analysed, hence a report is needed, as we are not just interested in knowing the complexity you claim your algorithm has, but also in how you made that claim. Also note that this course was chosen in order to fulfil the curriculum goal of the ability to communicate in writing: see the course goals
Why do we not get more finegrained feedback on our assignment reports and programs? Our solution sessions are a more rational way to use the standard time budget: we give collective feedback instead of finegrained team-wise feedback. More detailed comments can be obtained orally from the assistants upon appointment.
Why do I need to spend so much time on the assignments when they are only worth 2 credits? Any time spent on the assignments reduces the amount of time needed to prepare for the exam, so it pays off.
C. Exam, Grades, and Credits
When will the exam be graded? It was a multiple-choice exam, so why are “the” answers not published right away? The head teacher will first read the starred comments, if any, about the questions in the handed-in answer sheets and then only grade, as such comments may affect his judgement about which answers can be acceptable with full or partial credit. He will grade as soon as he finds the time after getting the answer sheets. Please be patient.
Where are model answers to the questions of previous exams? Nowhere, except for the multiple-choice exams. The head teacher does not believe in making such answers available (on-line or otherwise) without discussing solution processes or any alternative correct answers in person at the same time. This is the pedagogical approach taken also for the assignments, where you can contact the assistants for this purpose.
Will there be algorithm design questions in the exam? Will exam questions be similar to the assignment questions? Algorithmic skills are mostly tested in the assignments. Any algorithms for exam questions will be a handful lines long, but algorithm design experience from the assignments ought to be useful for such exam questions. Analytic skills tested in the assignments also ought to be useful for exam questions.
Will we have multiple-choice exam questions? The head teacher has the right for any form of examination and decides as he sees fit. Note that a multiple-choice question saves you the time of tidying up your answer notes explaining how you reached your chosen answer. Further, if you think a question is unclear or wrong, then you are free to explain on the answer sheet what your difficulty with the question is and what assumption underlies the answer you have chosen or the other answer you indicate. Also, partial credit can be given to some answers in exceptional circumstances.
What will the exam questions be? What should I focus on when preparing the exam? Try and come to the lectures, as the head teacher makes it very clear there what the most important elements of the course material are.
I nearly passed the exam. What can I do to avoid taking the next exam? No make-up opportunities will be created for near-passes, as the head teacher evaluates those cases very carefully before announcing the exam results.
D. Resources, Contact, Help, Ethics, FAQ, Course Evaluations, and Feedback
Why do I not get a reply to my emailed query? On working days and hours, you can normally expect a reply within a few hours, provided the question is brief, unanswered in this FAQ, answerable in a short time (and not about programming issues), and sent to all the assistants at the same time.
Are you interested in additional links to great internet resources? Yes, absolutely! Send us an email with links, and we will add the best ones to the course web-pages.