====== English translation ====== ====== Julia for optimization and teaching ====== **Quick links** [[https://juliateachingctu.github.io/Julia-for-Optimization-and-Learning/stable/|scripts]] [[https://cw.felk.cvut.cz/forum/forum-1857.html|forum]] [[https://cw.felk.cvut.cz/brute/teacher/course/1540|BRUTE]] [[https://intranet.fel.cvut.cz/cz/education/rozvrhy-ng.B231/public/html/predmety/69/85/p6985806.html|timetable]] **The course is part of [[https://prg.ai/minor/17347/|prg.ai]].** **[[../start|CZECH TRANSLATION]] is available as well.** ===== Introduction ===== The [[https://julialang.org/|Julia]] programming language is increasingly used by the community for its suitability in numerical computing. The course consists of two parts. The first part presents the Julia language and shows its basics. The second part first shows the basic idea of mathematical optimization and applies it to machine learning, statistics, and optimal control of differential equations. While the first part shows the individual concepts of Julia, the second part combines them into longer logical code sections. Individual applications are always explained theoretically, simple functions are programmed by hand, and then packages are shown where the code is already complete. The course concludes with a final project. The student can choose a topic or try working with real data by choosing a competition from Kaggle. ===== Lectures and exercises ===== * Lecturers: Václav Šmídl, Václav Mácha, Michaela Mašková. * The grant is 1+3 overall. The first half of the semester is 0+4, the second half is 2+2. * Lectures and exercises follow the online [[https://juliateachingctu.github.io/Julia-for-Optimization-and-Learning/stable/|skripts]]. * Consultations are available by appointment. ^ Date ^ Lecture + exercise ^ Topic ^ Homework ^ Deadline ^ | 28. 9. 2023 | 0+4 | //Státní svátek// | --- | --- | | 5. 10. 2023 | 0+4 | Motivational lecture and basics of Julia | --- | --- | | 12. 10. 2023 | 0+4 | Data Structures | --- | --- | | 19. 10. 2023 | 0+4 | Conditions and loops | --- | --- | | 26. 10. 2023 | 0+4 | Methods and functions | homework | 1.11.2023 | | 2. 11. 2023 | 0+4 | Commonly used packages | --- | --- | | 9. 11. 2023 | 0+4 | Type system | --- | --- | | 16. 11. 2023 | 0+4 | Code organization | --- | --- | | 23. 11. 2023 | 2+2 | Optimization | homework | 29.11.2023 | | 30. 11. 2023 | 2+2 | Regression and classification | --- | --- | | 7. 12. 2023 | 2+2 | Neural networks I | --- | --- | | 14. 12. 2023 | 2+2 | Neural networks II | homework | 20.12.2023 | | 21. 12. 2023 | 2+2 | Statistics | --- | --- | | 11. 1. 2024 | 4+0 | //Project consultation// | --- | --- | ===== Assessment and Examination ===== The course ends with a graded credit. The student will receive a grade according to the points earned. | Homework | max. 30 points | | Project | max. 70 points | | **Total** | max. 100 points | The grade is awarded according to the following scoring interfaces. ^ Points | [0, 50) | [50, 60) | [60, 70) | [70, 80) | [80, 90) | [90, 100] | ^ Grade | F | E | D | C | B | A | ==== Homework ==== The goal of the homework is to program a short function that will automatically evaluate on unknown inputs. You will receive an evaluation of the function you have written immediately after uploading. As with the quizzes, there is no limit to the number of uploads of each function. You will be given 3 homework assignments during the semester, and if completed on time, you will receive 10 points for each. Late submissions will be deducted 0.5 points for each day late. Each homework assignment will be given in [[https://cw.felk.cvut.cz/brute/teacher/course/1540|BRUTE]]. There is one week to complete the homework. More detailed information about the structure is in the custom [[./hw/start|section]]. ==== Project ==== The goal of the final project is to demonstrate the skills learned in the course. The topic of the final project must be approved by one of the instructors by the deadline listed below. The student chooses the project and presents a brief description of the project and its functionality to one of the instructors. Without this approval, the project cannot be defended. The project is followed by a project defense. More detailed information on project design, implementation, and approval is in a separate [[./project/start|section]]. **The following deadlines apply for project approval:** * The project must be proposed in person //no later// than the lecture on 11. 1. 2024 * Potential required modifications must be developed by 18. 1. 2024