Warning

# Julia for optimization and teaching

Quick links scripts forum BRUTE timetable

The course is part of prg.ai.

CZECH TRANSLATION is available as well.

## Introduction

The 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: Lukáš Adam, Vašek 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 skripts.
• Consultations are available by appointment.
Datum Téma Kvízy a úkoly Deadline
22. 9. Motivational lecture and basics of Julia quiz 28. 9.
29. 9. Data Structures quiz 5. 10.
6. 10. Conditions and loops quiz 12. 10.
13. 10. Methods and functions homework 19. 10.
20. 10. Commonly used packages quiz 26. 10.
27. 10. Type system quiz 2. 11.
3. 11. Code organization quiz 9. 11.
10. 11. Optimization homework 16. 11.
17. 11. National holiday
24. 11. Regression and classification quiz 30. 11.
1. 12. Neural networks I quiz 7. 12.
8. 12. Neural networks II homework 14. 12.
15. 12. Statistics quiz 11. 1.
12. 1. Project consultation

## Assessment and Examination

The course ends with a graded credit. The student will receive a grade according to the points earned.

 Online quizzes max. 9 points Homework max. 30 points Project max. 61 points Total max. 100 points

The grade is awarded according to the following scoring interfaces.

 Points Grade [0, 50) [50, 60) [60, 70) [70, 80) [80, 90) [90, 100] F E D C B A

### Online quizzes

The purpose of the online quiz is to review the material over the course of the semester. Each quiz requires you to select the correct answer from the options provided. There is no limit to the number of times a quiz can be repeated.

We will assign 9 quizzes during the semester, and you will receive 1 point for each quiz if completed on time. There are 0 points for late submission. Each quiz will be given in BRUTE. You will have one week to complete the quizzes.

### 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 BRUTE. There is one week to complete the homework. More detailed information about the structure is in the custom 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 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 section.

The following deadlines apply for project approval:
• The project must be proposed in person no later than the lecture on 12. 1.
• Potential required modifications must be developed by 19. 1.