mirror of
https://github.com/pepaskopec-blip/Graduately.git
synced 2026-10-27 15:14:35 +00:00
Add Technické vybavení unit 2: computer history generations with quiz.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
47831c512b
commit
0091bfa09f
4 changed files with 139 additions and 3 deletions
113
hw.c
113
hw.c
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
NetLesson hw_lessons[HW_LESSONS] = {
|
NetLesson hw_lessons[HW_LESSONS] = {
|
||||||
{ .n_slides = HW_SLIDES, .unit_page = "hwunit1", .ex_page = "hwex1" },
|
{ .n_slides = HW_SLIDES, .unit_page = "hwunit1", .ex_page = "hwex1" },
|
||||||
|
{ .n_slides = HW2_SLIDES, .unit_page = "hwunit2", .ex_page = "hwex2" },
|
||||||
};
|
};
|
||||||
|
|
||||||
void hw_rail_theme_reset(void);
|
void hw_rail_theme_reset(void);
|
||||||
|
|
@ -256,7 +257,7 @@ void hw_add_node(GtkFixed *fixed, int index) {
|
||||||
GtkWidget *name;
|
GtkWidget *name;
|
||||||
char *text;
|
char *text;
|
||||||
static const char *unit_keys[HW_LESSONS] = {
|
static const char *unit_keys[HW_LESSONS] = {
|
||||||
"hw_unit1"
|
"hw_unit1", "hw_unit2"
|
||||||
};
|
};
|
||||||
|
|
||||||
card = gtk_button_new();
|
card = gtk_button_new();
|
||||||
|
|
@ -763,3 +764,113 @@ GtkWidget *build_hw_unit1_exercise_page(void) {
|
||||||
return build_hw_mcq_page(0, "hwunit1", "hw_ex1_title", "hw_quiz1_head",
|
return build_hw_mcq_page(0, "hwunit1", "hw_ex1_title", "hw_quiz1_head",
|
||||||
qs, hints, 6);
|
qs, hints, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GtkWidget *build_hw_unit2_page(void) {
|
||||||
|
static const NetSlide slides[HW2_SLIDES] = {
|
||||||
|
{
|
||||||
|
"1 / 6 • Přehled", "Historie počítačů",
|
||||||
|
"Generace se dělí podle klíčové technologie své doby.",
|
||||||
|
{
|
||||||
|
"1. Předchůdci – do 30. let 19. století",
|
||||||
|
"2. Nultá generace – 1938–1944",
|
||||||
|
"3. První generace – 1944–1955",
|
||||||
|
"4. Druhá generace – 1955–1964",
|
||||||
|
"5. Třetí generace – 1964–1971",
|
||||||
|
"Další snímky shrnují znaky jednotlivých generací.",
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"2 / 6 • 0. generace", "Počítače 0. generace (1938–1944)",
|
||||||
|
"Tip: počítačů bylo málo a často sloužily armádě.",
|
||||||
|
{
|
||||||
|
"Existovalo jen několik počítačů na světě.",
|
||||||
|
"Většinou měly vojenský účel.",
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"3 / 6 • 1. generace", "Počítače 1. generace (1944–1955)",
|
||||||
|
"Klíčový objev: elektronka",
|
||||||
|
{
|
||||||
|
"Objev elektronky umožnil tuto generaci.",
|
||||||
|
"Ještě neexistoval software v dnešním smyslu.",
|
||||||
|
"Data a programy se zadávaly pomocí děrných štítků.",
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"4 / 6 • 2. generace", "Počítače 2. generace (1955–1964)",
|
||||||
|
"Klíčový objev: tranzistor",
|
||||||
|
{
|
||||||
|
"Objev tranzistoru nahradil elektronky.",
|
||||||
|
"Používala se hlavní externí paměť.",
|
||||||
|
"Počítače měly menší rozměry než v 1. generaci.",
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"5 / 6 • 3. generace", "Počítače 3. generace (1964–1971)",
|
||||||
|
"Klíčový objev: integrovaný obvod",
|
||||||
|
{
|
||||||
|
"Objev integrovaného obvodu.",
|
||||||
|
"Stále se používala hlavní externí paměť.",
|
||||||
|
"Rozměry počítačů se dál zmenšovaly.",
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"6 / 6 • 4. generace", "Počítače 4. generace",
|
||||||
|
"Klíčové: programovatelné mikroprocesory",
|
||||||
|
{
|
||||||
|
"Nastupují programovatelné mikroprocesory.",
|
||||||
|
"1972 – první počítačová hra",
|
||||||
|
"1973 – první disketa",
|
||||||
|
"1979 – první CD",
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
return build_hw_unit_page(&hw_lessons[1], "hw_unit2", "hw_unit2_sub",
|
||||||
|
slides, HW2_SLIDES);
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkWidget *build_hw_unit2_exercise_page(void) {
|
||||||
|
static const ChoiceQ qs[] = {
|
||||||
|
{"Kdy probíhala nultá generace počítačů?",
|
||||||
|
{"1938–1944", "1944–1955", "1955–1964", "1964–1971"}, 4, 0},
|
||||||
|
{"Co bylo typické pro počítače 0. generace?",
|
||||||
|
{"Byly v každé domácnosti", "Jen několik kusů, často vojenský účel",
|
||||||
|
"Měly mikroprocesory", "Používaly CD"},
|
||||||
|
4, 1},
|
||||||
|
{"Která technologie patří k 1. generaci?",
|
||||||
|
{"Tranzistor", "Elektronka", "Integrovaný obvod", "Mikroprocesor"},
|
||||||
|
4, 1},
|
||||||
|
{"Čím se zadávaly data v 1. generaci?",
|
||||||
|
{"USB fleškou", "Děrnými štítky", "CD", "Disketou"}, 4, 1},
|
||||||
|
{"Která technologie patří k 2. generaci?",
|
||||||
|
{"Elektronka", "Tranzistor", "Mikroprocesor", "CD"}, 4, 1},
|
||||||
|
{"Která technologie patří k 3. generaci?",
|
||||||
|
{"Elektronka", "Tranzistor", "Integrovaný obvod", "Disketa"},
|
||||||
|
4, 2},
|
||||||
|
{"Co je typické pro 4. generaci?",
|
||||||
|
{"Jen děrné štítky", "Programovatelné mikroprocesory",
|
||||||
|
"Jen vojenské použití", "Žádný software"},
|
||||||
|
4, 1},
|
||||||
|
{"Kdy vznikla první počítačová hra (podle lekce)?",
|
||||||
|
{"1964", "1972", "1973", "1979"}, 4, 1},
|
||||||
|
};
|
||||||
|
static const char *hints[] = {
|
||||||
|
"Nultá generace: 1938–1944",
|
||||||
|
"Jen několik počítačů, většinou vojenský účel",
|
||||||
|
"1. generace – objev elektronky",
|
||||||
|
"1. generace – děrné štítky",
|
||||||
|
"2. generace – objev tranzistoru",
|
||||||
|
"3. generace – integrovaný obvod",
|
||||||
|
"4. generace – programovatelné mikroprocesory",
|
||||||
|
"1972 – první počítačová hra",
|
||||||
|
};
|
||||||
|
return build_hw_mcq_page(1, "hwunit2", "hw_ex2_title", "hw_quiz2_head",
|
||||||
|
qs, hints, 8);
|
||||||
|
}
|
||||||
|
|
|
||||||
20
i18n.c
20
i18n.c
|
|
@ -290,6 +290,13 @@ const TrEntry tr_ui[] = {
|
||||||
"Quiz: computer architecture"},
|
"Quiz: computer architecture"},
|
||||||
{"hw_quiz1_head", "Kvíz k architektuře počítače",
|
{"hw_quiz1_head", "Kvíz k architektuře počítače",
|
||||||
"Quiz on computer architecture"},
|
"Quiz on computer architecture"},
|
||||||
|
{"hw_unit2", "Historie počítačů", "History of computers"},
|
||||||
|
{"hw_unit2_sub", "6 snímků o generacích počítačů a pak kvíz.",
|
||||||
|
"6 slides about computer generations, then a quiz."},
|
||||||
|
{"hw_ex2_title", "Kvíz: historie počítačů",
|
||||||
|
"Quiz: history of computers"},
|
||||||
|
{"hw_quiz2_head", "Kvíz k historii počítačů",
|
||||||
|
"Quiz on the history of computers"},
|
||||||
{NULL, NULL, NULL}
|
{NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -937,6 +944,19 @@ const TrEntry tr_content[] = {
|
||||||
{"Operační paměť uchovává program i data", NULL,
|
{"Operační paměť uchovává program i data", NULL,
|
||||||
"Main memory stores both the program and data"},
|
"Main memory stores both the program and data"},
|
||||||
{"Byl tvůrcem teorie her", NULL, "He created game theory"},
|
{"Byl tvůrcem teorie her", NULL, "He created game theory"},
|
||||||
|
{"Nultá generace: 1938–1944", NULL, "Zeroth generation: 1938–1944"},
|
||||||
|
{"Jen několik počítačů, většinou vojenský účel", NULL,
|
||||||
|
"Only a few computers, mostly for military use"},
|
||||||
|
{"1. generace – objev elektronky", NULL,
|
||||||
|
"1st generation – invention of the vacuum tube"},
|
||||||
|
{"1. generace – děrné štítky", NULL, "1st generation – punch cards"},
|
||||||
|
{"2. generace – objev tranzistoru", NULL,
|
||||||
|
"2nd generation – invention of the transistor"},
|
||||||
|
{"3. generace – integrovaný obvod", NULL,
|
||||||
|
"3rd generation – integrated circuit"},
|
||||||
|
{"4. generace – programovatelné mikroprocesory", NULL,
|
||||||
|
"4th generation – programmable microprocessors"},
|
||||||
|
{"1972 – první počítačová hra", NULL, "1972 – first computer game"},
|
||||||
{NULL, NULL, NULL}
|
{NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
2
main.c
2
main.c
|
|
@ -174,6 +174,8 @@ void activate(GtkApplication *app, gpointer user_data) {
|
||||||
gtk_stack_add_named(main_stack, build_hwmap_page(), "hwmap");
|
gtk_stack_add_named(main_stack, build_hwmap_page(), "hwmap");
|
||||||
gtk_stack_add_named(main_stack, build_hw_unit1_page(), "hwunit1");
|
gtk_stack_add_named(main_stack, build_hw_unit1_page(), "hwunit1");
|
||||||
gtk_stack_add_named(main_stack, build_hw_unit1_exercise_page(), "hwex1");
|
gtk_stack_add_named(main_stack, build_hw_unit1_exercise_page(), "hwex1");
|
||||||
|
gtk_stack_add_named(main_stack, build_hw_unit2_page(), "hwunit2");
|
||||||
|
gtk_stack_add_named(main_stack, build_hw_unit2_exercise_page(), "hwex2");
|
||||||
{
|
{
|
||||||
typedef GtkWidget *(*NetBuilder)(void);
|
typedef GtkWidget *(*NetBuilder)(void);
|
||||||
static const struct {
|
static const struct {
|
||||||
|
|
|
||||||
|
|
@ -59,8 +59,9 @@
|
||||||
#define NET10_SLIDES 3
|
#define NET10_SLIDES 3
|
||||||
#define NET_LESSONS 10
|
#define NET_LESSONS 10
|
||||||
#define HW_UNITS 10
|
#define HW_UNITS 10
|
||||||
#define HW_LESSONS 1
|
#define HW_LESSONS 2
|
||||||
#define HW_SLIDES 3
|
#define HW_SLIDES 3
|
||||||
|
#define HW2_SLIDES 6
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
THEME_CATPPUCCIN = 0,
|
THEME_CATPPUCCIN = 0,
|
||||||
|
|
@ -763,6 +764,8 @@ void hw_lessons_apply_lang(void);
|
||||||
GtkWidget *build_hwmap_page(void);
|
GtkWidget *build_hwmap_page(void);
|
||||||
GtkWidget *build_hw_unit1_page(void);
|
GtkWidget *build_hw_unit1_page(void);
|
||||||
GtkWidget *build_hw_unit1_exercise_page(void);
|
GtkWidget *build_hw_unit1_exercise_page(void);
|
||||||
|
GtkWidget *build_hw_unit2_page(void);
|
||||||
|
GtkWidget *build_hw_unit2_exercise_page(void);
|
||||||
void draw_chip_icon(GtkDrawingArea *area, cairo_t *cr,
|
void draw_chip_icon(GtkDrawingArea *area, cairo_t *cr,
|
||||||
int width, int height, gpointer data);
|
int width, int height, gpointer data);
|
||||||
void net_lesson_notes_ensure(NetLesson *L);
|
void net_lesson_notes_ensure(NetLesson *L);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue