Διδάσκοντας Τμηματικό Προγραμματισμό από την πρώτη μέρα / Teaching modular pr...Periklis Georgiadis
Περιγράφουμε μια ολιστική σπειροειδή προσέγγιση στη διδασκαλία του Τμηματικού Προγραμματισμού, ενσωματώνοντας τον παράλληλα στη διαπραγμάτευση όλων των εννοιών του δομημένου προγραμματισμού, και όχι απομονωμένο ως αυτοτελές αντικείμενο, προς το τέλος της γραμμικής προσέγγισης ενός τέτοιου μαθήματος, με εργαλείο τη ΓΛΩΣΣΑ, σε μαθητές της Γ΄ Λυκείου, πλαίσιο που ωστόσο δεν είναι μονοσήμαντο. Εκκινώντας από τις ενσωματωμένες συναρτήσεις και το μαθηματικό του υπόβαθρο, ο μαθητής εύκολα δημιουργεί τις πρώτες δικές του μαθηματικές συναρτήσεις, εισάγοντας στη συνέχεια επιπλέον τυπικές παραμέτρους, με αφορμή την εγκυρότητα δεδομένων εισάγεται στις διαδικασίες, και, καθώς κατακτά προγραμματιστικές δομές και δομές δεδομένων, εμπλουτίζει τα υποπρογράμματά του για πιο πολύπλοκα προβλήματα, έμπρακτα κατανοεί τα πλεονεκτήματα του Τμηματικού Προγραμματισμού, και σπειροειδώς χτίζει το θεωρητικό υπόβαθρο πίσω από τον τελευταίο.
Abstract
We describe a holistic spiral-learning approach to the teaching of Structural Programming, embedding it in parallel with all other concepts of structured programming, avoiding isolating it as an independent chapter, towards the end of a linear approach in a relevant course. With the built-in functions and their own mathematical backgrounds to build on, students easily create their first mathematical functions and continue with additional formal parameters, then they build processes to implement input validation, gradually enriching their programming skills and knowledge which allows them to create subprograms for even more complex problems, practically realizing the advantages of Modular Programming, and spirally completing the required theoretical background.
Τα ιστολόγια ¨Σσσσσσσστ !!!!!! Ησυχία ................... κοιμάται.¨ και ¨Παζλ Ενημέρωσης¨ σας παρουσιάζουν το δέκατο τρίτο τεύχος με επιλογές αναρτήσεων. Έχουμε ήδη εισέλθει στο 2ο χρόνο αυτής της προσπάθειας. Θα αναρτηθεί στο ¨Παζλ Ενημέρωσης, απ΄όπου θα μπορείτε να το κατεβάσετε στον υπολογιστή σας, για ευκολότερη ανάγνωση. Προτείνουμε ¨ΠΛΗΡΗ ΟΘΟΝΗ¨ για μία σελίδα. Επίσης με κλικ επί ενός θέματος στα περιεχόμενα, μεταβαίνετε στην σελίδα που αντιστοιχεί, η εν λόγω ανάρτηση.
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...ISSEL
Η στενή συνεργασία μεταξύ των προγραμματιστών για την ανάπτυξη καινοτόμων έργων λογισμικού κρίνεται απαραίτητη. Για αυτόν τον λόγο, υπάρχουν αρκετές διαδικτυακές πλατφόρμες φιλοξενίας προγραμμάτων, οι οποίες δίνουν τη δυνατότητα στους χρήστες τους να παρακολουθεί ο ένας τις αλλαγές, τις προτάσεις και τις παρατηρήσεις του άλλου για την εξέλιξη και τη βελτίωση του κώδικα. Επιπλέον, οι πλατφόρμες αυτές ελέγχουν τις διαφορετικές εκδόσεις του κώδικα ενός έργου, ώστε ο προγραμματιστής να μπορεί να ανατρέξει σε οποιαδήποτε από αυτές, εάν το επιθυμεί. Όλες οι τροποποιήσεις, οι οποίες διενεργούνται από ένα πρόσωπο της ομάδας ανάπτυξης λογισμικού σε μία δεδομένη χρονική στιγμή, συγκεντρώνονται σε ένα commit, όπου καταγράφονται μάλιστα όλοι οι λόγοι πίσω από αυτές. Έτσι, γίνεται κατανοητό ότι τέτοιες συλλογές αλλαγών εμπεριέχουν πολλές χρήσιμες πληροφορίες για τον τρόπο με τον οποίο εξελίσσεται ένα έργο λογισμικού. Η εφαρμογή τεχνικών του κλάδου της εξόρυξης δεδομένων στις δημόσιες αποθήκες λογισμικού και σε όλα τα δεδομένα που αναφέρθηκαν παραπάνω θα μπορούσε να φέρει στο φως ορισμένες συχνές διορθώσεις σφαλμάτων, συστηματικές τροποποιήσεις, επαναλαμβανόμενους τύπους αλλαγών στην αρχιτεκτονική, καθώς και κάποια ευρέως χρησιμοποιούμενα σχεδιαστικά πρότυπα, γνωστά ή μη. Μία εκτενής βιβλιογραφική έρευνα σε αυτόν τον τομέα αποκαλύπτει ότι οι περισσότερες προσπάθειες επιστημόνων έχουν στραφεί στις διορθώσεις σφαλμάτων και στις συστηματικές τροποποιήσεις, με αποτέλεσμα να έχουν αγνοηθεί κάποια λιγότερο λεπτομερή, δηλαδή πιο υψηλού επιπέδου (high level) μοτίβα εξέλιξης ή συγγραφής κώδικα. Στο πλαίσιο αυτό, η παρούσα διπλωματική εργασία προσπαθεί να ανακαλύψει τις σχέσεις ανάμεσα στις διάφορες κλάσεις ενός προγράμματος, αλλά και να παρακολουθήσει τον τρόπο με τον οποίο αυτές αλλάζουν στο πέρασμα του χρόνου. Για να επιτευχθούν οι παραπάνω στόχοι, προσαρμόζεται ένα εργαλείο εξαγωγής σχέσεων (Relationships Extractor), η λειτουργία του οποίου βασίζεται στην ανάλυση των Αφηρημένων Συντακτικών Δέντρων (Abstract Syntax Trees) που αφορούν τους κώδικες μερικών από τα πιο δημοφιλή έργα λογισμικού της διαδικτυακής πλατφόρμας του Github. Αφού αναλυθούν και επεξεργαστούν αυτά τα συντακτικά δέντρα, εξάγονται πληροφορίες για τη λειτουργία των κλάσεων, την αφαιρετικότητά τους και την κληρονομικότητα, οι οποίες στη συνέχεια μοντελοποιούνται σε γράφους (με τις κλάσεις ως κόμβους και τις συνδέσεις τους ως ακμές). Αφού λοιπόν ολοκληρωθούν οι παραπάνω ενέργειες για την τελική μορφή του εκάστοτε προγράμματος, η ίδια σειρά ενεργειών ακολουθείται και για κάθε στιγμιότυπό του, εξάγοντας τη διαφορά ως προς τις σχέσεις ανάμεσα στην έκδοσή του πριν και μετά από κάθε commit ξεχωριστά. Τέλος, εφαρμόζοντας τον αλγόριθμο gSpan (graph-based Substructure pattern mining), έναν αλγόριθμο αναζήτησης συχνών πογράφων σε ένα σύνολο γράφων, ανιχνεύονται ορισμένα ευρέως χρησιμοποιούμενα από την παγκόσμια προγραμματιστική κοινότητα, μοτίβα σχεδίασης και εξέλιξης λογισμικού.
Applying Data Mining Techniques on Software Repositories to Extract Design an...ISSEL
Close collaboration between software developers is considered essential in order to build innovative software projects. For this reason, there are several online program-hosting platforms, which enable their users to watch each other’s changes, recommendations and comments towards the improvement and evolution of code. These platforms also control different versions of the software code so that the developer can revert to previous ones if desired. All the modifications performed at a given time by a member of the software development team are bundled in a commit, where the main reasons behind them are also recorded. As a consequence, it goes without saying that these series of changes include a lot of useful information about the way a software project evolves. Applying data mining techniques on public software repositories and the data we discussed above could unveil some common bug fixes, systematic edits, frequent types of changes in a project’s architecture and frequently-used design patterns either known or unknown ones. An extensive bibliographic research in this domain reveals that the majority of scientific efforts has focused on bug fixes and systematic edits ignoring some more coarse-grained (high-level) code evolution or design patterns. In this context, this dissertation tries to extract the relationships between the classes of an object-oriented program, while also seeking to monitor the way they evolve over time. To achieve these goals, this diploma thesis adapts a Relationship Extractor tool based on the Abstract Syntax Trees analysis of some of the most popular software projects in Github web platform. After analyzing and processing those syntax trees, useful information is extracted concerning the operation, the abstraction level as well as the inheritance of classes. This information is then modeled as graphs (with classes as nodes and the connections between them as edges). These steps are not only executed for the latest version of a project, but also in each and every commit with a view to extracting the difference in relationships between the versions of a project before and after the specific commit. Finally, gSpan, which is a frequent-subgraph mining algorithm, is applied, in order to detect code design and evolution patterns used by the software community worldwide.
Διδάσκοντας Τμηματικό Προγραμματισμό από την πρώτη μέρα / Teaching modular pr...Periklis Georgiadis
Περιγράφουμε μια ολιστική σπειροειδή προσέγγιση στη διδασκαλία του Τμηματικού Προγραμματισμού, ενσωματώνοντας τον παράλληλα στη διαπραγμάτευση όλων των εννοιών του δομημένου προγραμματισμού, και όχι απομονωμένο ως αυτοτελές αντικείμενο, προς το τέλος της γραμμικής προσέγγισης ενός τέτοιου μαθήματος, με εργαλείο τη ΓΛΩΣΣΑ, σε μαθητές της Γ΄ Λυκείου, πλαίσιο που ωστόσο δεν είναι μονοσήμαντο. Εκκινώντας από τις ενσωματωμένες συναρτήσεις και το μαθηματικό του υπόβαθρο, ο μαθητής εύκολα δημιουργεί τις πρώτες δικές του μαθηματικές συναρτήσεις, εισάγοντας στη συνέχεια επιπλέον τυπικές παραμέτρους, με αφορμή την εγκυρότητα δεδομένων εισάγεται στις διαδικασίες, και, καθώς κατακτά προγραμματιστικές δομές και δομές δεδομένων, εμπλουτίζει τα υποπρογράμματά του για πιο πολύπλοκα προβλήματα, έμπρακτα κατανοεί τα πλεονεκτήματα του Τμηματικού Προγραμματισμού, και σπειροειδώς χτίζει το θεωρητικό υπόβαθρο πίσω από τον τελευταίο.
Abstract
We describe a holistic spiral-learning approach to the teaching of Structural Programming, embedding it in parallel with all other concepts of structured programming, avoiding isolating it as an independent chapter, towards the end of a linear approach in a relevant course. With the built-in functions and their own mathematical backgrounds to build on, students easily create their first mathematical functions and continue with additional formal parameters, then they build processes to implement input validation, gradually enriching their programming skills and knowledge which allows them to create subprograms for even more complex problems, practically realizing the advantages of Modular Programming, and spirally completing the required theoretical background.
Τα ιστολόγια ¨Σσσσσσσστ !!!!!! Ησυχία ................... κοιμάται.¨ και ¨Παζλ Ενημέρωσης¨ σας παρουσιάζουν το δέκατο τρίτο τεύχος με επιλογές αναρτήσεων. Έχουμε ήδη εισέλθει στο 2ο χρόνο αυτής της προσπάθειας. Θα αναρτηθεί στο ¨Παζλ Ενημέρωσης, απ΄όπου θα μπορείτε να το κατεβάσετε στον υπολογιστή σας, για ευκολότερη ανάγνωση. Προτείνουμε ¨ΠΛΗΡΗ ΟΘΟΝΗ¨ για μία σελίδα. Επίσης με κλικ επί ενός θέματος στα περιεχόμενα, μεταβαίνετε στην σελίδα που αντιστοιχεί, η εν λόγω ανάρτηση.
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων σε Αποθήκες Λογισμικού με σκοπό την Εξα...ISSEL
Η στενή συνεργασία μεταξύ των προγραμματιστών για την ανάπτυξη καινοτόμων έργων λογισμικού κρίνεται απαραίτητη. Για αυτόν τον λόγο, υπάρχουν αρκετές διαδικτυακές πλατφόρμες φιλοξενίας προγραμμάτων, οι οποίες δίνουν τη δυνατότητα στους χρήστες τους να παρακολουθεί ο ένας τις αλλαγές, τις προτάσεις και τις παρατηρήσεις του άλλου για την εξέλιξη και τη βελτίωση του κώδικα. Επιπλέον, οι πλατφόρμες αυτές ελέγχουν τις διαφορετικές εκδόσεις του κώδικα ενός έργου, ώστε ο προγραμματιστής να μπορεί να ανατρέξει σε οποιαδήποτε από αυτές, εάν το επιθυμεί. Όλες οι τροποποιήσεις, οι οποίες διενεργούνται από ένα πρόσωπο της ομάδας ανάπτυξης λογισμικού σε μία δεδομένη χρονική στιγμή, συγκεντρώνονται σε ένα commit, όπου καταγράφονται μάλιστα όλοι οι λόγοι πίσω από αυτές. Έτσι, γίνεται κατανοητό ότι τέτοιες συλλογές αλλαγών εμπεριέχουν πολλές χρήσιμες πληροφορίες για τον τρόπο με τον οποίο εξελίσσεται ένα έργο λογισμικού. Η εφαρμογή τεχνικών του κλάδου της εξόρυξης δεδομένων στις δημόσιες αποθήκες λογισμικού και σε όλα τα δεδομένα που αναφέρθηκαν παραπάνω θα μπορούσε να φέρει στο φως ορισμένες συχνές διορθώσεις σφαλμάτων, συστηματικές τροποποιήσεις, επαναλαμβανόμενους τύπους αλλαγών στην αρχιτεκτονική, καθώς και κάποια ευρέως χρησιμοποιούμενα σχεδιαστικά πρότυπα, γνωστά ή μη. Μία εκτενής βιβλιογραφική έρευνα σε αυτόν τον τομέα αποκαλύπτει ότι οι περισσότερες προσπάθειες επιστημόνων έχουν στραφεί στις διορθώσεις σφαλμάτων και στις συστηματικές τροποποιήσεις, με αποτέλεσμα να έχουν αγνοηθεί κάποια λιγότερο λεπτομερή, δηλαδή πιο υψηλού επιπέδου (high level) μοτίβα εξέλιξης ή συγγραφής κώδικα. Στο πλαίσιο αυτό, η παρούσα διπλωματική εργασία προσπαθεί να ανακαλύψει τις σχέσεις ανάμεσα στις διάφορες κλάσεις ενός προγράμματος, αλλά και να παρακολουθήσει τον τρόπο με τον οποίο αυτές αλλάζουν στο πέρασμα του χρόνου. Για να επιτευχθούν οι παραπάνω στόχοι, προσαρμόζεται ένα εργαλείο εξαγωγής σχέσεων (Relationships Extractor), η λειτουργία του οποίου βασίζεται στην ανάλυση των Αφηρημένων Συντακτικών Δέντρων (Abstract Syntax Trees) που αφορούν τους κώδικες μερικών από τα πιο δημοφιλή έργα λογισμικού της διαδικτυακής πλατφόρμας του Github. Αφού αναλυθούν και επεξεργαστούν αυτά τα συντακτικά δέντρα, εξάγονται πληροφορίες για τη λειτουργία των κλάσεων, την αφαιρετικότητά τους και την κληρονομικότητα, οι οποίες στη συνέχεια μοντελοποιούνται σε γράφους (με τις κλάσεις ως κόμβους και τις συνδέσεις τους ως ακμές). Αφού λοιπόν ολοκληρωθούν οι παραπάνω ενέργειες για την τελική μορφή του εκάστοτε προγράμματος, η ίδια σειρά ενεργειών ακολουθείται και για κάθε στιγμιότυπό του, εξάγοντας τη διαφορά ως προς τις σχέσεις ανάμεσα στην έκδοσή του πριν και μετά από κάθε commit ξεχωριστά. Τέλος, εφαρμόζοντας τον αλγόριθμο gSpan (graph-based Substructure pattern mining), έναν αλγόριθμο αναζήτησης συχνών πογράφων σε ένα σύνολο γράφων, ανιχνεύονται ορισμένα ευρέως χρησιμοποιούμενα από την παγκόσμια προγραμματιστική κοινότητα, μοτίβα σχεδίασης και εξέλιξης λογισμικού.
Applying Data Mining Techniques on Software Repositories to Extract Design an...ISSEL
Close collaboration between software developers is considered essential in order to build innovative software projects. For this reason, there are several online program-hosting platforms, which enable their users to watch each other’s changes, recommendations and comments towards the improvement and evolution of code. These platforms also control different versions of the software code so that the developer can revert to previous ones if desired. All the modifications performed at a given time by a member of the software development team are bundled in a commit, where the main reasons behind them are also recorded. As a consequence, it goes without saying that these series of changes include a lot of useful information about the way a software project evolves. Applying data mining techniques on public software repositories and the data we discussed above could unveil some common bug fixes, systematic edits, frequent types of changes in a project’s architecture and frequently-used design patterns either known or unknown ones. An extensive bibliographic research in this domain reveals that the majority of scientific efforts has focused on bug fixes and systematic edits ignoring some more coarse-grained (high-level) code evolution or design patterns. In this context, this dissertation tries to extract the relationships between the classes of an object-oriented program, while also seeking to monitor the way they evolve over time. To achieve these goals, this diploma thesis adapts a Relationship Extractor tool based on the Abstract Syntax Trees analysis of some of the most popular software projects in Github web platform. After analyzing and processing those syntax trees, useful information is extracted concerning the operation, the abstraction level as well as the inheritance of classes. This information is then modeled as graphs (with classes as nodes and the connections between them as edges). These steps are not only executed for the latest version of a project, but also in each and every commit with a view to extracting the difference in relationships between the versions of a project before and after the specific commit. Finally, gSpan, which is a frequent-subgraph mining algorithm, is applied, in order to detect code design and evolution patterns used by the software community worldwide.
Παρουσίαση που χρησιμοποιήθηκε σε Webinar καθηγητών πληροφορικής Σερρών, Κιλκίς και Δήμων Βόλβης - Λαγκαδά, που διδάσκουν το μάθημα "Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ" σε ΓΕΛ ή ΕΠΑΛ.
Τμημηατικός Ιεραρχικός Προγραμματισμός με την EasyLogoFotis Ikonomu
Ένα πλήρες διδακτικό σενάριο για τη διδασκαλία του τμηματικού και ιεραρχικού προγραμματισμού με τη βοήθεια διαδικασιών μέσα από το προγραμματιστικό περιβάλλον της EasyLogo
Δυσκολίες μαθητών Δημοτικού με τη γλώσσα ScratchDimitris Nikolos
Η εργασία αυτή περιγράφει τις δυσκολίες μαθητών της Ε΄ Δημοτικού κατά την εφαρμογή ενός εκπαιδευτικού σεναρίου για την εκμάθηση του προγραμματισμού με τη γλώσσα προγραμματισμού Scratch. Κάποιες από αυτές τις δυσκολίες υπήρχαν και στις παραδοσιακές γλώσσες προγραμματισμού, ενώ άλλες εμφανίζονται στις σύγχρονες γλώσσες με εκπαιδευτικό προσανατολισμό. Οι δυσκολίες που αντιμετώπισαν οι μαθητές κατηγοριοποιήθηκαν σε αρχικές δυσκολίες, δυσκολίες στην βασική δομή «για πάντα εάν» και δυσκολίες στις νέες δυνατότητες της γλώσσας Scratch 2.0. Τέλος, προτείνονται κάποιες λύσεις για την διαχείριση αυτών των δυσκολιών στο πλαίσιο του εκπαιδευτικού σεναρίου.
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...ISSEL
Το διευρυµένο τοπίο του λογισµικού ανοιχτού κώδικα OSS αποδεικνύει την αυξανόµενη παραγωγική δραστηριότητα των µηχανικών λογισµικού που συνεισφέρουν σε πολλαπλές πλατφόρµες και διάφορα έργα λογισµικού. Η συµµετοχή τους σε αυτά τα έργα αναδεικνύει το ευρύ ϕάσµα των δεξιοτήτων τους, από τη συγγραφή κώδικα έως τη συνεργασία τους µε άλλους µηχανικούς λογισµικού. Καθώς στο οικοσύστηµα του λογισµικού ανοιχτού κώδικα υπάρχει µια διαρκής και συνεχώς αυξανόµενη δραστηριότητα, είναι πολύ σηµαντική µια πιο ολοκληρωµένη κατανόηση των συνεισφορών και των δεξιοτήτων των µηχανικών λογισµικού. Σκοπός της παρούσας διπλωµατικής είναι να αξιοποιήσει δεδοµένα από την υποδοµή World of Code (WoC) που περιέχει συγκεντρωµένα δεδοµένα από τα περισσότερα δη µόσια συστήµατα ελέγχου εκδόσεων για να παρέχει µια πιο ολοκληρωµένη εικόνα του προφίλ ενός µηχανικού λογισµικού. Εξάγοντας, αναλύοντας και οπτικοποιώντας αυτά τα δεδοµένα, αναπτύχθηκε µια εφαρµογή που παρουσιάζει µια περιεκτική επισκόπηση των δραστηριοτήτων ενός µηχανικού στα έργα λογισµικού ανοικτού κώδικα. Η οπτική αναπαράσταση των δεδοµένων, µετατρέπει πολύπλοκα σύνολα δεδοµένων σε εύκολα κατανοητές γραφικές µορφές. Η αξιολόγηση της εφαρµογής σε ένα σύνολο µηχανικών λογισµικού δείχνει ότι πετυχαίνει τους στόχους της. Προσφέρει µια εικόνα της δραστηριότητας, του ϱόλου και των τεχνικών δεξιοτήτων ενός µηχανικού, ενισχύοντας τη διαφάνεια και την κατανόηση της συνεισφοράς του στο οικοσύστηµα του OSS.
Παρουσίαση της Διπλωματικής Εργασίας με τίτλο "ΜΕΛΕΤΗ ΑΞΙΟΠΟΙΗΣΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ SCRATCH ΓΙΑ ΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΕ ΜΑΘΗΤΕΣ ΤΗΣ ΣΤ΄ ΔΗΜΟΤΙΚΟΥ"
Παρουσίαση που χρησιμοποιήθηκε σε Webinar καθηγητών πληροφορικής Σερρών, Κιλκίς και Δήμων Βόλβης - Λαγκαδά, που διδάσκουν το μάθημα "Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ" σε ΓΕΛ ή ΕΠΑΛ.
Τμημηατικός Ιεραρχικός Προγραμματισμός με την EasyLogoFotis Ikonomu
Ένα πλήρες διδακτικό σενάριο για τη διδασκαλία του τμηματικού και ιεραρχικού προγραμματισμού με τη βοήθεια διαδικασιών μέσα από το προγραμματιστικό περιβάλλον της EasyLogo
Δυσκολίες μαθητών Δημοτικού με τη γλώσσα ScratchDimitris Nikolos
Η εργασία αυτή περιγράφει τις δυσκολίες μαθητών της Ε΄ Δημοτικού κατά την εφαρμογή ενός εκπαιδευτικού σεναρίου για την εκμάθηση του προγραμματισμού με τη γλώσσα προγραμματισμού Scratch. Κάποιες από αυτές τις δυσκολίες υπήρχαν και στις παραδοσιακές γλώσσες προγραμματισμού, ενώ άλλες εμφανίζονται στις σύγχρονες γλώσσες με εκπαιδευτικό προσανατολισμό. Οι δυσκολίες που αντιμετώπισαν οι μαθητές κατηγοριοποιήθηκαν σε αρχικές δυσκολίες, δυσκολίες στην βασική δομή «για πάντα εάν» και δυσκολίες στις νέες δυνατότητες της γλώσσας Scratch 2.0. Τέλος, προτείνονται κάποιες λύσεις για την διαχείριση αυτών των δυσκολιών στο πλαίσιο του εκπαιδευτικού σεναρίου.
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...ISSEL
Το διευρυµένο τοπίο του λογισµικού ανοιχτού κώδικα OSS αποδεικνύει την αυξανόµενη παραγωγική δραστηριότητα των µηχανικών λογισµικού που συνεισφέρουν σε πολλαπλές πλατφόρµες και διάφορα έργα λογισµικού. Η συµµετοχή τους σε αυτά τα έργα αναδεικνύει το ευρύ ϕάσµα των δεξιοτήτων τους, από τη συγγραφή κώδικα έως τη συνεργασία τους µε άλλους µηχανικούς λογισµικού. Καθώς στο οικοσύστηµα του λογισµικού ανοιχτού κώδικα υπάρχει µια διαρκής και συνεχώς αυξανόµενη δραστηριότητα, είναι πολύ σηµαντική µια πιο ολοκληρωµένη κατανόηση των συνεισφορών και των δεξιοτήτων των µηχανικών λογισµικού. Σκοπός της παρούσας διπλωµατικής είναι να αξιοποιήσει δεδοµένα από την υποδοµή World of Code (WoC) που περιέχει συγκεντρωµένα δεδοµένα από τα περισσότερα δη µόσια συστήµατα ελέγχου εκδόσεων για να παρέχει µια πιο ολοκληρωµένη εικόνα του προφίλ ενός µηχανικού λογισµικού. Εξάγοντας, αναλύοντας και οπτικοποιώντας αυτά τα δεδοµένα, αναπτύχθηκε µια εφαρµογή που παρουσιάζει µια περιεκτική επισκόπηση των δραστηριοτήτων ενός µηχανικού στα έργα λογισµικού ανοικτού κώδικα. Η οπτική αναπαράσταση των δεδοµένων, µετατρέπει πολύπλοκα σύνολα δεδοµένων σε εύκολα κατανοητές γραφικές µορφές. Η αξιολόγηση της εφαρµογής σε ένα σύνολο µηχανικών λογισµικού δείχνει ότι πετυχαίνει τους στόχους της. Προσφέρει µια εικόνα της δραστηριότητας, του ϱόλου και των τεχνικών δεξιοτήτων ενός µηχανικού, ενισχύοντας τη διαφάνεια και την κατανόηση της συνεισφοράς του στο οικοσύστηµα του OSS.
Παρουσίαση της Διπλωματικής Εργασίας με τίτλο "ΜΕΛΕΤΗ ΑΞΙΟΠΟΙΗΣΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ SCRATCH ΓΙΑ ΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΕ ΜΑΘΗΤΕΣ ΤΗΣ ΣΤ΄ ΔΗΜΟΤΙΚΟΥ"
Similar to Λογισμικά γενικής χρήσης: Διδακτικές Προσεγγίσεις (20)
2. General Purpose Software
•Word, Excel, Access κ.α.
•και τα αντίστοιχα Write, Calc, Base (OpenOffice /
LibreOffice)
Άλλα παραδείγματα;
Είναι τα προγράμματα αυτά εκπαιδευτικά λογισμικά;
2
3. • Παραδοσιακή προσέγγιση της γραφής:
• Επέκταση της μνήμης
• Επικοινωνία
• Επεξεργασία
Η ηλεκτρονική έκφανση της γραφής εστιάζει στην
επεξεργασία
3
5. % Example LaTeX document for GP111 - note % sign indicates a
comment
documentstyle[11pt]{article}
% Default margins are too wide all the way around. I reset
them here
setlength{topmargin}{-.5in}
setlength{textheight}{9in}
setlength{oddsidemargin}{.125in}
setlength{textwidth}{6.25in}
begin{document}
title{LaTeX Typesetting By Example}
author{Phil Farrell
Stanford University School of Earth Sciences}
renewcommand{today}{November 2, 1994}
maketitle
Text
5
15. • Ένα σενάριο που εστιάζει στην επεξεργασία μέσα σε πλαίσια
που έχουν νόημα για τους μαθητές:
http://www.pi-schools.gr/programs/seppe/ppe/Pliroforiki/dhm-papei/data/st-b-1(03).pdf
Πανεπιστήμιο Πειραιά
Πρόγραμμα πειραματικής
διδασκαλίας του μαθήματος
των Υπολογιστών στην
Α/βάθμια Εκπαίδευση
1998-1999, 1999-2000
15
16. • Πότε να γίνει η εισαγωγή στην επεξεργασία κειμένου;
• Η αναγκαιότητα για δεξιότητες πληκτρολόγησης.
• Συνέπειες στη γραφή με το χέρι.
• Επίδραση στην αξιολόγηση.
Roblyer, 2006 (στα ελληνικά 2008, επιμ. Μ. Μουντρίδου)
16
23. • Αξιοποίηση του λογιστικού φύλλου ως γνωστικού εργαλείου
δυναμικής μοντελοποίησης:
• Κατάλληλη κατηγοριοποίηση και οργάνωση δεδομένων
• Αναγνώριση όλων των σημαντικών μεταβλητών
• Καθορισμός του εύρους τιμών των μεταβλητών
• Δημιουργία σχέσεων μεταξύ των μεταβλητών
• Χρήση κατάλληλων συναρτήσεων και μαθηματικών εκφράσεων
• Επιλογή κατάλληλων τύπων γραφημάτων για την ακριβή
αναπαράσταση των σχέσεων μεταξύ των παραμέτρων και την ανάδειξη
νέας πληροφορίας
23
26. • Η δημιουργία μιας βάσης δεδομένων είναι μια αναλυτική
διαδικασία που απαιτεί και αναπτύσσει δημιουργική και
κριτική σκέψη.
(Μικρόπουλος, 2006)
26
27. • Στόχοι του μαθήματος
• Χαρακτηριστικά και βασικές λειτουργίες των εφαρμογών διαχείρισης
βάσεων δεδομένων
• Σκοπός των ΣΔΒΔ
• Ανεξαρτησία Δεδομένων
• Επίπεδα Χρηστών
• Μοντέλα ΒΔ (Σχεδιακό, Σχήμα – Στιγμιότυπο)
• Μοντέλο ΟΣ
• Περιορισμοί απεικονίσεων
• Βασικές πράξεις σχεσιακής άλγεβρας
• Λειτουργικές εξερτήσεις πεδίων
• Κανονικοποίηση
27
29. • Στόχοι
• Περιγράφουν τα βασικά στοιχεία της μοντελοποίησης δεδομένων
βάσει του μοντέλου οντοτήτων-συσχετίσεων (E-R modelling),
• Εξηγούν τη σημασία του εννοιολογικού μοντέλου,
• Μετατρέπουν το εννοιολογικού μοντέλο σε λογικό (αλγοριθμικά με
τρόπο χειροκίνητο ή με χρήση λογισμικού).
• 6 ώρες
29
30. • Συνεπώς η μοντελοποίηση των δεδομένων είναι απαραίτητη
κατά τη δημιουργία πληροφοριακών συστημάτων. Η
μοντελοποίηση πρέπει να επιτρέπει την περιγραφή των
δεδομένων οποιασδήποτε πραγματικής επιχείρησης.
• Το μοντέλο Οντοτήτων-Συσχετίσεων (ΟΣ)
30
31. • O λαθεμένος τρόπος εισαγωγής: η απευθείας μετάβαση στο
σχεδιασμό του λογικού μοντέλου
• Eίναι απαραίτητο το στάδιο του ιδεατού σχεδιασμού για την
κατανόηση του προβλήματος και την κατασκευή ορθών
λογικών σχημάτων (Φεσάκης, 2003, Ενότητα ΙΙΙ.1.5) και
μάλιστα πρέπει να προηγείται χρονικά της εξοικείωσης με το
σχεσιακό σχήμα.
• Συνεπώς η συνηθισμένη πρακτική της άμεσης χρήσης ενός
λογισμικού όπως η Microsoft Access κατά τη γνώμη μας δεν
ενδείκνυται.
31
32. • Σε σχετικές έρευνες (Φεσάκης, 2003):
• δυσκολία κατανόησης των δεδομένων και των συσχετίσεων τους (με
άλλα λόγια στην κατασκευή του ιδεατού μοντέλου)
• προβλήματα που εμπλέκουν μεγάλο αριθμό συσχετίσεων (δυαδικών ή
τριαδικών)
• Δυσκολεύονται να κατανοήσουν πότε κάτι πρέπει να μοντελοποιηθεί
ως γνώρισμα ή ως οντότητα, πότε ως οντότητα ή ως συσχέτιση και πότε
ως τριαδική ή σύνολο δυαδικών συσχετίσεων.
http://blo.gr/7af
32
33. • Πραγματοποίηση τριών ωριαίων εργαστηριακών tutorial με τα εξής
θέματα:
• (α) Ένα απλό πρόβλημα με εύκολο εννοιολογικό μοντέλο.
Γνωρίσματα, κλειδιά, σύνολα οντοτήτων, σύνολα συσχετίσεων,
περιορισμοί κλειδιού, περιορισμοί συμμετοχής, αδύναμες
οντότητες, συνυπολογισμός.
• (β) Κατανόηση σχεδιαστικών διλημμάτων. Πότε κάτι πρέπει να
μοντελοποιηθεί ως γνώρισμα ή ως οντότητα, πότε ως οντότητα ή
ως συσχέτιση και πότε ως τριαδική ή σύνολο δυαδικών
συσχετίσεων.
• (γ) Μετατροπή εννοιολογικού μοντέλου σε λογικό μοντέλο. Χρήση
CASE εργαλείων – το πρόβλημα με τα εργαλεία αυτά.
33
34. • Συζήτηση των ως άνω θεμάτων με επίκεντρο την διδασκαλία
και την μάθηση στο σχολείο και τις προεκτάσεις στην χρήση
των ΤΠΕ στο σχολείο.
34
36. • Επιπλέον δυνατότητες από τον επεξεργαστή κειμένου
• Μπορεί να υποστηρίξει παιδαγωγικές χρήσεις στις συνθετικές
εργασίες (projects)
Κόμης, 2004
36