# data[].attributes.attachment_link.title
Ενημέρωση-γνωριμία γονείς

# data[].attributes.attachment_link.title
Πανελλαδικές

# data[].attributes.headline
Αντικειμενοστραφής προγραμματισμός

# data[].attributes.subject
Αντικειμενοστραφής προγραμματισμός

# data[].attributes.body
Θεωρία

Βιβλίο μαθητή παράγραφος 6.5 σελ. 119

Συμπληρωματικό υλικό παράγραφοι 4.1-4.6 σελ. 85

Ασκήσεις

Παρουσίαση1

Βίντεο με τα παραδείγματα του συμπλ. υλικού

Βίντεο για τις κλάσεις

Παρουσίαση 2 (πιο απλά)
Παρουσίαση κλάσεις (από συμπληρ. υλικό)

# data[].attributes.headline
ΛΙΣΤΕΣ - ΔΕΝΤΡΑ

# data[].attributes.subject
ΛΙΣΤΕΣ - ΔΕΝΤΡΑ

# data[].attributes.body
Παρουσίαση Λίστες- Δέντρα- Γράφοι

Συμπληρωματικό υλικό Κεφ 1.3

Ασκήσεις Λίστες

Ασκήσεις Δένδρα

Βίντεο Δένδρα

Photodentro Συνδεδεμένη Λίστα Βίντεο

Binary tree

# data[].attributes.headline
11. Υποπρογράμματα

# data[].attributes.subject
11. Υποπρογράμματα

# data[].attributes.body
Θεωρία Βιβλίο μαθητή Κεφ. 10 σελ 171

Τμηματικός προγραμματισμός, υποπρόγραμμα, χαρακτηριστικά υποπρογραμμάτων, πλεονεκτήματα.

Κύριο πρόγραμμα, διαδικασία, συνάρτηση, ορισμός και κλήση διαδικασιών και συναρτήσεων, παράμετροι.

Φυλλάδιο εισαγωγικών ασκήσεων

Ασκήσεις 1

Επιπλέον ασκήσεις 2 με πίνακες

# data[].attributes.headline
Kahoots Ερωτήσεων

# data[].attributes.subject
Kahoots Ερωτήσεων

# data[].attributes.body
Ερωτήσεις Δομές Επανάληψης

Ερωτήσεις στους Πίνακες

Γενικές Ερωτήσεις

# data[].attributes.body
Turtle graphics https://trinket.io/python/53357bb8dd

Math Game https://trinket.io/python/503f18c65a75?runOption=run

Ατομικοί αριθμοί https://trinket.io/python3/2a95a34be80b

Hangman https://trinket.io/python3/e4df0fcc4b2d

Python formatting info https://www.geeksforgeeks.org/python-output-formatting/

# data[].attributes.attachment_link.title
Python - Output Formatting - GeeksforGeeks

# data[].attributes.attachment_link.description
Python offers various methods for output formatting, including the old-style string modulo operator, the format() method, and f-strings, each providing different levels of flexibility and readability for presenting data.

# data[].attributes.headline
Διαγωνισμός Υπολογιστικής σκέψης Bebras 2024

# data[].attributes.subject
Διαγωνισμός Υπολογιστικής σκέψης Bebras 2024

# data[].attributes.body
Σύνδεση συντονιστή εδώ

Συμμετοχή στο διαγωνισμό εδώ

Θέματα εδώ

Θέματα από τον διαγωνισμό UK here

# data[].attributes.headline
ΠΛΗΡΟΦΟΡΙΚΗ Βιβλία & Υλη

# data[].attributes.subject
ΠΛΗΡΟΦΟΡΙΚΗ Βιβλία & Υλη

# data[].attributes.body
Σειρά διδασκαλίας - ΟΔΗΓΙΕΣ 24-25 - λινκ

Ύλη Πληροφορικής Γ' ΓΕΛ 2024-25

Καθορισμός ύλης πανελλαδικά εξεταζομένων μαθημάτων ΦΕΚ

Βιβλίο μαθητή

Παράστημα Α | ΟΔΗΓΙΕΣ ΜΕΛΕΤΗΣ

Παράρτημα Β (Συμπληρωματικό υλικό)| λήψη από ΙΕΠ και λύσεις ασκήσεων εδώ

ΥΛΗ ΔΙΑΓΩΝΙΣΜΑ Α' ΤΕΤΡΑΜΗΝΟΥ

ΥΛΗ ΔΙΑΓΩΝΙΣΜΑ Β' ΤΕΤΡΑΜΗΝΟΥ

GLOGLOSSA.gr

Γλωσσομάθεια εδώ

Playground

Sketch.io

Θέματα κατά κεφάλαιο 2024

# data[].attributes.headline
ΣΙΤΑΡΙΔΗΣ ΙΩΑΝΝΗΣ's CS

# data[].attributes.body
ΣΙΤΑΡΙΔΗΣ ΙΩΑΝΝΗΣ's CS Lab

https://minedu-secondary.webex.com/meet/ysitar | 1211032921

Join by video system

Dial ysitar@minedu-secondary.webex.com and enter your host PIN .

Access code: 121 103 2921

# data[].attributes.body
https://users.sch.gr/johncyp/greek_pages/mathimata/anap_efarmogwn/Ergasies/Math_38/Mauro_Kouti_SL_3.htm

http://2lyk-gerak.att.sch.gr/lesson_aepp.htm

# data[].attributes.attachment_link.title
Θέματα Εξετάσεων Πληροφορικής - ΑΕΠΠ ανά κεφάλαιο 2024.pdf

# data[].attributes.body
https://www.toy123d.com/en/

# data[].attributes.headline
Εκσφαλμάτωση

# data[].attributes.subject
Εκσφαλμάτωση

# data[].attributes.body
Εκσφαλμάτωση

σελ. 114-120 Κατηγορίες λαθών

σελ. 121-125 Εκσφαλμάτωση στη δομή επιλογής

σελ.125-130 Εκσφαλμάτωση στη δομή επανάληψης

σελ. 131-135 Εκσφαλμάτωση σε πίνακες

σελ. 135-..εκσφαλμάτωση σε υποπρογράμματα

Παρουσίαση Κεφ. 13

Quiz μαύρο κουτί

# data[].attributes.body
Θεωρία Βιβλίο μαθητή :

Στοίβα Βλέπε παράγραφο 3.4, σελ. 60

Ουρά Βλέπε παράγραφο 3.5, σελ. 61

Συμπληρωματικό υλικό Κεφ1

Παραδείγματα και οπτικοποίηση στο photodentro:

http://photodentro.edu.gr/lor/r/8521/10521?locale=el

http://photodentro.edu.gr/lor/r/8521/10522?locale=el

http://photodentro.edu.gr/v/item/ds/8521/10522

Ασκήσεις1

Ασκήσεις Στοίβα 22

Ασκήσεις ουρά 22

Συμπληρωματικό υλικό Κεφ1

# data[].attributes.headline
4. Δομές δεδομένων - Πίνακες 

# data[].attributes.subject
4. Δομές δεδομένων - Πίνακες 

# data[].attributes.body
ΘΕΩΡΙΑ Βιβλίο Μαθητή Στατικές-Δυναμικές Δομές Πίνακες σελ 58, Μονοδιάστατοι Πίνακες σελ 155-159

--- 9.1 Βασικές Aσκήσεις Μονοδιάστατοι

--- 9.2 Προχωρημένες Μονοδιάστατοι

Αναζήτηση

Σειριακή αναζήτηση

Δυαδική αναζήτηση - Δυαδική πρόγραμμα

--- 9.3 Ασκήσεις στην αναζήτηση

Ταξινόμηση

Ταξινόμηση ευθείας ανταλλαγής

Ταξινόμηση με επιλογή

--- 9.3 Ασκήσεις στην ταξινόμηση

--- 9.3 Ασκήσεις στη συγχώνευση

ΘΕΩΡΙΑ Βιβλίο Μαθητή Δισδιάστατοι πίνακες σελ 59, σελ 160-166

--- 9.3 Βασικές ασκήσεις Δισδιάστατοι

--- 9.4 Προχωρημένες Δισδιάστατοι

Τυπικές επεξεργασίες πινάκων Βοηθ. Υλικό 4.3

# data[].attributes.headline
3. Δομές Επανάληψης

# data[].attributes.subject
3. Δομές Επανάληψης

# data[].attributes.body
Κεφ2 Σελ 44-45

Κεφ8 Σελ

Όσο 145-147

Μέχρις ότου 147-149

Για 149-151

Βλέπε παραδείγματα στις Οδηγίες Μελέτης σελ 38-52

Ασκήσεις Όσο επανάλαβε & Μέχρις_ότου

Ασκήσεις Για-Όσο

Ασκήσεις Διάφορες μεθοδολογίες στη Δομή Επανάληψης

Κατηγορίες Λαθών Κεφ13.1,

Εκσφαλμάτωση λαθών στη δομή επανάληψης Συμπληρωματικό Υλικό 5.1, 5.2

Μετατροπές από μια δομή επανάληψης σε άλλη

Βλέπε και Οδηγίες μελέτης 3.6 σελ 53-58

Πολλαπλασιασμός αλά ρωσικά Βιβλίο μαθητή σελ 48

Ασκήσεις Φυσική γλώσσα & Διάγραμμα ροής

# data[].attributes.headline
2. Δομή επιλογής

# data[].attributes.subject
2. Δομή επιλογής

# data[].attributes.body
Θεωρία Κεφ2 Σελ 38-43

Κεφ8 Σελ 139-149

1. Ασκήσεις 8.1 - Λογικές συνθήκες

2. Προτεραιότητα Τελεστών

3. Εμφωλευμένα Αν

4. Ασκήσεις 8.2 - Κλιμακωτή

5. Εντολή ΕΠΙΛΕΞΕ

# data[].attributes.headline
1. Δομή ακολουθίας

# data[].attributes.subject
1. Δομή ακολουθίας

# data[].attributes.body
1. Αριθμητικοί Τελεστές DIV / MOD

2. Βασικές Ασκήσεις Δομή ακολουθίας

3. Ασκήσεις στη Δομή Ακολουθίας

# data[].attributes.body
https://www.infoworld.com/article/3693755/applying-the-dry-kiss-and-yagni-principles-in-c-sharp.html

# data[].attributes.attachment_link.readable_text
The never-ending quest to enhance the quality of our code and improve its readability, maintainability, and performance has produced a number of architectural and design principles over the years. The DRY ("Don't repeat yourself"), YAGNI ("You're not gonna need it"), and KISS ("Keep it simple, stupid") principles are three we should all keep in mind when we code.

These three acronyms represent concepts that can help streamline your development process as well as make your code simpler, cleaner, and more maintainable. We will examine these three principles here as well as learn how they can be applied to the code of your .NET applications.

To work with the code examples provided in this article, you should have Visual Studio 2022 installed in your system. If you don't already have a copy, you can download Visual Studio 2022 here.

Create a console application project in Visual Studio

First off, let's create a .NET Core console application project in Visual Studio. Assuming Visual Studio 2022 is installed in your system, follow the steps outlined below to create a new .NET Core console application project.

1. Launch the Visual Studio IDE.

2. Click on "Create new project."

3. In the "Create new project" window, select "Console App (.NET Core)" from the list of templates displayed.

4. Click Next.

5. In the "Configure your new project" window shown next, specify the name and location for the new project.

6. Click Next.

7. In the "Additional information" window, choose ".NET 7.0 (Standard Term Support)" as the framework version you would like to use.

8. Click Create.

We'll use this .NET 7 console application project to work with code examples of the DRY, YAGNI, and KISS principles in the subsequent sections of this article.

The DRY principle

In software development, the "Don't repeat yourself" principle means you should avoid the duplication of code in your application. DRY emphasizes easing the maintainability of your application's source code across all stages of the application's lifecycle. Adhering to this principle would ensure that altering the code in one location would automatically update every occurrence of that code throughout the application.

The DRY principle encourages developers to write code that is clean, modular, and reusable. Modularity can help in making changes and additions to the application more efficient and seamless, with less risk of errors creeping into the system.

DRY can be applied to all aspects of your software development process including code, configuration files, documentation, and the user interface. It can help developers reduce the amount of code they need to write and maintain and eliminate code redundancies, leading to fewer defects and a more effective use of resources.

The DRY principle may be used to enhance collaboration among developers and to teach new developers how to contribute to an existing code base more successfully, in addition to enhancing the quality and maintainability of the code.

Implementing the DRY principle in C#

You can implement the DRY principle in C# in the following ways:

Using methods: Methods implement the DRY principle by allowing you to centralize code that will be used in multiple parts of your application. It is often easier to move the code that is repeated in multiple places into a method and call it from everywhere. Any required changes can be done at a single location in your code base.

Using classes and inheritance: When lines of code are spread across many classes and methods, they can be relocated to a parent class, which all of the derived classes can then inherit. This approach ensures that modifications to the code can be made in a single location rather than in each separate class that extends the base class.

Using interfaces: Code shared across classes without a common base class may be moved into an interface and implemented by the relevant classes. In this way, the code will be shared throughout all types, such that if you ever need to modify the code, you only have to update the interface.

The following code snippet illustrates how you can implement the DRY principle using methods. Note how the AddIntegers method has been reused.

class Program
{
        static void Main(string[] args)
        {
            int a = 5;
            int b = 10;
            int x = 10;
            int y = 20;
            // Calling the AddIntegers method twice
            int s1 = AddIntegers(a, b);
            int s2 = AddIntegers(x, y);
            Console.WriteLine($"Sum of a and b is: {s1}, " +
                $"Sum of x and y is: {s2}");
            Console.ReadKey();
        }
     static int AddIntegers(int num1, int num2)
     {
            return num1 + num2;
     }
}

This is a good example of the DRY principle because we avoided duplicating the code to add two numbers and instead created a reusable method that can be called multiple times with different parameters.

The KISS principle

In the context of software architecture and design, the "Keep it simple, stupid" principle advocates more straightforward solutions over complex ones because they are easier to comprehend, utilize, and maintain over time. This principle aims to encourage simplicity in the design and function of applications, products, and services.

You can apply the KISS principle to all aspects of software development from the application architecture to the user interface design. Its core idea involves steering clear of unnecessary complexity and instead prioritizing simplicity and making the simplest solution possible that effectively fulfills the needs of the user or the task at hand.

KISS is an important principle in engineering generally. Kelly Johnson initially employed the KISS principle to emphasize the importance of simple aircraft designs. Over time, this principle attained immense popularity, gaining recognition as a guiding tenet for diverse problems ranging from design to problem solving in software applications.

Implementing the KISS principle in C#

Consider the following two methods. The first method returns the month name as a text string using a Switch-Case construct. The second method achieves the same using an If-Else construct. Can you tell which is the KISS method?

public static string GetMonthNameUsingSwitchCase(int number)
{
     switch (number)
     {
         case 1:
             return "January";
         case 2:
             return "February";
         case 3:
             return "March";
         case 4:
             return "April";
         case 5:
             return "May";
         case 6:
             return "June";
         case 7:
             return "July";
         case 8:
             return "August";
         case 9:
             return "September";
         case 10:
             return "October";
         case 11:
             return "November";
         case 12:
             return "December";
         default:
             throw new InvalidOperationException();
     }
}

public static string GetMonthNameUsingIfElse(int number)
{
     if ((number < 1) || (number > 12)) throw new InvalidOperationException();
         string[] months = {
             "January",
             "February",
             "March",
             "April",
             "May",
             "June",
             "July",
             "August",
             "September",
             "October",
             "November",
             "December"
     };
         return months[number - 1];
}

As you can see here, the method that uses a Switch-Case construct is much simpler and easier to understand.

The YAGNI principle

The YAGNI or "You ain't gonna need it" principle implies that you should only implement functionality after you need it. The YAGNI principle says unnecessary code adds complexity and makes the system harder to understand, test, and maintain. It's easier to manage a streamlined and efficient application, so only implement the features you need.

The YAGNI principle is closely related to the Agile software development methodology, which emphasizes delivering working software quickly and regularly. Focusing on the most critical features and delivering them early on will allow developers to get frequent feedback from stakeholders, adjust their plans, and continuously improve the application.

The YAGNI principle doesn't discourage planning or forethought but encourages developers to focus on the essentials and avoid adding features they won't use. Developers should also avoid "gold plating" their code, adding unnecessary complexity for the sake of perfection.

Implementing the YAGNI principle in C#

The following code snippet provides an example of the YAGNI principle. Do you see why?

class Author
    {
        private string _firstName;
        private string _lastName;
        public Author(string firstName, string lastName)
        {
            _firstName = firstName;
            _lastName = lastName;
        }
        public string GetAuthorName()
        {
            return $"{_firstName} {_lastName}";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Author author = new Author("Joydip", "Kanjilal");
            Console.WriteLine($"Full name: {author.GetAuthorName()}");
        }
    }

In this example, the Author class follows the YAGNI principle of implementing minimal functionality. For this simple example, we have considered only two attributes of the Author entity, i.e. the first name and last name.

We have not implemented unnecessary characteristics like age, address, or telephone number. We may implement these attributes later, if we discover we have a use for them. In the meantime, we adhere to the YAGNI principle by not implementing unnecessary features and avoiding code bloat-additional features that may make the code harder to comprehend, use, and maintain.

By applying the DRY, KISS, and YAGNI principles, we can build better applications and make developers more productive. We can create better software that is simpler to understand and maintain over time if we minimize duplication of effort, keep our code as simple as possible, and eliminate extraneous features.

Copyright © 2023 IDG Communications, Inc.

# data[].attributes.attachment_link.title
Applying the DRY, KISS, and YAGNI principles in C#

# data[].attributes.attachment_link.description
If you don't repeat yourself, keep it simple, and implement only the functionality you really truly need, your C# code will be cleaner, simpler, and much easier to maintain.

# data[].attributes.headline
Κεφ. 6 Εισαγωγή στον προγραμματισμό

# data[].attributes.subject
Κεφ. 6 Εισαγωγή στον προγραμματισμό

# data[].attributes.headline
Θέματα επανάληψης

# data[].attributes.subject
Θέματα επανάληψης

# data[].attributes.body
ΟΕΦΕ Θέματα 2022-Απαντήσεις

Θέματα από Διακρότημα

ΚΑΗΟΟΤ Αναστασόπουλος Β.

# data[].attributes.headline
2.1 Διαίρει και βασίλευε

# data[].attributes.subject
2.1 Διαίρει και βασίλευε

# data[].attributes.body
https://www.educative.io/answers/what-are-bit-shift-operations

https://www.youtube.com/watch?v=qZEWGDSDKrk

# data[].attributes.body
Για περισσότερες λεπτομέρειες βλέπε εδώ σελίδα 130

# data[].attributes.headline
5.2.3 Εκσφαλμάτωση σε πίνακες

# data[].attributes.subject
5.2.3 Εκσφαλμάτωση σε πίνακες

# data[].attributes.headline
Ηλεκτρονικός Ε

# data[].attributes.body
Ηλεκτρονικός Εθισμός Dopamine

2023

Γαλλία

Ξένα Ντοκιμαντέρ, Επιστήμη-Άνθρωπος

53 λεπ.

# data[].attributes.attachment_link.description
Υπάρχουν 3 δις χρήστες smartphone παγκοσμίως που ξοδεύουν τον χρόνο τους όλο και περισσότερο σε κοινωνικές εφαρμογές. Τι συμβαίνει στον εγκέφαλό μας που…

# data[].attributes.headline
Πλαστικό, Μια 

# data[].attributes.body
Πλαστικό, Μια Μαζική Αυτοκτονία Plastic. A Collective Suicide?

2023

Ελβετία

Ξένα Ντοκιμαντέρ, Φύση-Περιβάλλον

56 λεπ.

# data[].attributes.attachment_link.description
Επιστήμονες από όλο τον κόσμο μας προειδοποιούν για τις επιπτώσεις του πλαστικού στην υγεία μας. Δεκάδες χιλιάδες χημικών εισχωρούν στις τροφές μας. Τα π…

# data[].attributes.body
https://researchersnight.gr/speaker/%ce%bc%ce%b1%ce%ba%cf%81%ce%ae-%cf%83%cf%89%cf%84%ce%b7%cf%81%ce%af%ce%b1-3/

ChatLab- 2o ΓΕΛ Αλεξάνδρειας 10.00-10:45

Τρίτη, 30 Σεπτεμβρίου · 10:00  – 11:00 πμ

Ζώνη ώρας: Europe/Athens

Πληροφορίες για συμμετοχή στο Google Meet

Σύνδεσμος βιντεοκλήσης: https://meet.google.com/qjx-oxjx-row

# data[].attributes.attachment_link.description
Περιβάλλον, Υγεία, Τοξικολογία

# data[].attributes.headline
Ενδοσχολική επιμόρφωση

# data[].attributes.body
Ενδοσχολική επιμόρφωση 5/12/2025

# data[].attributes.attachment_link.description
Simple, modern video meetings for everyone on the world’s most popular and trusted collaboration platform.

# data[].attributes.attachment_link.title
Πράγα -Βουδαπέστη 2026