English translation

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: Václav Šmídl, Václav Mácha, Michaela Mašková (maskomic@fel.cvut.cz), Šimon Soldát (soldasim@fel.cvut.cz).
  • 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.
Date Lecture + exercise Topic Homework Deadline
26. 10. 2024 0+4 Basics of Julia I
3. 10. 2024 0+4 Basics of Julia II
10. 10. 2024 0+4 Commonly used packages
17. 10. 2024 0+4 Methods and functions homework 23. 10. 2024
24. 10. 2024 0+4 Type system
31. 10. 2024 0+4 Code organization I
7. 11. 2024 0+4 Code organization II
14. 11. 2024 2+2 Optimization homework 20. 11. 2024
21. 11. 2024 2+2 Regression and classification
28. 11. 2024 2+2 Neural networks I
5. 12. 2024 2+2 Neural networks II homework 11. 12. 2024
12. 12. 2024 2+2 Statistics
19. 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 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 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 section.

The following deadlines apply for project approval:
  • The project must be proposed in person no later than the lecture on 19. 12. 2024
  • Potential required modifications must be developed by 10. 1. 2025
courses/b0b36jul/en/start.txt · Last modified: 2024/10/03 09:12 by maskomic