Olimpiade Sains Nasional 2019 Bidang Informatika
Tidak terdapat perbedaan dengan Silabus OSN 2018.
Mengacu pada silabus IOI 2019 dengan berbagai penyesuaian.
- Dasar-dasar Pemrograman
- Sintaks dan semantik dasar dari bahasa yang diperbolehkan pada KSN yang bersangkutan
- Variabel, tipe data, ekspresi, dan assignment
- Masukan dan keluaran dasar
- Percabangan dan perulangan
- Fungsi dan parameter
- Operasi Logika dan Bitwise
- Operator logika dasar (konjungsi, disjungsi, implikasi, biimplikasi, disjungsi eksklusif)
- Tabel kebenaran
- Modus Ponens dan modus Tollens
- Aritmetika
- Bilangan bulat, operasi (termasuk perpangkatan), perbandingan
- Sifat-sifat bilangan bulat (tanda, paritas, keterbagian)
- Operasi-operasi modular dasar (penjumlahan, pengurangan, perkalian)
- Perpangkatan modular
- Bilangan prima
- Bilangan pecahan, persentase
- Teori bilangan
- Teori himpunan
- Aturan Berhitung
- Aturan penjumlahan dan perkalian
- Barisan aritmetika dan geometri
- Bilangan Fibonacci
- Permutasi dan kombinasi
- Probabilitas
- Pigeonhole principle
- Prinsip inklusi dan eksklusi
- Segitiga Pascal, teorema binomial
- Rekursi
- Konsep rekursi
- Fungsi matematis rekursi
- Prosedur rekursi sederhana
- Divide-and-conquer
- Backtracking
- Pencarian dan Pengurutan
- Linear search
- Binary search
- Bubble sort, insertion sort
- Quicksort, merge sort, heapsort
- Strategi Pemecahan Masalah
- Brute-force
- Greedy
- Divide-and-conquer
- Backtracking (rekursif dan bukan rekursif)
- Dynamic programming
- Struktur Data
- Tipe data primitif (boolean, integer, character, floating point numbers)
- Array (termasuk multidimensi)
- String dan operasinya
- Stack dan queue
- Binary heap
- Disjoint set
- Graf dan Tree
- Tree dasar (termasuk rooted tree)
- Graf berarah dan graf tak berarah
- Graf berbobot dan graf tak berbobot
- Representasi graf (adjacency List, adjacency matrix, edge list)
- Penjelajahan graf (BFS, DFS, keterhubungan)
- Shortest path (algoritma Dijkstra, algoritma Bellman-Ford, algoritma Floyd-Warshall)
- Minimum spanning tree (algoritma JarnÃk-Prim, algoritma Kruskal)
- Geometri Dasar
- Garis, segmen garis, sudut
- Segitiga, persegi, persegi panjang, lingkaran
- Titik, koordinat pada bidang Kartesius 2 dimensi
- Jarak Euclidean
- Teorema Pythagoras