Search this site
Embedded Files
Object Technology Course
  • Home
  • Course Description
  • Exercises
    • Library-An OT case stsudy
  • Course's Activities
    • Activity No 0
    • Activity No 1
    • Activity No 2
    • Activity No 3
      • Δράση. Integrate existing components
      • Η Άσκηση
      • Using Jar files
    • Activity No 4
    • Activity No 5
    • Activity No 6
    • Activity No 7
Object Technology Course

Course Description

Αντικειμενοστρεφής Τεχνολογία

Περιγραφή Μαθήματος

Το μάθημα αναφέρεται στους μηχανισμούς χειρισμού πολυπλοκότητας στην ανάπτυξη εφαρμογών και εστιάζει στο Αντικειμενοστρεφές παράδειγμα προγραμματισμού και στην αξιοποίηση του για ανάπτυξη εφαρμογών. Εισάγει βασικές έννοιες για αφαιρετική περιγραφή του συστήματος (Unified Modeling Language – UML)


Εστιάζει στην κατανόηση του νοητικού μοντέλου (conceptual model) του αντικειμενοστρεφούς προγραμματισμού και στους μηχανισμούς της γλώσσας προγραμματισμού που υλοποιούν τις βασικές αυτές έννοιες. Χρησιμοποιεί ως γλώσσα προγραμματισμού την Java. Προϋποθέτει γνώση του διαδικαστικού προγραμματισμού και της Γλώσσας προγραμματισμού C.


Οργανώθηκε ως μάθημα επιλογής 7ου εξαμήνου στο Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών (Electrical & Computer Engineering) του Πανεπιστημίου Πατρών. Πρόσφατα μεταφέρθηκε στο 2ο έτος ως μάθημα κορμού.


Το μάθημα έχει ως βάση το Teaching Object-Oriented Programming - A Constructivism-Based Approach

Στόχοι

Το μάθημα έχει στόχο την:

  1. Εξοικείωση με τους μηχανισμούς χειρισμού πολυπλοκότητας. Κατανόηση του βασικού νοητικού μοντέλου του αντικειμενοστρεφούς Προγραμματισμού (Object Oriented programming paradigm).

  2. Εμπέδωση των βασικών διαφορών μεταξύ αντικειμενοστρεφούς και διαδικαστικού προγραμματισμού.

  3. Κατανόηση των βασικών μηχανισμών υλοποίησης του αντικειμενοστρεφούς παραδείγματος χρησιμοποιώντας ως γλώσσα προγραμματισμού την Java.

  4. Εξοικείωση με τις βασικές αρχές της τέχνης του προγραμματισμού (art of programming).

Περιεχόμενο Μαθήματος

  1. Εισαγωγή στο μάθημα. Η σημασία του Λογισμικού για τον Ηλεκτρολόγο Μηχανικό. Ενσωματωμένα συστήματα. Συστήματα Μηχανοτρονικής. Cyber-Physical systems. Διαδίκτυο Αντικειμένων. Σύγχρονες τάσεις.

  2. Βασικοί μηχανισμοί για αντιμετώπιση της πολυπλοκότητας. Αφαιρετικότητα στις διεργασίες, αφαιρετικότητα στα δεδομένα. Επίπεδο αφαιρετικότητας υλικού-HAL.

  3. Περιορισμοί του διαδικαστικού προγραμματισμού. Η μετάβαση από τον Διαδικαστικό στον Αντικειμενοστρεφή Προγραμματισμό. H αλλαγή παραδείγματος προγραμματισμού (paradigm shift).

  4. Εισαγωγή στην Τεχνολογία αντικειμένων. Αντικείμενο, Κλάση, Στιγμιότυπο. Το πρόγραμμα ως συνάθροιση αντικειμένων. Βασικά διαγράμματα της UML. Διάγραμμα κλάσεων. Διάγραμμα αλληλεπίδρασης αντικειμένων.

  5. Το νοητικό μοντέλο του Αντικειμενοστρεφούς Προγραμματισμού. Εισαγωγή στη γλώσσα προγραμματισμού Java. Η Java ως επέκταση της C. Η βασική βιβλιοθήκη της Java. Περιβάλλοντα ανάπτυξης εφαρμογών.

  6. Κληρονομικότητα, απλή και πολλαπλή. Η κατασκευή του interface.

  7. Πολυμορφισμός, early vs. late binding.

  8. Αφαιρετικότητα στην επικοινωνία με τον χρήστη. Γραφικές διεπαφές. Το Abstract Window Toolkit (awt).

  9. Μηχανισμός διαχείρισης συμβάντων (Event Handling).

  10. Διαχείριση εξαιρέσεων (exception handling). Συλλογή απορριμμάτων (Garbage collection).

  11. Πολυ-νηματική επεξεργασία (Multithreding).

  12. Εισαγωγή στην ανάπτυξη κατανεμημένων διαδικτυακών εφαρμογών (network programming). Ανάπτυξη πελάτη – εξυπηρετητή. Servlets. Socket programming. Αυξάνοντας την αφαιρετικότητα στο προγραμματισμού πάνω από το διαδίκτυο. Το παράδειγμα της Java. Το Διαδίκτυο των Αντικειμένων (ΙοΤ). Υποστήριξη στην Υπηρεσιοστρεφή αρχιτεκτονική (Service Oriented Architecture).

  13. Το αντικειμενοστρeφές παράδειγμα σε άλλες γλώσσες, C++, C#, Python.

Εκπαιδευτικές Δραστηριότητες

Διάλεξη - Φροντιστήριο

Εργαστήριο

Εργασίες

Τρόποι αξιολόγησης / εξέτασης

Παράδοση εργαστηριακών ασκήσεων

Παράδοση εργασίας

Παρουσίαση - Εξέταση εργασίας

Τελική γραπτή εξέταση

Συγγράμματα

Βασικά Συγγράμματα (Εύδοξος)


ΑΝΑΠΤΥΞΗ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΕ JAVA

Κωδικός Βιβλίου στον Εύδοξο: 13596

Έκδοση: 1η/2007

Συγγραφείς: BARBARA LISKOV, JOHN GUTTAG

ISBN: 978-960-461-063-1

Διαθέτης (Εκδότης): ΕΚΔΟΣΕΙΣ ΚΛΕΙΔΑΡΙΘΜΟΣ ΕΠΕ


Αντικειμενοστρεφής προγραμματισμός - JAVA

Κωδικός Βιβλίου στον Εύδοξο: 9298

Έκδοση: 3η έκδ./2005

Συγγραφείς: Θραμπουλίδης Κλεάνθης

ISBN: 960-418-033-9

Διαθέτης (Εκδότης): ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Ο.Ε.

Java Προγραμματισμός (Κωδικός Βιβλίου στον Εύδοξο: 50659320)

Η ΤΕΧΝΗ ΚΑΙ ΕΠΙΣΤΗΜΗ ΤΗΣ JAVA: ΜΙΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Κωδικός Βιβλίου στον Εύδοξο: 13958)

Πρόσθετη Βιβλιογραφία

Introduction to Programming Using Java

Sixth Edition, Version 6.0, June 2011 link

Free, on-line textbook on introductory programming, which uses Java as the language of instruction.

Thinking in Java

3rd Edition link

Free Electronic Book

Άλλες πηγές

Java Basics

Java Notes

Java programming notes written to fill in missing or weak topics in textbooks

Στην κεντρική Βιβλιοθήκη μπορείτε να βρείτε αρκετά εκπαιδευτικά βοηθήματα για το μάθημα.

Σύνδεσμοι

Γενικοί

GCC home page

The GNU Compiler Collection

Cygwin Home Page

A Linux-like environment for Windows

Teaching Object-Oriented Programming

Teaching Object-Oriented Programming: A Constructivism-Based Approach

Δικτυακός τόπος βιβλίου "Διαδικαστικός Προγραμματισμός C"

Δικτυακός τόπος βιβλίου "Αντικειμενοστρεφής προγραμματισμός - Java"

On programming Languages

The Language List

Programming by Example Home Page

Resource on Computer Languages

Programming Language Comparison

Java programming Language

Java API Specification

Τεκμηρίωση της Βασικής Βιβλιοθήκης της Java

Java 2 Platform, Standard Edition

A complete environment for applications development with Java

The Java Language Specification

Written by the inventors of the technology, The Java Language Specification, Third Edition is the definitive technical reference for the Java programming language. If you want to know the precise meaning of the language's constructs, this is the source for you.

The book provides complete, accurate, and detailed coverage of the Java programming language.

JDK Java Development Kit (JDK)

BlueJ The interactive Java environment.

The Java™ Tutorials

OpenJDK

Java SE Downloads

Eclipse

Eclipse and Java for Total Beginners Free Video Tutorials

C programming Language

Περιβάλλοντα Ανάπτυξης Περιβάλλοντα εξάσκησης με τον Διαδικαστικό προγραμματισμό και την C

The C Library Reference Guide

C Standard Library Περιλιπτική αναφορά στη Βασική βιβλιοθήκη της C

The GNU C Library

“The GNU C library, described in this document, defines all of the library functions that are specified by the ANSI C standard,…”.

Programming in C: A Tutorial by Brian W. Kernighan

This ``tutorial'' is presented as a historical document, not as a tutorial.(δες διτυακό τόπο)

Crimson Editor A professional source editor for Windows Δοκιμάστε τη χρήση του στα πλαίσια του εργαστηρίου.

GCC, the GNU Compiler Collection

Brian W. Kernighan: Programming in C: A Tutorial

ISO/IEC JTC1/SC22/WG14 - C

The C Library Reference Guide

The C Library Reference Guide

ANSI C

A TUTORIAL ON POINTERS AND ARRAYS IN C

C Tutorials

Various tutorials

Γενικές Πληροφορίες για το μάθημα (Επιδιωκόμενα μαθησιακά αποτελέσματα, Δεξιότητες, Προαπαιτήσεις, Πιστωτικές μονάδες ECTS, κλπ) εδώ

Παλιά Ιστοσελίδα Μαθήματος http://seg.ece.upatras.gr/Courses/OT/index.htm

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse