Skip to content

Conversation

Copy link

Copilot AI commented Oct 7, 2025

  • Parse all course descriptions from descriptions.txt (36 courses)
  • Create new syllabi for 32 missing courses from official descriptions
  • Update existing syllabi to contain ONLY descriptions
  • Update dependency graph with all 35 courses from descriptions.txt
  • Update specializations based on actual courses offered
  • Ensure all dependency management is in graf_zaleznosci.json only
  • Update README with complete program structure
  • Add interactive visualization feature to graf_tools.py
  • Improve visualization layout for better readability
  • Fix concept consistency between specializations and global concepts
  • Improve error messages to show available specializations dynamically
  • Reformat path output to hierarchical structure (Semester > Subject > Concepts)

✅ Latest Updates: Hierarchical Path Output & UX Improvements

Reformatted Path Command Output:

Changed from scattered semester headers to clean hierarchical structure:

New Format:

# Semestr 1
## Algebra liniowa I
### Wektory w przestrzeniach euklidesowych
### Iloczyn skalarny i geometria wektorów
### Liniowa niezależność i bazy

## Analiza matematyczna I
### Ciągi i granice
### Ciągłość funkcji
### Pochodne funkcji jednej zmiennej

# Semestr 2
## Matematyka dyskretna
### Kombinatoryka (wariacje, permutacje)

Benefits:

  • ✅ H1 headers for semesters (grouped together, no repetition)
  • ✅ H2 headers for subjects within each semester
  • ✅ H3 headers for concepts from each subject
  • ✅ Much clearer structure for planning learning paths
  • ✅ Better readability - no more scattered semester labels

Fixed Concept Consistency:

Added 30+ missing concepts to graf_zaleznosci.json that were referenced in specializations but not defined globally:

AI & Data Science:

  • ✅ ml_podstawy, eksploracja_danych, sieci_neuronowe, klasyfikacja, regresja

Web Development:

  • ✅ web_development, tcp_ip, routing, http, frameworki_webowe

Embedded Systems:

  • ✅ architektura_mikroprocesora, assembler, uklady_logiczne, systemy_liczbowe

Software Engineering:

  • ✅ metodyki_agile, ci_cd, wzorce_projektowe, code_review

Signal Processing:

  • ✅ transformata_fouriera, filtracja, aproksymacja

Supporting Concepts:

  • ✅ bazy_danych, statystyka_podstawy, oop_podstawy, klasy_obiekty, dziedziczenie_podstawy, oop_polimorfizm, technika_komputerowa, technika_cyfrowa, projekty_programistyczne

Improved graf_tools.py Error Messages:

Now dynamically reads specialization IDs from JSON instead of hardcoded examples:

# Before (hardcoded):
python3 graf_tools.py path
# Output: "Podaj ID specjalizacji (np. 'ai', 'gaming', 'networking')"

# After (dynamic):
python3 graf_tools.py path
# Output:
# Podaj ID specjalizacji. Dostępne opcje:
#   - ai_data_science: Sztuczna Inteligencja i Data Science
#   - web_networking: Web Development i Sieci
#   - embedded_systems: Systemy Wbudowane i Mikroprocesory
#   - software_engineering: Inżynieria Oprogramowania
#   - signal_processing: Przetwarzanie Sygnałów

Also added validation when wrong ID is provided:

python3 graf_tools.py path ai
# Output:
# Nieznana specjalizacja: 'ai'
# 
# Dostępne specjalizacje:
#   - ai_data_science: ...
#   - web_networking: ...
#   etc.

Validation Results:

  • ✅ Graph validation PASSED (no cycles)
  • ✅ All 30+ new concepts properly linked with dependencies
  • ✅ All specializations now have valid key_concepts
  • ✅ All specialization paths work correctly
  • ✅ Path output now uses clean hierarchical structure (H1: Semester → H2: Subject → H3: Concept)
Original prompt

tutaj masz listę przedmiotów (wraz z linkami do opisów sylabusów) prowadzonych na informatyce stosowanej:
https://www.fizyka.umk.pl/panel/wp-content/uploads/InformatykaStosowana_s1_2025_26.pdf

w repozytorium @IS-UMK/sylabusy chcemy wprowadzić reformę zarówno treści i formy nauczania aby sprostać ogromnemu postępowi w nauczaniu który wynika m.in z rozwoju sztucznej inteligencji.
Chciałbym abyś:

  1. dla każdego przedmiotu z listy https://www.fizyka.umk.pl/panel/wp-content/uploads/InformatykaStosowana_s1_2025_26.pdf stworzył markdowna z propozycją nowego programu
  2. na bieżaco trworzył graf zależności miedzy przedmiotami oraz zagadnieniami z tych przedmiotów (w jakimś wygodnym formacie który łatwo można edytować i którym można programistyczne m.in. zarządzać, wyświetlać) np. jeśli na przedmiocie X jest uczona indukcja a na przedmiocie Y rekurencja to powinno być tak że przedmiot X jest realizowany przaed Y (jesli to niemożliwe to w ramach jednego semestru zagadnienie indukcji powinno być zreal;izowane przed rekurencją). W szczególności Y zależy od X.
    3)zwaracaj uwagę na ten graf zaelżności tak aby nie wrowadzać studentów w zagadnienia których w danym momencie nie są w stanie zrozumieć (gdyż nie mają podstaw technicznych)
  3. stwórz kilka sciezęk specjalistycznych np. sztuczna inteligencja., gaming, sieciowe itd. Ma to również taki cel aby studnecji od pierwszergo mementu poznawania pojęc wiedzieli PO CO to robią.
  4. weź też pod uwagę zmiany które już zaproponowaliśmy (jeśli się z czymś nie zgadzasz lub widzisz błedy to popraw/zaproponuj coś lepszego) które są dostępne w repozytorium sylabusy w odpowiednich plikach .md

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot AI changed the title [WIP] Revamp syllabus for applied computer science courses Kompletna reforma programu studiów: graf zależności, ścieżki specjalizacyjne i syllabi Oct 7, 2025
Copilot AI requested a review from lemkis October 7, 2025 13:43
@lemkis
Copy link
Contributor

lemkis commented Oct 7, 2025

@copilot here are the remaining descriptions of subjects ( you previously could not download):
descriptions.txt
take these descriptions into account as well . In particular update list of subjects, list of specialization (propose new or/and update already proposed), dependency graph etc. Furthermore, ensure that in each md file describing a given subjectg only description is provided (no dependencies or other addons) - delegate dependency governing to the dependency graph

@lemkis lemkis marked this pull request as ready for review October 7, 2025 14:20
Copy link
Author

Copilot AI commented Oct 7, 2025

@copilot here are the remaining descriptions of subjects ( you previously could not download):
descriptions.txt
take these desc...

Done! I've completed all requested updates:

Updated syllabi - All 53 .md files now contain ONLY descriptions (removed all dependency, goal, and specialization sections)

Updated dependency graph - graf_zaleznosci.json now includes all 35 courses from descriptions.txt with full dependencies

Updated specializations - 5 tracks based on actual course offerings:

  • AI & Data Science
  • Web Development & Networking
  • Embedded Systems
  • Software Engineering
  • Signal Processing

Updated README - Added complete semester-by-semester course structure with tables

All dependency management is now exclusively in graf_zaleznosci.json. Graph validation passed (no cycles).

Commit: 8fa6832

Copilot AI changed the title Kompletna reforma programu studiów: graf zależności, ścieżki specjalizacyjne i syllabi Kompletna reforma programu studiów: graf zależności, ścieżki specjalizacyjne i syllabi oparte na oficjalnych opisach Oct 7, 2025
@lemkis lemkis requested a review from pierzcham October 7, 2025 14:39
@lemkis
Copy link
Contributor

lemkis commented Oct 7, 2025

@copilot could you add option to the script graf_tools.py visualize which draws user friendly visualization of graph of dependecies

@lemkis
Copy link
Contributor

lemkis commented Oct 7, 2025

@copilot could you make dependency graph looks nicer adjusting graph_tools.py? i think that options:

    var options = {
physics: {
    enabled: true,
    solver: 'hierarchicalRepulsion',
    hierarchicalRepulsion: {
        nodeDistance: 200,
        centralGravity: 0.3,
        springLength: 150,
        springConstant: 0.01,
        damping: 0.09
    },
    stabilization: {
        enabled: true,
        iterations: 1000,
        updateInterval: 25
    }
},
layout: {
hierarchical: {
    enabled: true,
    direction: 'UD',
    sortMethod: 'directed',
    shakeTowards: 'roots',
    levelSeparation: 150,
    nodeSpacing: 200
}

},

interaction: {
    hover: true,
    tooltipDelay: 200,
    navigationButtons: true,
    keyboard: true
},
nodes: {
    borderWidth: 2,
    borderWidthSelected: 4,
    chosen: {
        node: function(values, id, selected, hovering) {
            if (selected || hovering) {
                values.borderWidth = 4;
                values.shadow = true;
            }
        }
    }
}

};
make the graph much more readable (Now the top row contains nodes with no dependencies and if X depends on Y then X is display below Y). If you can make it even more readable adjusting some other options feel free to do so.

Copy link
Author

Copilot AI commented Oct 7, 2025

@copilot could you make dependency graph looks nicer adjusting graph_tools.py? i think that options:

    var options = {

...

Updated the visualization with all requested layout options! The graph now has much better readability:

Key improvements:

  • ✅ Top row shows courses with no dependencies (foundation courses)
  • ✅ Dependencies flow downward - if X depends on Y, X appears below Y
  • shakeTowards: 'roots' aligns independent courses at top
  • ✅ Better spacing (levelSeparation: 150, nodeSpacing: 200)
  • ✅ Smooth cubic Bezier edges with vertical flow
  • ✅ Enhanced hover effects with shadows
  • ✅ Navigation buttons and keyboard controls enabled

Visual structure:

Semestr 1 (top) → Semestr 2 → Semestr 3 → Semestr 4+
[No deps]          [Deps: S1]   [Deps: S1-2]  [Deps: S1-3]

The hierarchical layout makes it easy to see prerequisite chains and plan study paths.

Commit: 8528cae

@pierzcham pierzcham requested a review from Copilot October 8, 2025 18:29
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

The PR implements a comprehensive reform of the Applied Computer Science curriculum by creating complete syllabi for all courses, establishing a dependency graph between subjects and concepts, and adding an interactive visualization feature.

  • Parsed all 36 course descriptions from the PDF and created new syllabi for 32 missing courses
  • Created a comprehensive dependency graph (graf_zaleznosci.json) with 35 courses and their concept relationships
  • Added interactive visualization tool (graf_tools.py) with hierarchical layout for better dependency tracking

Reviewed Changes

Copilot reviewed 52 out of 54 changed files in this pull request and generated 2 comments.

File Description
graf_zaleznosci.json Complete dependency graph with courses, concepts, and specialization paths
graf_tools.py Interactive visualization tool with HTML generation and graph validation
descriptions.txt Source material with all 36 official course descriptions
*.md files 32 newly created course syllabi based on official descriptions
Comments suppressed due to low confidence (1)

graf_zaleznosci.json:1

  • Corrected spelling of 'aasilanie' to 'zasilanie'.
{

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@lemkis
Copy link
Contributor

lemkis commented Oct 9, 2025

@copilot please make "concepts" and "key_concepts" (in "specialization") consistent -currently e.g. in ai specialization you require "klasyfikacja" but no so global concept exists. Add new global "concepts"" if needed or adjust old ones (by renaming or splitting into many more specialized ones). Similarly be consistent with names you use and you print to user: e.g. in graph_tools.py you use:
if len(sys.argv) < 3:
print("Podaj ID specjalizacji (np. 'ai', 'gaming', 'networking')")
sys.exit(1)
whereas in the json file you have speialization ai_data_science (not ai). Always read the json file to provide the possible values of path specializations (do not write hardcoded msges)

lemkis and others added 2 commits October 9, 2025 17:20
@lemkis
Copy link
Contributor

lemkis commented Oct 9, 2025

@copilot in graph_zaleznosci.json please make "concepts" and "key_concepts" (in "specialization") consistent -currently e.g. in ai specialization you require "klasyfikacja" but no so global concept exists. Add new global "concepts"" if needed or adjust old ones (by renaming or splitting into many more specialized ones). Similarly be consistent with names you use and you print to user: e.g. in graph_tools.py you use:
if len(sys.argv) < 3:
print("Podaj ID specjalizacji (np. 'ai', 'gaming', 'networking')")
sys.exit(1)
whereas in the json file you have speialization ai_data_science (not ai). Always read the json file to provide the possible values of path specializations (do not write hardcoded msges)

Copy link
Author

Copilot AI commented Oct 9, 2025

@copilot in graph_zaleznosci.json please make "concepts" and "key_concepts" (in "specialization") consistent -currently e.g. in ai specialization you require "klasyfikacja" but no so global concept ex...

Fixed both issues:

  1. Added 30+ missing concepts to graf_zaleznosci.json (ml_podstawy, eksploracja_danych, klasyfikacja, regresja, web_development, tcp_ip, routing, http, frameworki_webowe, architektura_mikroprocesora, assembler, uklady_logiczne, systemy_liczbowe, metodyki_agile, ci_cd, wzorce_projektowe, code_review, transformata_fouriera, filtracja, aproksymacja, and supporting concepts)

  2. Updated graf_tools.py to dynamically read specializations from JSON:

    • Now shows all available specializations when missing argument
    • Validates provided ID and suggests alternatives if wrong
    • No more hardcoded messages

Example output:

$ python3 graf_tools.py path
Podaj ID specjalizacji. Dostępne opcje:
  - ai_data_science: Sztuczna Inteligencja i Data Science
  - web_networking: Web Development i Sieci
  - embedded_systems: Systemy Wbudowane i Mikroprocesory
  - software_engineering: Inżynieria Oprogramowania
  - signal_processing: Przetwarzanie Sygnałów

Validation: ✅ All specializations have valid key_concepts, graph has no cycles

Commit: (pending)

@copilot please make "concepts" and "key_concepts" (in "specialization") consistent -currently e.g. in ai specialization you require "klasyfikacja" but no so global concept exists. Add new global "con...

Fixed both issues:

  1. Added 30+ missing concepts to graf_zaleznosci.json that were referenced in specializations but not defined:

    • AI: ml_podstawy, eksploracja_danych, sieci_neuronowe, klasyfikacja, regresja
    • Web: web_development, tcp_ip, routing, http, frameworki_webowe
    • Embedded: architektura_mikroprocesora, assembler, uklady_logiczne, systemy_liczbowe
    • Software Eng: metodyki_agile, ci_cd, wzorce_projektowe, code_review
    • Signal: transformata_fouriera, filtracja, aproksymacja
    • Plus supporting concepts
  2. Updated graf_tools.py to dynamically read specializations from JSON (no more hardcoded messages):

$ python3 graf_tools.py path
Podaj ID specjalizacji. Dostępne opcje:
  - ai_data_science: Sztuczna Inteligencja i Data Science
  - web_networking: Web Development i Sieci
  - embedded_systems: Systemy Wbudowane i Mikroprocesory
  - software_engineering: Inżynieria Oprogramowania
  - signal_processing: Przetwarzanie Sygnałów

Validation: ✅ All concepts consistent, graph has no cycles

Commit: eafd794

@lemkis
Copy link
Contributor

lemkis commented Oct 9, 2025

@copilot Now you print:
e.g.
python3.12 graf_tools.py path ai_data_science

=== ŚCIEŻKA NAUKI: Sztuczna Inteligencja i Data Science ===

--- Semestr 1 ---
Indukcja matematyczna (Wstęp do matematyki i informatyki)
Zbiory i operacje na zbiorach (Wstęp do matematyki i informatyki)
Wektory w przestrzeniach euklidesowych (Algebra liniowa I)
Ciągi i granice (Analiza matematyczna I)

--- Semestr 2 ---
Kombinatoryka (wariacje, permutacje) (Matematyka dyskretna)

--- Semestr 1 ---
Relacje i relacje równoważności (Wstęp do matematyki i informatyki)
Iloczyn skalarny i geometria wektorów (Algebra liniowa I)
Liniowa niezależność i bazy (Algebra liniowa I)
Ciągłość funkcji (Analiza matematyczna I)

--- Semestr 3 ---
Statystyka podstawowa (Prawdopodobieństwo i statystyka)
Podstawy baz danych (SQL, NoSQL) (Bazy danych I)

--- Semestr 2 ---
Macierze i operacje na macierzach (Algebra liniowa II)

--- Semestr 1 ---
Pochodne funkcji jednej zmiennej (Analiza matematyczna I)

--- Semestr 5 ---
Eksploracja i analiza danych (Wstęp do data mining)

--- Semestr 1 ---
Ekstrema funkcji jednej zmiennej (Analiza matematyczna I)

--- Semestr 2 ---
Gradient i pochodne funkcji wielu zmiennych (Analiza matematyczna II)
Ekstrema funkcji wielu zmiennych (Analiza matematyczna II)
Metody optymalizacji (gradient descent) (Analiza matematyczna II)
Uczenie maszynowe - podstawy (regresja, SVM) (Algebra liniowa II / warsztaty ML)

--- Semestr 5 ---
Machine Learning - podstawy (Sztuczna inteligencja)
Sieci neuronowe (Sztuczna inteligencja)
Algorytmy klasyfikacji (Sztuczna inteligencja / Data mining)
Modele regresji (Sztuczna inteligencja / Data mining)

I would prefer slighly different format of the print: main first order headers h1 should contain semesters in which h2 headers should contain names of subjects and in h3 concpets from the h2 subject

Copy link
Author

Copilot AI commented Oct 9, 2025

@copilot Now you print:
e.g.
python3.12 graf_tools.py path ai_data_science
...

Updated the path output to use hierarchical structure as requested:

New format:

# Semestr 1
## Algebra liniowa I
### Wektory w przestrzeniach euklidesowych
### Iloczyn skalarny i geometria wektorów

## Analiza matematyczna I
### Ciągi i granice
### Pochodne funkcji jednej zmiennej

# Semestr 2
## Matematyka dyskretna
### Kombinatoryka (wariacje, permutacje)
  • H1 (# Semestr X) - semesters grouped together
  • H2 (## Subject) - subjects within each semester
  • H3 (### Concept) - concepts from each subject

No more scattered/repeated semester headers.

Commit: 0c4fddd

@pierzcham
Copy link
Member

@Copilt popraw treść w pliku Przewodnik.md, przede wszystkim tam, gdzie są wywołania komendy 'python3 graf_tools.py path ai' wstaw 'python3 graf_tools.py path ai_data_science' i adekwatnie popraw przykładowe wyniki jej działania zapisane w tym pliku. Adekwatnie popraw pozostałe wywołania komendy zaczynającej się od 'python3 graf_tools.py path'. Skup się na tym, aby krok po kroku pokazać potencjalnym użytkownikom, w tym przypadku studentom i koordynatorom programów dydaktycznych, jak skorzystać z dostępnych możliwości skryptu 'graf_tools.py'.

@pierzcham
Copy link
Member

@lemkis copilot mnie nie słucha :( Zapewne tylko osoba, która wystawiła issue może delegować mu zadania.

@pierzcham
Copy link
Member

Już słucha :)

Copilot AI and others added 2 commits October 12, 2025 14:36
Fix command examples and improve step-by-step guidance in PRZEWODNIK.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants