[[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B171/public/cz/predmety/46/85/p4685106.html|Timetable at FEE]] [[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B171/public/cz/paralelky/P46/85/par4685106.1.html|Students of ePAL]] [[https://cw.felk.cvut.cz/brute/|Upload system BRUTE]] [[https://cw.felk.cvut.cz/forum/forum-1442.html|Discussion board]] ====== BE4M33PAL - Advanced algorithms ====== ===== Objectives ===== Individual implementation of variants of standard (basic and intermediate) problems from several selected IT domains with rich applicability. Algorithmic aspects and effectiveness of practical solutions is emphasized. The lectures provide a necessary theoretical background. ===== Prerequisites - programming ===== The course requires **programming skills** in at least one of programming languages %%C/C++/Java%%. \\ There are also homework programming tasks. Understanding to basic data structures such as arrays, lists, and files and their usage for data processing is assumed. Students who should have difficulties with elementary programming tasks will not be assigned PAL credit. We recommend to cancel the subject attendence. ===== Seminars ===== **Seminars contain:** \\ Depending on the level, expertise and demands of the students\\ 1. Exercising of selected topics from lectures. \\ 2. Analysis of homework task specifications, discussions of different variants of solutions and their effectiveness. \\ ===== Homework programming tasks ===== The semester includes homework programming problems that are required to be solved, implemented, and uploaded by the given deadlines into the [[https://cw.felk.cvut.cz/upload/|Upload system]]. The homework problems represent examples of algorithmically slightly more involved problems. Typically, few different algorithms and/or data structures must be correctly interconnected to solve the task. The time for solution is about 20 days. - **The correctness** of the solution is checked automatically using test data sets (unknown to the students). - **Running time**, is critical. The time in which the submitted solution processes each of the data files is monitored and it is compared to the running time of the reference code processing the same data file. Typically, the student solution is expected to run at most two times as long as the reference solution. Slower student solutions are regarded as unacceptable. The timetable of the homeworks: 1. assignment 10.10. - - deadline 7.11. 2. assignment 17.10. - - deadline 14.11. 3. assignment 31.10. - - deadline 28.11. 4. assignment 14.11. - - deadline 12.12. 5. assignment 28.11. - - deadline 2.1. 6. assignment 12.12. - - deadline 9.1. The deadlines are also defined for each homework tasks in the Upload system. \\ ===== Final Credit Conditions ===== In addition to the participation in the seminars it is necessary to deliver successful solutions in term of programming tasks. \\ Each tasks is executed against 10 testing data sets of different size and complexity. The solution is considered as successful if the correct results are returned for at least 9 test data sets. Therefore, the assessment of tasks according to the number of correctly processed input files is the following:\\ Grading of the homework problems according to the number of correctly processed data sets:\\ .... 8 and less................ 0 pts ............... unsuccessful solution :-( .... 9 ........................ 3 pts ............... successful solution :-) ... 10 ........................ 4 pts ............... successful solution :-D **At least 13 points is necessary to obtain to the final credit.** It does not matter how many of which homeworks one solves.\\ All tasks are required to be developed separately while avoiding plagiarism, see [[https://cw.fel.cvut.cz/wiki/help/common/plagiarism_cheating| plagiarism rules]].\\ A student who can not continually fulfill the requirements of the subject because of declared important reasons (illness, study trip, etc), needs to make an agreement with his/her seminar assistent of the lecture on an individual treatment conditions of completing the course.\\ ===== Examination ===== **Dates and locations of examinations**\\ Please register yourself in [[https://docs.google.com/spreadsheets/d/1GxO_o5mjhE2fzRuWlsJ2wbf1QwX6EfhtZdl4vOwIKEw/edit?usp=sharing| Exams timetable ]].\\ Do not register in the KOS system, all reservations are handled by the Exams timetable only.\\ **Theoretical part of exam (0 - 12 points), acceptable minimum 6 points**\\ In the theoretical part the student receives several questions and prepares a written outline of answers to them or a more detailed answer, if a specific question requires it. The answers will be discussed with the examiner, who determines the final rating. **The student must obtain at least 6 of the possible 12 points.** The time of answres preparation is limited to 1 hour at most. **Programming part of exam(0 - 12 points), acceptable minimum 6 points**\\ It includes one programming task which must programmed and submitted by the student during the examination. The task solution is evaluated in the same way as any other tasks during the semester, the solution must function properly and fast enough for at least 6 out of 12 test files at the examination. Each test file represents one grade point. Time for programming is 5 hours. The first 30 minutes are devoted to problem analysis and preparation of the solution, any coding is not allowed in the first 30 minutes. Solutions can be provided in any language of %%Java/C/C++%% or Python. Any use of Python has to be carefully considered, the speed of Python code, depending on the particular problem, might be easily insufficient for the exam purposes. \\ During the practical part of the applicant can use any printed or electronic material on %%CD/DVD/flash%% drive, which he/she brings himself. Any access to public internet sites is forbidden with the exception of BRUTE system only. Working with BRUTE, i.e. entering and submitting jobs, is the same as it is in the semester. **Working with computer(s) and other devices during the exam**\\ * Every participant works individually on his her own personal computer. * Internet connection can be used only for communication with upload system BRUTE. * Mobile phones and other electronic/computational devices must be switched off. * Listening to reproduced music/speach/audio is not allowed. * It is possible, with the examiner supervision, to browse internet using //the examiner's computer// in case of difficulties with compiler/interpreter, OS, machine hardware or another critical SW in your own machine. **Late minimum correction**\\ When you find after the failed practical exam that the failure was caused by a trivial error in your code you may ask the examiner for repeated evaluation of the corrected code. If the corrected code works according to the exam demands you may still pass this part of the exam. The necessary conditions of a success in such case are 1. The correction must be conceptually simple and physically short (few lines of code, at most). 2. The original failled solution must be uploaded to Brute before the end of the exam. 3. The correction must be done in the day of the exam. **Additional examination trials**\\ A student who does a retake and succeeded in the previous exam in either its practical or theoretical part, may not participate in this part again, the points are completely transferred to the retake. He/she may also try to improve his/her performance and to participate in this section again, the final score is then counted from the better performance trial. These rules apply to all of these exam retake trials. **Individual conditions**\\ When a student has an important reason to take part in the exam under different conditions than those specified here he/she has to arrange for individual conditions with the examiner sufficiently ahead in time. **The classification scheme**\\ The rating of the student is proposed after a successful completion of practical and theoretical part of the exam. The rating points are summed from points received from the solutions of programming tasks in the semester, points received from the programming part of the exam, and points received from the theoretical part. The sum of points corresponds to a grade according to the following table:\\ Points range: --------------------------------- homework problems: 13 - 24 pts programming exam: 6 - 12 pts theoretical exam: 6 - 12 pts --------------------------------- Total: 25 - 50 pts Total sum of points grading 0 -- 24 F, failed exam attempt 25 -- 29 E 30 -- 34 D 35 -- 39 C 40 -- 44 B 45 -- 50 A ===== Teachers ===== We wish you good luck and determination. \\ ||| | [[http://cmp.felk.cvut.cz/~berezovs|{{:courses:be4m33pal:mgb96x120.jpg}}]] |[[http://cmp.felk.cvut.cz/~prusapa1/|{{http://cmp.felk.cvut.cz/~prusapa1/foto.jpg?90x120}}]] | | Marko\\ Genyk-Berezovskyj | Daniel Průša | ----------