From dc5a963b3124e728fe65c0087ac0de82df695cbe Mon Sep 17 00:00:00 2001 From: Thanassis Avgerinos Date: Mon, 2 Nov 2026 21:39:45 +0200 Subject: [PATCH] Point chapter 10 to the 2026-27 lecture 10 slides The 2026-27 deck (assets/pdf/lec10.pdf on the course site) has the same 53 pages as 2025-26 and no page numbers moved. p. 2, empty in 2025-26, now asks how a function differs from a program and how a function's return value differs from a program's exit code. pp. 3-4 add painting captions and the closing p. 52 is reworded. Chapter 10's summary answers the two questions briefly and links to chapter 3 for the exit code. The reading list, the fourteen slide questions, the extract notes, the manifest and `make fetch` now point to the new deck. --- Makefile | 2 +- README.md | 2 +- chapters/10-arrays/README.md | 23 +++++++++++++++---- questions/slides/slides-lec10-addnums.md | 4 ++-- questions/slides/slides-lec10-array-assign.md | 4 ++-- questions/slides/slides-lec10-array-memory.md | 4 ++-- questions/slides/slides-lec10-atoi.md | 4 ++-- questions/slides/slides-lec10-average.md | 4 ++-- questions/slides/slides-lec10-find-max.md | 4 ++-- questions/slides/slides-lec10-find.md | 4 ++-- questions/slides/slides-lec10-getinteger.md | 4 ++-- .../slides/slides-lec10-letter-frequency.md | 4 ++-- .../slides/slides-lec10-out-of-bounds.md | 4 ++-- .../slides/slides-lec10-scanf-correct.md | 4 ++-- .../slides/slides-lec10-scanf-no-ampersand.md | 4 ++-- questions/slides/slides-lec10-scanf-square.md | 4 ++-- .../slides/slides-lec10-scanf-two-numbers.md | 4 ++-- sources/extract/lec10.yaml | 7 ++++-- sources/manifest.yaml | 2 +- 19 files changed, 54 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index 6e0835f..d985d61 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 lec06 lec07 lec08 lec09; 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 lec07 lec08 lec09 lec10; 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 c4d2d6d..82831f4 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–9), τις +του 2026-27 καθώς δημοσιεύονται (ως τώρα: Διαλέξεις 0–10), τις [σημειώσεις](https://progintro.github.io/notes/) του μαθήματος, τα [εργαστήρια](https://progintro.github.io/lab-material/) και τα θέματα εξετάσεων και τις εργασίες προηγούμενων ετών. Οι ασκήσεις έχουν υποδείξεις αλλά όχι λύσεις. diff --git a/chapters/10-arrays/README.md b/chapters/10-arrays/README.md index 850302c..563d4e8 100644 --- a/chapters/10-arrays/README.md +++ b/chapters/10-arrays/README.md @@ -3,9 +3,9 @@ layout: chapter chapter: 10 lecture: 10 title: "Πίνακες" -date: 2025-11-03 +date: 2026-11-02 part: C -slides: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf +slides: https://progintro.github.io/assets/pdf/lec10.pdf prev: 09-input next: 11-pointers-recursion topics: [arrays, input-output, input-validation, memory-model, strings, functions, searching, undefined-behavior] @@ -42,6 +42,18 @@ labs: [lab06] πίνακες είναι η βάση για τις συμβολοσειρές, τους δείκτες και σχεδόν όλους τους αλγορίθμους του υπόλοιπου μαθήματος. +Οι ανακοινώσεις του 2026-27 άνοιξαν με δύο ερωτήσεις. *Ποια η διαφορά (υπάρχει;) μιας +συνάρτησης και ενός προγράμματος;* Ένα πρόγραμμα ξεκινά από τη `main`, που είναι κι +αυτή μια συνάρτηση. Τη διαφορά την κάνει ο καλών: μια συνάρτηση την καλεί άλλος +κώδικας του ίδιου προγράμματος, με ορίσματα οποιουδήποτε τύπου, ενώ ένα πρόγραμμα το +τρέχει το λειτουργικό σύστημα (π.χ. από το shell) και του δίνει ορίσματα μόνο ως +κείμενο (`argc`/`argv`). *Ποια η διαφορά ανάμεσα στην τιμή επιστροφής μιας συνάρτησης +και τον κωδικό εξόδου ενός προγράμματος;* Ο κωδικός εξόδου είναι η τιμή που επιστρέφει +η `main` ([Κεφάλαιο 3](../03-functions/)), αλλά φτάνει στο shell μόνο ως ένας μικρός +ακέραιος (στο Linux 0–255, που διαβάζετε με `echo $?`, με το `0` να σημαίνει +επιτυχία). Η τιμή επιστροφής μιας συνάρτησης μπορεί να είναι οποιουδήποτε τύπου και +τη χρησιμοποιεί ο κώδικας που την κάλεσε. + ## Θεωρία @@ -639,12 +651,13 @@ $0 \to 4 \to 47 \to 472$. ## Διάβασμα -- **Διαφάνειες:** [Διάλεξη 10](https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf), - σελ. 1–52. `scanf` σελ. 5–16· `getinteger` και συχνότητες γραμμάτων σελ. 17–18· +- **Διαφάνειες:** [Διάλεξη 10](https://progintro.github.io/assets/pdf/lec10.pdf) (2026-27), + σελ. 1–52. Συνάρτηση και πρόγραμμα, τιμή επιστροφής και κωδικός εξόδου σελ. 2· `scanf` σελ. 5–16· `getinteger` και συχνότητες γραμμάτων σελ. 17–18· γρίφος με τα αρκουδάκια σελ. 20–27· δήλωση, μνήμη, χρήση και αρχικοποίηση πίνακα σελ. 28–36· `find_max` σελ. 37–38· διευθύνσεις και τύποι σελ. 39–40· strings σελ. 41· ανάθεση, χρησιμότητα, όρια σελ. 42–44· `average`, `find`, `atoi` - σελ. 45–50. + σελ. 45–50. Οι διαφάνειες του 2025-26 έχουν την ίδια αρίθμηση (εκεί η σελ. 2 είναι + κενή): [Διάλεξη 10 (2025)](https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf). - **Σημειώσεις:** η διάλεξη μαζί με την επόμενη καλύπτει τις σελίδες 73–103 των σημειώσεων του κ. Σταματόπουλου. Για αυτό το κεφάλαιο: [Κεφάλαιο 5: Δείκτες και πίνακες](https://progintro.github.io/notes/chapters/05-pointers-arrays/), diff --git a/questions/slides/slides-lec10-addnums.md b/questions/slides/slides-lec10-addnums.md index b7cd921..c25b36c 100644 --- a/questions/slides/slides-lec10-addnums.md +++ b/questions/slides/slides-lec10-addnums.md @@ -4,8 +4,8 @@ kind: slides title: "Πρόσθεση δύο αριθμών από την είσοδο" source: title: "Διάλεξη 10, διαφάνεια 5" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10, 9] topics: [input-output] difficulty: 1 diff --git a/questions/slides/slides-lec10-array-assign.md b/questions/slides/slides-lec10-array-assign.md index 6d272a1..f3eb229 100644 --- a/questions/slides/slides-lec10-array-assign.md +++ b/questions/slides/slides-lec10-array-assign.md @@ -4,8 +4,8 @@ kind: slides title: "Ανάθεση πίνακα σε πίνακα" source: title: "Διάλεξη 10, διαφάνεια 42" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays] difficulty: 1 diff --git a/questions/slides/slides-lec10-array-memory.md b/questions/slides/slides-lec10-array-memory.md index a3a883a..cafa204 100644 --- a/questions/slides/slides-lec10-array-memory.md +++ b/questions/slides/slides-lec10-array-memory.md @@ -4,8 +4,8 @@ kind: slides title: "Ποιος πίνακας πιάνει περισσότερη μνήμη;" source: title: "Διάλεξη 10, διαφάνεια 40" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays, types, memory-model] difficulty: 1 diff --git a/questions/slides/slides-lec10-atoi.md b/questions/slides/slides-lec10-atoi.md index c44d042..c3e7582 100644 --- a/questions/slides/slides-lec10-atoi.md +++ b/questions/slides/slides-lec10-atoi.md @@ -4,8 +4,8 @@ kind: slides title: "Η συνάρτηση atoi" source: title: "Διάλεξη 10, διαφάνειες 49-50" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays, strings, functions] difficulty: 2 diff --git a/questions/slides/slides-lec10-average.md b/questions/slides/slides-lec10-average.md index 5ebd29d..592fb1e 100644 --- a/questions/slides/slides-lec10-average.md +++ b/questions/slides/slides-lec10-average.md @@ -4,8 +4,8 @@ kind: slides title: "Μέσος όρος πίνακα" source: title: "Διάλεξη 10, διαφάνειες 45-46" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays, functions] difficulty: 1 diff --git a/questions/slides/slides-lec10-find-max.md b/questions/slides/slides-lec10-find-max.md index 30cd933..5472743 100644 --- a/questions/slides/slides-lec10-find-max.md +++ b/questions/slides/slides-lec10-find-max.md @@ -4,8 +4,8 @@ kind: slides title: "Το μεγαλύτερο αρκουδάκι" source: title: "Διάλεξη 10, διαφάνειες 21-26 και 37" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays, functions] difficulty: 1 diff --git a/questions/slides/slides-lec10-find.md b/questions/slides/slides-lec10-find.md index 0e62796..ee69532 100644 --- a/questions/slides/slides-lec10-find.md +++ b/questions/slides/slides-lec10-find.md @@ -4,8 +4,8 @@ kind: slides title: "Αναζήτηση στοιχείου σε πίνακα" source: title: "Διάλεξη 10, διαφάνειες 47-48" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays, functions, searching] difficulty: 1 diff --git a/questions/slides/slides-lec10-getinteger.md b/questions/slides/slides-lec10-getinteger.md index 909bce0..2948273 100644 --- a/questions/slides/slides-lec10-getinteger.md +++ b/questions/slides/slides-lec10-getinteger.md @@ -4,8 +4,8 @@ kind: slides title: "Τι κάνει η getinteger;" source: title: "Διάλεξη 10, διαφάνεια 17" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10, 9] topics: [input-output, functions] difficulty: 2 diff --git a/questions/slides/slides-lec10-letter-frequency.md b/questions/slides/slides-lec10-letter-frequency.md index 5b3f3d6..1476cf1 100644 --- a/questions/slides/slides-lec10-letter-frequency.md +++ b/questions/slides/slides-lec10-letter-frequency.md @@ -4,8 +4,8 @@ kind: slides title: "Τι κάνει ο πίνακας letfr;" source: title: "Διάλεξη 10, διαφάνεια 18" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays, input-output] difficulty: 2 diff --git a/questions/slides/slides-lec10-out-of-bounds.md b/questions/slides/slides-lec10-out-of-bounds.md index 5aea71d..34e6366 100644 --- a/questions/slides/slides-lec10-out-of-bounds.md +++ b/questions/slides/slides-lec10-out-of-bounds.md @@ -4,8 +4,8 @@ kind: slides title: "Πρόσβαση εκτός ορίων πίνακα" source: title: "Διάλεξη 10, διαφάνεια 44" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [arrays, undefined-behavior] difficulty: 1 diff --git a/questions/slides/slides-lec10-scanf-correct.md b/questions/slides/slides-lec10-scanf-correct.md index baf59f0..418028b 100644 --- a/questions/slides/slides-lec10-scanf-correct.md +++ b/questions/slides/slides-lec10-scanf-correct.md @@ -4,8 +4,8 @@ kind: slides title: "Είναι σωστό αυτό το πρόγραμμα;" source: title: "Διάλεξη 10, διαφάνειες 12-14" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [input-output, input-validation] difficulty: 2 diff --git a/questions/slides/slides-lec10-scanf-no-ampersand.md b/questions/slides/slides-lec10-scanf-no-ampersand.md index 77f2cdb..463e65b 100644 --- a/questions/slides/slides-lec10-scanf-no-ampersand.md +++ b/questions/slides/slides-lec10-scanf-no-ampersand.md @@ -4,8 +4,8 @@ kind: slides title: "scanf χωρίς &" source: title: "Διάλεξη 10, διαφάνεια 11" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10, 11] topics: [input-output, pointers] difficulty: 2 diff --git a/questions/slides/slides-lec10-scanf-square.md b/questions/slides/slides-lec10-scanf-square.md index 863134b..875c93f 100644 --- a/questions/slides/slides-lec10-scanf-square.md +++ b/questions/slides/slides-lec10-scanf-square.md @@ -4,8 +4,8 @@ kind: slides title: "Τι κάνει το πρόγραμμα με τη scanf;" source: title: "Διάλεξη 10, διαφάνειες 9-10" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [input-output] difficulty: 1 diff --git a/questions/slides/slides-lec10-scanf-two-numbers.md b/questions/slides/slides-lec10-scanf-two-numbers.md index 91967be..0dfbef5 100644 --- a/questions/slides/slides-lec10-scanf-two-numbers.md +++ b/questions/slides/slides-lec10-scanf-two-numbers.md @@ -4,8 +4,8 @@ kind: slides title: "scanf με πολλά ορίσματα" source: title: "Διάλεξη 10, διαφάνειες 15-16" - url: https://github.com/progintro/progintro.github.io/releases/download/2025/lec10.pdf - years: [2025] + url: https://progintro.github.io/assets/pdf/lec10.pdf + years: [2025, 2026] chapters: [10] topics: [input-output] difficulty: 1 diff --git a/sources/extract/lec10.yaml b/sources/extract/lec10.yaml index ed5c3da..bad0d57 100644 --- a/sources/extract/lec10.yaml +++ b/sources/extract/lec10.yaml @@ -1,8 +1,10 @@ lecture: 10 +year: 2026-27 # updated from the 2025-26 deck (53 pages) on 2026-11-02; same page numbers +slides: https://progintro.github.io/assets/pdf/lec10.pdf pages: 53 outline: - {pages: "1", section: "(τίτλος)"} - - {pages: "2", section: "(ανακοινώσεις / διευκρινίσεις: κενή διαφάνεια)"} + - {pages: "2", section: "Σύνοψη"} # 2026-27: function vs program, return value vs exit code - {pages: "3-4", section: "(προηγούμενη φορά / σήμερα)"} - {pages: "5", section: "Η `getinteger` με `getchar` (Παραδείγματα)"} - {pages: "6-8", section: "Η συνάρτηση `scanf`"} @@ -39,7 +41,8 @@ pointers: - {page: 51, text: "Memoization: https://en.wikipedia.org/wiki/Memoization"} takeaways_slide: null # p. 51 is a reading assignment, not a takeaways slide issues: - - "p. 2: 'Ανακοινώσεις / Διευκρινίσεις' slide has a title and no content." + - "2026-27 deck vs 2025-26 (both 53 pages, same page numbers). p. 2 was empty and now asks two questions: «Ποια η διαφορά (υπάρχει;) μιας συνάρτησης και ενός προγράμματος;» and «Ποια η διαφορά (υπάρχει;) ανάμεσα στην τιμή επιστροφής μιας συνάρτησης και τον κωδικό εξόδου ενός προγράμματος;». The slides give no answer; the chapter's Σύνοψη answers both briefly (caller: other code vs the OS; typed arguments vs argv text; exit code = main's return value, 0-255 on Linux, read with echo $?). pp. 3-4 add painting captions (p. 4 also «Πίνακας με Πίνακες!»), and the closing p. 52 says «καλή μέρα» instead of «καλό Σαββατοκύριακο»." + - "2025-26 p. 2: 'Ανακοινώσεις / Διευκρινίσεις' slide has a title and no content." - "p. 53: stray slide 'The Iron Triangle of Project Management' (Scope / Cost / Time around Quality) after the closing slide; unrelated to arrays, left out of the chapter." - "p. 14: the second run ('Gimme a number: Square:' then 1068701481) shows no input; the chapter interprets it as EOF (Ctrl-D), which the slide does not state." - "p. 17: the comment 'No need to declare ch as int - no EOF handling' sits next to 'int ch;' (as in the notes); transcribed as is." diff --git a/sources/manifest.yaml b/sources/manifest.yaml index 5dc3fa9..5bc7852 100644 --- a/sources/manifest.yaml +++ b/sources/manifest.yaml @@ -31,7 +31,7 @@ lectures: - {n: 7, slug: 07-problem-solving, date: 2026-10-23, part: B, slides: lec07.pdf, url: "https://progintro.github.io/assets/pdf/lec07.pdf", title: "Επίλυση Προβλημάτων", notes: [01-first-programs], labs: [lab03]} - {n: 8, slug: 08-control-flow-2, date: 2026-10-26, part: B, slides: lec08.pdf, url: "https://progintro.github.io/assets/pdf/lec08.pdf", title: "Ροή Ελέγχου #2", notes: [03-control-flow], labs: [lab03]} - {n: 9, slug: 09-input, date: 2026-10-30, part: B, slides: lec09.pdf, url: "https://progintro.github.io/assets/pdf/lec09.pdf", title: "Δεδομένα Εισόδου", notes: [01-first-programs, 09-io], labs: [lab04]} - - {n: 10, slug: 10-arrays, date: 2025-11-03, part: C, slides: lec10.pdf, title: "Πίνακες", notes: [05-pointers-arrays], labs: [lab06]} + - {n: 10, slug: 10-arrays, date: 2026-11-02, part: C, slides: lec10.pdf, url: "https://progintro.github.io/assets/pdf/lec10.pdf", title: "Πίνακες", notes: [05-pointers-arrays], labs: [lab06]} - {n: 11, slug: 11-pointers-recursion, date: 2025-11-07, part: C, slides: lec11.pdf, title: "Δείκτες και Αναδρομή", notes: [04-functions, 05-pointers-arrays], labs: [lab05, lab06]} - {n: 12, slug: 12-pointers-arrays, date: 2025-11-10, part: C, slides: lec12.pdf, title: "Δείκτες και Πίνακες", notes: [05-pointers-arrays], labs: [lab06]} - {n: 13, slug: 13-memory, date: 2025-11-14, part: C, slides: lec13.pdf, title: "Μνήμη", notes: [06-memory-strings], labs: [lab07]}