From 0948e91e3c3440f916a450f69e9e12769e1f0540 Mon Sep 17 00:00:00 2001 From: Thanassis Avgerinos Date: Tue, 20 Oct 2026 06:03:02 +0300 Subject: [PATCH 1/2] Point chapter 5 to the 2026-27 lecture 5 slides The 2026-27 deck (assets/pdf/lec05.pdf on the course site) has the same 35 pages as 2025-26, and only pp. 2-4 changed: p. 2 announces the Coding Club Git & GitHub workshop, the p. 3 recap drops pair programming (it moved to lecture 3) and adds a painting, and p. 4 adds a caption. No page numbers moved. Chapter 5, its seven slide questions, the extract notes, the manifest and `make fetch` now point to the new deck. --- Makefile | 2 +- README.md | 2 +- chapters/05-operators-statements/README.md | 6 +++--- questions/slides/slides-lec05-bitwise-or-hex.md | 4 ++-- questions/slides/slides-lec05-cast-division.md | 4 ++-- questions/slides/slides-lec05-msb.md | 4 ++-- questions/slides/slides-lec05-operator-arity.md | 4 ++-- questions/slides/slides-lec05-operator-as-function.md | 4 ++-- questions/slides/slides-lec05-precedence.md | 4 ++-- questions/slides/slides-lec05-ternary-max.md | 4 ++-- sources/extract/lec05.yaml | 5 ++++- sources/manifest.yaml | 2 +- 12 files changed, 24 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 8f52811..6457c1e 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ $(BUILD)/llms.txt: $(CHAPTERS) glossary.md $(BUILD)/questions.md tools/llms.py t .PHONY: all fetch lint check-code exercises check clean fetch: mkdir -p sources/slides/2026 sources/hw/2023 sources/hw/2024 sources/hw/2025 - for f in lec00 lec01 lec02 lec03 lec04; do curl -fsSL -o sources/slides/2026/$$f.pdf https://progintro.github.io/assets/pdf/$$f.pdf; done + for f in lec00 lec01 lec02 lec03 lec04 lec05; do curl -fsSL -o sources/slides/2026/$$f.pdf https://progintro.github.io/assets/pdf/$$f.pdf; done gh release download 2025 -R $(REPO) -D sources/slides -p 'lec*.pdf' -p make.pdf --skip-existing gh release download 2025 -R $(REPO) -D sources/hw/2025 -p 'hw*.pdf' -p stergios.pdf --skip-existing gh release download 2024 -R $(REPO) -D sources/hw/2024 -p 'hw*.pdf' --skip-existing diff --git a/README.md b/README.md index ad37925..f987632 100644 --- a/README.md +++ b/README.md @@ -325,7 +325,7 @@ chatbot ή agent το [`llms-full.txt`](llms-full.txt) (όλος ο οδηγός Ο οδηγός γράφτηκε από τις διαφάνειες των διαλέξεων του 2025-26 ([progintro.github.io](https://progintro.github.io/)) και ενημερώνεται με τις διαφάνειες -του 2026-27 καθώς δημοσιεύονται (ως τώρα: Διαλέξεις 0–4), τις +του 2026-27 καθώς δημοσιεύονται (ως τώρα: Διαλέξεις 0–5), τις [σημειώσεις](https://progintro.github.io/notes/) του μαθήματος, τα [εργαστήρια](https://progintro.github.io/lab-material/) και τα θέματα εξετάσεων και τις εργασίες προηγούμενων ετών. Οι ασκήσεις έχουν υποδείξεις αλλά όχι λύσεις. diff --git a/chapters/05-operators-statements/README.md b/chapters/05-operators-statements/README.md index 91ec8f8..cd83263 100644 --- a/chapters/05-operators-statements/README.md +++ b/chapters/05-operators-statements/README.md @@ -3,9 +3,9 @@ layout: chapter chapter: 5 lecture: 5 title: "Τελεστές και Εντολές" -date: 2025-10-17 +date: 2026-10-16 part: B -slides: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf +slides: https://progintro.github.io/assets/pdf/lec05.pdf prev: 04-git-operators next: 06-control-flow topics: [operators, bitwise, precedence, types, statements, conditionals] @@ -696,7 +696,7 @@ else ## Διάβασμα -- **Διαφάνειες:** [Διάλεξη 5](https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf), σελ. 1–35. Κατηγορίες τελεστών: σελ. 5· αριθμητικοί, συγκριτικοί, λογικοί: σελ. 7–9· bitwise: σελ. 10–12· συνθήκης και cast: σελ. 13–15· ανάθεση, αύξηση/μείωση, κόμμα: σελ. 16–19· πρόγραμμα βαθμολογίας: σελ. 20· προτεραιότητα: σελ. 21–24· εκφράσεις και εντολές: σελ. 25–28· `if` και `if-else`: σελ. 29–33. +- **Διαφάνειες:** [Διάλεξη 5](https://progintro.github.io/assets/pdf/lec05.pdf) (2026-27), σελ. 1–35. Κατηγορίες τελεστών: σελ. 5· αριθμητικοί, συγκριτικοί, λογικοί: σελ. 7–9· bitwise: σελ. 10–12· συνθήκης και cast: σελ. 13–15· ανάθεση, αύξηση/μείωση, κόμμα: σελ. 16–19· πρόγραμμα βαθμολογίας: σελ. 20· προτεραιότητα: σελ. 21–24· εκφράσεις και εντολές: σελ. 25–28· `if` και `if-else`: σελ. 29–33. Οι διαφάνειες του 2025-26 έχουν την ίδια αρίθμηση (αλλάζουν μόνο οι ανακοινώσεις και η ανασκόπηση, σελ. 2–3): [Διάλεξη 5 (2025)](https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf). - **Σημειώσεις:** [Κεφάλαιο 2: Μεταβλητές, τύποι, τελεστές και παραστάσεις](https://progintro.github.io/notes/chapters/02-types-operators/), ενότητα «Εντολές αντικατάστασης, τελεστές και παραστάσεις» (K04, σελ. 34–43)· [Κεφάλαιο 3: Η ροή του ελέγχου](https://progintro.github.io/notes/chapters/03-control-flow/), ενότητες «Η ροή του ελέγχου στην C», «Εντολή `if`» (K04, σελ. 46–49). Οι διαφάνειες συνιστούν να έχετε καλύψει τις σημειώσεις του κ. Σταματόπουλου μέχρι και τη σελίδα 62. - **Εργαστήριο:** [Εργαστήριο 3](https://progintro.github.io/lab-material/labs/lab03/): ασκήσεις `root.c` (`if...else`), `birthdate.c` (ακέραια διαίρεση και `%`), `limit.c` (αποσφαλμάτωση εκφράσεων) - **Βιβλίο:** K&R, §2.5–2.12 (τελεστές και παραστάσεις), όπως προτείνουν οι σημειώσεις. diff --git a/questions/slides/slides-lec05-bitwise-or-hex.md b/questions/slides/slides-lec05-bitwise-or-hex.md index 168ab64..bfef73c 100644 --- a/questions/slides/slides-lec05-bitwise-or-hex.md +++ b/questions/slides/slides-lec05-bitwise-or-hex.md @@ -4,8 +4,8 @@ kind: slides title: "Η τιμή της 0xbeef | 0xcafe0000" source: title: "Διάλεξη 5: Τελεστές και Εντολές, διαφάνεια 12" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec05.pdf + years: [2025, 2026] chapters: [5] topics: [bitwise] difficulty: 1 diff --git a/questions/slides/slides-lec05-cast-division.md b/questions/slides/slides-lec05-cast-division.md index 9057391..40f67fa 100644 --- a/questions/slides/slides-lec05-cast-division.md +++ b/questions/slides/slides-lec05-cast-division.md @@ -4,8 +4,8 @@ kind: slides title: "Cast και διαίρεση: (double)3/4" source: title: "Διάλεξη 5: Τελεστές και Εντολές, διαφάνεια 14" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec05.pdf + years: [2025, 2026] chapters: [5] topics: [operators, types, precedence] difficulty: 1 diff --git a/questions/slides/slides-lec05-msb.md b/questions/slides/slides-lec05-msb.md index 4948678..7fedf31 100644 --- a/questions/slides/slides-lec05-msb.md +++ b/questions/slides/slides-lec05-msb.md @@ -4,8 +4,8 @@ kind: slides title: "Απομόνωση του πιο σημαντικού bit" source: title: "Διάλεξη 5: Τελεστές και Εντολές, διαφάνεια 11" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec05.pdf + years: [2025, 2026] chapters: [5] topics: [bitwise] difficulty: 1 diff --git a/questions/slides/slides-lec05-operator-arity.md b/questions/slides/slides-lec05-operator-arity.md index 1294c60..e2a9e90 100644 --- a/questions/slides/slides-lec05-operator-arity.md +++ b/questions/slides/slides-lec05-operator-arity.md @@ -4,8 +4,8 @@ kind: slides title: "Τι τύπου τελεστές είναι;" source: title: "Διάλεξη 5: Τελεστές και Εντολές, διαφάνειες 7-10, 13" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec05.pdf + years: [2025, 2026] chapters: [5] topics: [operators, bitwise] difficulty: 1 diff --git a/questions/slides/slides-lec05-operator-as-function.md b/questions/slides/slides-lec05-operator-as-function.md index b407dc2..e785875 100644 --- a/questions/slides/slides-lec05-operator-as-function.md +++ b/questions/slides/slides-lec05-operator-as-function.md @@ -4,8 +4,8 @@ kind: slides title: "Οι αριθμητικοί τελεστές ως συναρτήσεις" source: title: "Διάλεξη 5: Τελεστές και Εντολές, διαφάνεια 7" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec05.pdf + years: [2025, 2026] chapters: [5] topics: [operators, functions, types] difficulty: 1 diff --git a/questions/slides/slides-lec05-precedence.md b/questions/slides/slides-lec05-precedence.md index c02dbdb..f44a86e 100644 --- a/questions/slides/slides-lec05-precedence.md +++ b/questions/slides/slides-lec05-precedence.md @@ -4,8 +4,8 @@ kind: slides title: "Προτεραιότητα και προσεταιριστικότητα" source: title: "Διάλεξη 5: Τελεστές και Εντολές, διαφάνεια 21" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec05.pdf + years: [2025, 2026] chapters: [5] topics: [precedence, operators] difficulty: 1 diff --git a/questions/slides/slides-lec05-ternary-max.md b/questions/slides/slides-lec05-ternary-max.md index 29d4b01..dedc264 100644 --- a/questions/slides/slides-lec05-ternary-max.md +++ b/questions/slides/slides-lec05-ternary-max.md @@ -4,8 +4,8 @@ kind: slides title: "Συνάρτηση max με τον τελεστή συνθήκης" source: title: "Διάλεξη 5: Τελεστές και Εντολές, διαφάνεια 13" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec05.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec05.pdf + years: [2025, 2026] chapters: [5, 3] topics: [operators, functions] difficulty: 1 diff --git a/sources/extract/lec05.yaml b/sources/extract/lec05.yaml index 4fa1927..f7c4cf6 100644 --- a/sources/extract/lec05.yaml +++ b/sources/extract/lec05.yaml @@ -1,4 +1,6 @@ lecture: 5 +year: 2026-27 # updated from the 2025-26 deck (35 pages) on 2026-10-20; same page numbers +slides: https://progintro.github.io/assets/pdf/lec05.pdf pages: 35 outline: - {pages: "1-6", section: "Κατηγορίες τελεστών"} @@ -27,7 +29,8 @@ pointers: takeaways_slide: null issues: - "No explicit key-takeaways slide; the red callouts on p. 9 (0 is false, any non-zero is true), p. 22 (use parentheses when unsure) and p. 31 (the if parentheses are mandatory) were treated as takeaways." - - "p. 2 (announcements: hw0 pages question, Coding Club meeting) and p. 3 (recap: pair programming, git, operators) are course logistics/recap and are not in the chapter." + - "2026-27 deck vs 2025-26 (both 35 pages): only pp. 2-4 changed. p. 2 announces the Coding Club Git & GitHub workshop (16 October) instead of the meeting; p. 3 recap drops pair programming (it moved to lecture 3) and adds a Klimt painting; p. 4 adds a caption. All page numbers are unchanged." + - "p. 2 (announcements: hw0 pages question, Coding Club) and p. 3 (recap: git, operators) are course logistics/recap and are not in the chapter." - "p. 15: the implicit-conversion image lists 'bool, char, short int, int, unsigned int, long, unsigned, long long, float, double, long double'. The 'unsigned' after 'long' was read as 'unsigned long' in the chapter's diagram. The slide's rule 'convert to the larger operand' is a simplification of C's usual arithmetic conversions (integer promotion of char/short is not mentioned in the slides or the chapter)." - "p. 10: the ~ examples (~0xF0 = 0x0F, ~0x05 = 0xFA) only hold for 8-bit values; the chapter says so and gives 0xFFFFFFFA for a 32-bit int (verified with gcc/clang)." - "p. 20: the grade program is shown without #include lines; the chapter adds stdio.h and stdlib.h. The sample runs (83 for 85/75/95, 7 for 9/9/9) were produced locally, not taken from the slides." diff --git a/sources/manifest.yaml b/sources/manifest.yaml index 49152f4..401d916 100644 --- a/sources/manifest.yaml +++ b/sources/manifest.yaml @@ -26,7 +26,7 @@ lectures: - {n: 2, slug: 02-memory-variables, date: 2026-10-05, part: B, slides: lec02.pdf, url: "https://progintro.github.io/assets/pdf/lec02.pdf", title: "Μνήμη και Μεταβλητές", notes: [02-types-operators], labs: [lab02, lab03]} - {n: 3, slug: 03-functions, date: 2026-10-09, part: B, slides: lec03.pdf, url: "https://progintro.github.io/assets/pdf/lec03.pdf", title: "Συναρτήσεις", notes: [04-functions], labs: [lab05]} - {n: 4, slug: 04-git-operators, date: 2026-10-12, part: A, slides: lec04.pdf, url: "https://progintro.github.io/assets/pdf/lec04.pdf", title: "Git και Τελεστές", notes: [02-types-operators], labs: [lab01]} - - {n: 5, slug: 05-operators-statements, date: 2025-10-17, part: B, slides: lec05.pdf, title: "Τελεστές και Εντολές", notes: [02-types-operators, 03-control-flow], labs: [lab03]} + - {n: 5, slug: 05-operators-statements, date: 2026-10-16, part: B, slides: lec05.pdf, url: "https://progintro.github.io/assets/pdf/lec05.pdf", title: "Τελεστές και Εντολές", notes: [02-types-operators, 03-control-flow], labs: [lab03]} - {n: 6, slug: 06-control-flow, date: 2025-10-20, part: B, slides: lec06.pdf, title: "Εντολές και Ροή Ελέγχου", notes: [03-control-flow], labs: [lab03]} - {n: 7, slug: 07-problem-solving, date: 2025-10-24, part: B, slides: lec07.pdf, title: "Επίλυση Προβλημάτων", notes: [01-first-programs], labs: [lab03]} - {n: 8, slug: 08-control-flow-2, date: 2025-10-27, part: B, slides: lec08.pdf, title: "Ροή Ελέγχου #2", notes: [03-control-flow], labs: [lab03]} From 1a68a5e9b87ec9746f38d6a4afc43d23bca40bd1 Mon Sep 17 00:00:00 2001 From: Thanassis Avgerinos Date: Tue, 20 Oct 2026 06:03:41 +0300 Subject: [PATCH 2/2] Point chapter 6 to the 2026-27 lecture 6 slides The 2026-27 deck (assets/pdf/lec06.pdf on the course site) has the same 29 pages as 2025-26, and only pp. 2-4 changed. On p. 2 the pipe and time tip now uses the hw0 2026 goldbach exercise (42 g, 67 p) instead of aliquot, and shows reading the input from a file instead of ttyplot. pp. 3-4 add painting captions. No page numbers moved. Chapter 6's pipes section now follows the goldbach example and keeps a line on the 2025-26 aliquot one. The chapter, its ten slide questions, the extract notes, the manifest and `make fetch` now point to the new deck. --- Makefile | 2 +- README.md | 2 +- chapters/06-control-flow/README.md | 25 +++++++++++-------- .../slides/slides-lec06-dangling-else.md | 4 +-- questions/slides/slides-lec06-do-while.md | 4 +-- .../slides-lec06-expression-statements.md | 4 +-- questions/slides/slides-lec06-for-count.md | 4 +-- questions/slides/slides-lec06-for-empty.md | 4 +-- questions/slides/slides-lec06-if-else-max.md | 4 +-- .../slides/slides-lec06-while-forever.md | 4 +-- .../slides/slides-lec06-while-semicolon.md | 4 +-- questions/slides/slides-lec06-while-sum.md | 4 +-- sources/extract/lec06.yaml | 5 +++- sources/manifest.yaml | 2 +- 14 files changed, 40 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 6457c1e..a009d87 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ $(BUILD)/llms.txt: $(CHAPTERS) glossary.md $(BUILD)/questions.md tools/llms.py t .PHONY: all fetch lint check-code exercises check clean fetch: mkdir -p sources/slides/2026 sources/hw/2023 sources/hw/2024 sources/hw/2025 - for f in lec00 lec01 lec02 lec03 lec04 lec05; do curl -fsSL -o sources/slides/2026/$$f.pdf https://progintro.github.io/assets/pdf/$$f.pdf; done + for f in lec00 lec01 lec02 lec03 lec04 lec05 lec06; do curl -fsSL -o sources/slides/2026/$$f.pdf https://progintro.github.io/assets/pdf/$$f.pdf; done gh release download 2025 -R $(REPO) -D sources/slides -p 'lec*.pdf' -p make.pdf --skip-existing gh release download 2025 -R $(REPO) -D sources/hw/2025 -p 'hw*.pdf' -p stergios.pdf --skip-existing gh release download 2024 -R $(REPO) -D sources/hw/2024 -p 'hw*.pdf' --skip-existing diff --git a/README.md b/README.md index f987632..5dad7a8 100644 --- a/README.md +++ b/README.md @@ -325,7 +325,7 @@ chatbot ή agent το [`llms-full.txt`](llms-full.txt) (όλος ο οδηγός Ο οδηγός γράφτηκε από τις διαφάνειες των διαλέξεων του 2025-26 ([progintro.github.io](https://progintro.github.io/)) και ενημερώνεται με τις διαφάνειες -του 2026-27 καθώς δημοσιεύονται (ως τώρα: Διαλέξεις 0–5), τις +του 2026-27 καθώς δημοσιεύονται (ως τώρα: Διαλέξεις 0–6), τις [σημειώσεις](https://progintro.github.io/notes/) του μαθήματος, τα [εργαστήρια](https://progintro.github.io/lab-material/) και τα θέματα εξετάσεων και τις εργασίες προηγούμενων ετών. Οι ασκήσεις έχουν υποδείξεις αλλά όχι λύσεις. diff --git a/chapters/06-control-flow/README.md b/chapters/06-control-flow/README.md index 149dee4..3ccad66 100644 --- a/chapters/06-control-flow/README.md +++ b/chapters/06-control-flow/README.md @@ -3,9 +3,9 @@ layout: chapter chapter: 6 lecture: 6 title: "Εντολές και Ροή Ελέγχου" -date: 2025-10-20 +date: 2026-10-19 part: B -slides: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf +slides: https://progintro.github.io/assets/pdf/lec06.pdf prev: 05-operators-statements next: 07-problem-solving topics: [statements, conditionals, loops, control-flow] @@ -488,22 +488,27 @@ printf("%d\n", i); ### §6.20 Γρήγορος έλεγχος της λύσης με pipes και time -*Συμβουλή για την άσκηση `aliquot` της hw0.* Αντί να πληκτρολογείτε κάθε φορά την +*Συμβουλή για την άσκηση `goldbach` της hw0.* Αντί να πληκτρολογείτε κάθε φορά την είσοδο, στείλτε τη στο πρόγραμμα με pipe ([Κεφάλαιο 1](../01-command-line/)): ```sh -echo -e "138\n0\nf\n" | ./aliquot +echo -e "42\ng\n67\np\n" | ./goldbach ``` -Η `echo -e` ερμηνεύει κάθε `\n` ως αλλαγή γραμμής, οπότε το `./aliquot` διαβάζει τρεις -γραμμές: `138`, `0` και `f`. Με `time` μετράτε και τον χρόνο εκτέλεσης, και με -`ttyplot` (ίσως χρειαστεί να το εγκαταστήσετε) σχεδιάζετε την έξοδο στο τερματικό: +Η `echo -e` ερμηνεύει κάθε `\n` ως αλλαγή γραμμής, οπότε το `./goldbach` διαβάζει +τέσσερις γραμμές: `42` με την επιλογή `g` (έλεγχος Goldbach) και `67` με την επιλογή `p` +(έλεγχος πρώτου). Με `time` μετράτε και τον χρόνο εκτέλεσης. Αν οι είσοδοι είναι +πολλές, γράψτε τις σε ένα αρχείο και δώστε το στο πρόγραμμα με ανακατεύθυνση εισόδου: ```sh -echo -e "138\n0\nf\n" | time ./aliquot -echo -e "2856\n0\nf\n" | ./aliquot | ttyplot +echo -e "42\ng\n67\np\n" | time ./goldbach +time ./goldbach < input.txt ``` +Στις διαφάνειες του 2025-26 το ίδιο παράδειγμα ήταν η άσκηση `aliquot` της hw0 εκείνης +της χρονιάς ([Α6.15](#a6-15)), όπου με το `ttyplot` σχεδιάζατε και την έξοδο στο +τερματικό: `echo -e "2856\n0\nf\n" | ./aliquot | ttyplot`. + ## Κύρια σημεία 1. Κάθε εντολή της C είναι κενή, έκφρασης, σύνθετη, συνθήκης ή επανάληψης. @@ -542,7 +547,7 @@ echo -e "2856\n0\nf\n" | ./aliquot | ttyplot ## Διάβασμα -- **Διαφάνειες:** [Διάλεξη 6](https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf), σελ. 1–29. Pipes και `time`: σελ. 2· κατηγορίες εντολών: σελ. 5–8· ροή ελέγχου, `if`, `if-else`: σελ. 9–13· εμφωλευμένες `if` και dangling else: σελ. 14–16· `while`: σελ. 17–21· `for`: σελ. 22–24· `do-while`: σελ. 25–26. +- **Διαφάνειες:** [Διάλεξη 6](https://progintro.github.io/assets/pdf/lec06.pdf) (2026-27), σελ. 1–29. Pipes και `time`: σελ. 2· κατηγορίες εντολών: σελ. 5–8· ροή ελέγχου, `if`, `if-else`: σελ. 9–13· εμφωλευμένες `if` και dangling else: σελ. 14–16· `while`: σελ. 17–21· `for`: σελ. 22–24· `do-while`: σελ. 25–26. Οι διαφάνειες του 2025-26 έχουν την ίδια αρίθμηση (αλλάζει μόνο το παράδειγμα της σελ. 2, που εκεί είναι η άσκηση `aliquot` της hw0 του 2025): [Διάλεξη 6 (2025)](https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf). - **Σημειώσεις:** [Κεφάλαιο 3: Η ροή του ελέγχου](https://progintro.github.io/notes/chapters/03-control-flow/), ενότητες «Η ροή του ελέγχου στην C», «Εντολή `if`», «Εντολές βρόχου `while`», «Εντολή βρόχου `for`» (K04, σελ. 46–49 και 52–55). Οι διαφάνειες συνιστούν να έχετε καλύψει τις σημειώσεις του κ. Σταματόπουλου μέχρι και τη σελίδα 62, δηλαδή και το [Κεφάλαιο 4: Συναρτήσεις](https://progintro.github.io/notes/chapters/04-functions/) μέχρι την ενότητα «Συνάρτηση υπολογισμού παραγοντικού». - **Εργαστήριο:** [Εργαστήριο 3](https://progintro.github.io/lab-material/labs/lab03/): εισαγωγή για τους τρεις βρόχους και τα διαγράμματα ροής τους, ασκήσεις `seq.c` (`while`, `for`, `do...while`), `root.c` (`if...else`), `birthdate.c`, `limit.c` - **Βιβλίο:** K&R, κεφ. 3 (σελ. 85–100), όπως προτείνουν οι σημειώσεις. diff --git a/questions/slides/slides-lec06-dangling-else.md b/questions/slides/slides-lec06-dangling-else.md index 3f20bf7..864f190 100644 --- a/questions/slides/slides-lec06-dangling-else.md +++ b/questions/slides/slides-lec06-dangling-else.md @@ -4,8 +4,8 @@ kind: slides title: "Το πρόβλημα του dangling else" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 15" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6] topics: [conditionals] difficulty: 2 diff --git a/questions/slides/slides-lec06-do-while.md b/questions/slides/slides-lec06-do-while.md index 308fc1d..85be5ea 100644 --- a/questions/slides/slides-lec06-do-while.md +++ b/questions/slides/slides-lec06-do-while.md @@ -4,8 +4,8 @@ kind: slides title: "Τι τυπώνει η do-while" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 26" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6] topics: [loops] difficulty: 1 diff --git a/questions/slides/slides-lec06-expression-statements.md b/questions/slides/slides-lec06-expression-statements.md index cc66b50..a0fc694 100644 --- a/questions/slides/slides-lec06-expression-statements.md +++ b/questions/slides/slides-lec06-expression-statements.md @@ -4,8 +4,8 @@ kind: slides title: "Τιμές μετά από εντολές έκφρασης" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 7" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6, 5] topics: [statements, operators] difficulty: 1 diff --git a/questions/slides/slides-lec06-for-count.md b/questions/slides/slides-lec06-for-count.md index c5c00bd..41f2e7f 100644 --- a/questions/slides/slides-lec06-for-count.md +++ b/questions/slides/slides-lec06-for-count.md @@ -4,8 +4,8 @@ kind: slides title: "Πόσες φορές εκτελείται μια for" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 24" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6] topics: [loops] difficulty: 1 diff --git a/questions/slides/slides-lec06-for-empty.md b/questions/slides/slides-lec06-for-empty.md index 15d8d5c..aa581d2 100644 --- a/questions/slides/slides-lec06-for-empty.md +++ b/questions/slides/slides-lec06-for-empty.md @@ -4,8 +4,8 @@ kind: slides title: "Ο βρόχος for (;;)" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 23" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6] topics: [loops] difficulty: 1 diff --git a/questions/slides/slides-lec06-if-else-max.md b/questions/slides/slides-lec06-if-else-max.md index da9ffcf..4d5fb0a 100644 --- a/questions/slides/slides-lec06-if-else-max.md +++ b/questions/slides/slides-lec06-if-else-max.md @@ -4,8 +4,8 @@ kind: slides title: "Μέγιστο με if-else και εναλλακτικές" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 13" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6, 5] topics: [conditionals] difficulty: 1 diff --git a/questions/slides/slides-lec06-while-forever.md b/questions/slides/slides-lec06-while-forever.md index 3a1d4a7..99481ee 100644 --- a/questions/slides/slides-lec06-while-forever.md +++ b/questions/slides/slides-lec06-while-forever.md @@ -4,8 +4,8 @@ kind: slides title: "Ο βρόχος while (1)" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 20" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6] topics: [loops] difficulty: 1 diff --git a/questions/slides/slides-lec06-while-semicolon.md b/questions/slides/slides-lec06-while-semicolon.md index 2ef3784..6492c93 100644 --- a/questions/slides/slides-lec06-while-semicolon.md +++ b/questions/slides/slides-lec06-while-semicolon.md @@ -4,8 +4,8 @@ kind: slides title: "Το ερωτηματικό μετά το while" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 21" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6] topics: [loops, statements] difficulty: 2 diff --git a/questions/slides/slides-lec06-while-sum.md b/questions/slides/slides-lec06-while-sum.md index 0ad0ddb..18b5ce4 100644 --- a/questions/slides/slides-lec06-while-sum.md +++ b/questions/slides/slides-lec06-while-sum.md @@ -4,8 +4,8 @@ kind: slides title: "Άθροισμα με while" source: title: "Διάλεξη 6: Εντολές και Ροή Ελέγχου, διαφάνεια 19" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec06.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec06.pdf + years: [2025, 2026] chapters: [6] topics: [loops] difficulty: 1 diff --git a/sources/extract/lec06.yaml b/sources/extract/lec06.yaml index ddec2d3..94aa2d1 100644 --- a/sources/extract/lec06.yaml +++ b/sources/extract/lec06.yaml @@ -1,4 +1,6 @@ lecture: 6 +year: 2026-27 # updated from the 2025-26 deck (29 pages) on 2026-10-20; same page numbers +slides: https://progintro.github.io/assets/pdf/lec06.pdf pages: 29 outline: - {pages: "1-2", section: "Γρήγορος έλεγχος της λύσης με pipes και time"} # in Παραδείγματα @@ -15,7 +17,7 @@ outline: - {pages: "27-29", section: "Σύγκριση των τριών βρόχων"} pointers: - {page: 2, text: "Περισσότερα για τις ακολουθίες aliquot: https://math.dartmouth.edu/~carlp/upintconf.pdf"} - - {page: 2, text: "echo -e \"...\" | ./aliquot, με time και ttyplot (άσκηση aliquot της hw0 2025)"} + - {page: 2, text: "echo -e \"42\\ng\\n67\\np\\n\" | ./goldbach, με time, και time ./goldbach < input.txt (άσκηση goldbach της hw0 2026)"} - {page: 15, text: "Wikipedia: Dangling else (https://en.wikipedia.org/wiki/Dangling_else)"} - {page: 16, text: "Wikipedia: Dangling else (https://en.wikipedia.org/wiki/Dangling_else)"} - {page: 28, text: "Σημειώσεις κ. Σταματόπουλου: όλα μέχρι τη σελίδα 62 (K04)"} @@ -25,6 +27,7 @@ pointers: - {page: 28, text: "Wikipedia: For loops (https://en.wikipedia.org/wiki/For_loop)"} takeaways_slide: null issues: + - "2026-27 deck vs 2025-26 (both 29 pages): only pp. 2-4 changed. p. 2 keeps the aliquot link but its pipe/time example is now the hw0 2026 goldbach exercise (input 42/g, 67/p) and adds reading from a file (time ./goldbach < input.txt) instead of ttyplot; pp. 3-4 add painting captions. All page numbers are unchanged. The chapter's pipes section now follows the goldbach example and mentions the 2025-26 aliquot one." - "No explicit key-takeaways slide; the red callouts on p. 11 (parentheses are mandatory) and p. 16 (use braces when unsure) were treated as takeaways." - "p. 23: `for (;;)` is shown without a body, so it is not a complete statement; the chapter adds an empty statement `;` as body (noted in the example text)." - "p. 27 is only 'Kahoot Time!'; the quiz questions are not in the slides, so none were transcribed. The chapter's 'Σύγκριση των τριών βρόχων' is a synthesis section (supported by lab03's intro), mapped to pp. 27-29. Worked examples of pp. 7, 13, 15, 19-21, 22-24, 26 are in «Παραδείγματα»." diff --git a/sources/manifest.yaml b/sources/manifest.yaml index 401d916..5d57c84 100644 --- a/sources/manifest.yaml +++ b/sources/manifest.yaml @@ -27,7 +27,7 @@ lectures: - {n: 3, slug: 03-functions, date: 2026-10-09, part: B, slides: lec03.pdf, url: "https://progintro.github.io/assets/pdf/lec03.pdf", title: "Συναρτήσεις", notes: [04-functions], labs: [lab05]} - {n: 4, slug: 04-git-operators, date: 2026-10-12, part: A, slides: lec04.pdf, url: "https://progintro.github.io/assets/pdf/lec04.pdf", title: "Git και Τελεστές", notes: [02-types-operators], labs: [lab01]} - {n: 5, slug: 05-operators-statements, date: 2026-10-16, part: B, slides: lec05.pdf, url: "https://progintro.github.io/assets/pdf/lec05.pdf", title: "Τελεστές και Εντολές", notes: [02-types-operators, 03-control-flow], labs: [lab03]} - - {n: 6, slug: 06-control-flow, date: 2025-10-20, part: B, slides: lec06.pdf, title: "Εντολές και Ροή Ελέγχου", notes: [03-control-flow], labs: [lab03]} + - {n: 6, slug: 06-control-flow, date: 2026-10-19, part: B, slides: lec06.pdf, url: "https://progintro.github.io/assets/pdf/lec06.pdf", title: "Εντολές και Ροή Ελέγχου", notes: [03-control-flow], labs: [lab03]} - {n: 7, slug: 07-problem-solving, date: 2025-10-24, part: B, slides: lec07.pdf, title: "Επίλυση Προβλημάτων", notes: [01-first-programs], labs: [lab03]} - {n: 8, slug: 08-control-flow-2, date: 2025-10-27, part: B, slides: lec08.pdf, title: "Ροή Ελέγχου #2", notes: [03-control-flow], labs: [lab03]} - {n: 9, slug: 09-input, date: 2025-10-31, part: B, slides: lec09.pdf, title: "Δεδομένα Εισόδου", notes: [01-first-programs, 09-io], labs: [lab04]}