Πληροφορική Ι (MATH361)

Μιχάλης Δρακόπουλος

Περιγραφή

 

Εισαγωγή στον προγραμματισμό και στην αλγοριθμική επίλυση προβλημάτων με το MATLAB.

Introduction to programming and algorithmic problem solving with MATLAB.

CC - Αναφορά - Μη Εμπορική Χρήση - Παρόμοια Διανομή
Περιεχόμενο μαθήματος

Αλγοριθμική επίλυση προβλημάτων και προγραμματισμός με MATLAB.

Μερικά από τα θέματα που θα καλυφθούν περιλαμβάνουν:

  • Βασικές έννοιες υπολογιστών και αλγορίθμων.
  • Μεταβλητές, τελεστές/εκφράσεις, αναθέσεις, είσοδος/έξοδος.
  • Εντολές ελέγχου και επανάληψης.
  • Συναρτήσεις, αναδρομή.
  • Πίνακες/διανύσματα και βασικές δομές δεδομένων.
  • Αναζήτηση/ταξινόμηση, αποτελεσματικότητα αλγορίθμων.
  • Υπολογιστική αναπαράσταση αριθμών.
  • Μαθηματικές εφαρμογές, προσομοίωση/μοντελοποίηση, γραφικά.

 ----------------------------------------------------------------------------------------------------------------------------------------------------------

Some of the topics to be covered include:

  • Basic computer concepts and algorithms.
  • Variables, operators / expressions, assignments, input / output.
  • Commands control and recurrence.
  • Functions, recursion.
  • Tables / vectors and basic data structures.
  • Search / classification algorithms efficiency.
  • Computational representation of numbers.
  • Mathematical applications, simulation / modeling, graphics.
  • Algorithmic problem solving and programming in MATLAB.
Μαθησιακοί στόχοι

Η διδασκαλία περιλαμβάνει 4 ώρες θεωρίας την εβδομάδα και 2 ώρες εργαστηρίου.Τα εργαστήρια είναι προαιρετικά, δεν βαθμολογούνται και απευθύνονται στους φοιτητές (όλων των ετών) που επιθυμούν να κάνουν πρακτική εξάσκηση σε μέρος της ύλης που διδάσκονται στη θεωρία (δείτε τον τρόπο επιλογής εργαστηρίου παρακάτω). 


Τρόπος επιλογής εργαστηρίου
 

Τα εργαστήρια του μαθήματος είναι προαιρετικά και ΔΕΝ βαθμολογούνται. Απευθύνονται σε όλους τους φοιτητές του μαθήματος, ανεξαρτήτως έτους.

Πριν από την έναρξη της κάθε εργαστηριακής εβδομάδας ανακοινώνεται το περιεχόμενο του επικείμενου εργαστηριακού μαθήματος στην eclass.

Τα εργαστήρια λειτουργούν συμπληρωματικά της θεωρίας και έχουν ως βασικό στόχο την εξάσκηση των φοιτητών στον προγραμματισμό ώστε να κατανοηθούν καλύτερα κάποιες από τις έννοιες του θεωρητικού μέρους του μαθήματος. Σκοπός είναι να παρακολουθούν τα εργαστήρια οι φοιτητές που πραγματικά πιστεύουν ότι έχουν την ανάγκη πρακτικής εξάσκησης και επιπλέον βοήθειας από τους βοηθούς των εργαστηρίων. Δεν υπάρχει κάποια βαθμολογική ενίσχυση για όσους παρακολουθήσουν τα εργαστήρια. Ο στόχος τους είναι καθαρά βοηθητικός ως προς την εξάσκηση στον προγραμματισμό.


Ύλη των εργαστηριακών μαθημάτων (ενδέχεται να τροποποιηθεί):

Εργαστήριο 1: Εισαγωγή στη χρήση του MATLAB/Octave

Εργαστήριο 2: Λογικές πράξεις / Έλεγχος συνθηκών

Εργαστήριο 3: Επαναληπτικές διαδικασίες

Εργαστήριο 4: Συναρτήσεις

Εργαστήριο 5: Διανύσματα

Εργαστήριο 6: Πίνακες

Εργαστήριο 7: Αλγόριθμοι, αναδρομή

Εργαστήριο 8: Μαθηματικές εφαρμογές

Επιπλέον συνιστώμενη βιβλιογραφία

MATLAB και συμβατά προγράμματα:

  • The Mathworks:

Η επίσημη ιστοσελίδα του MATLAB

http://www.mathworks.com/

  • MATLAB (Wikipedia):

Άρθρο στη Wikipedia για το MATLAB, με πολλούς συνδέσμους σε εισαγωγικές και προχωρημένες σημειώσεις, και άλλες πληροφορίες.

http://en.wikipedia.org/wiki/MATLAB

  • GNU Octave:

Κλώνος του MATLAB (ανοιχτό λογισμικό)

http://www.gnu.org/software/octave/

  • GNU Octave (Wikipedia):

Άρθρο στη Wikipedia για το Octave και συμβατότητά του με το MATLAB

http://en.wikipedia.org/wiki/GNU_Octave

  • Octave wiki:

http://wiki.octave.org/Main_Page

  • Σημειώσεις MATLAB στο web

ΠΡΟΣΟΧΗ: Οι σημειώσεις αυτές είναι για προχωρημένους και θα είναι χρήσιμες όταν καλυφθεί η βασική ύλη στο μάθημα.

  • A practical introduction to MATLAB (M. S. Gockenbach)
  • An introduction to MATLAB (D. F. Griffiths)

Youtube videos

  1. Gates, M. Zuckerberg, C. Bosh campaign for more programmers

https://www.youtube.com/watch?v=nKIu9yen5nc#t=18

 Ομιλία Steve Jobs στο Stanford

https://www.youtube.com/watch?v=D1R-jKKp3NA

Μέθοδοι διδασκαλίας

  • Διδασκαλία καθ΄ έδρας και συμπληρωματική-ενισχυτική εκπαίδευση μέσω ασύγχρονης πλατφόρμας.
  • Εργαστήριο.

  ----------------------------------------------------------------------------------------------------------------------------------------------------------

  • Teaching from the chair and complementary-support training via asynchronous platform.
  • Laboratory
Μέθοδοι αξιολόγησης

Εξετάσεις

  -----------------------------------------------------------------------------------------

Examinations

Προαπαιτούμενα

Το μάθημα είναι πρώτου  εξαμήνου και δεν έχει προαπαιτούμενα

 ---------------------------------------------------------------------------------------

This course is the first semester and has no prerequisites

Διδάσκοντες

Δρακόπουλος Μιχάλης

Επίκουρος Καθηγητής

Ερευνητικά Ενδιαφέροντα : Υπολογιστική Επιστήμη, Παράλληλη Επεξεργασία, Πεπερασμένα Στοιχεία, Αριθμητική Βελτιστοποίηση.

e-mail : mdraco@math.uoa.gr

  

Προσωπική Ιστοσελίδα:

http://users.uoa.gr/~mdraco/

 ----------------------------------------------------------------------------------------------------------------------------------------------------------

 

Michael C. Dracopoulos

Dept. of Mathematics, University of Athens

Panepistimioupolis, 157 84 Athens, Greece

e-mail : mdraco@math.uoa.gr

Background

  • Diploma in Civil Engineering, National Technical University of Athens, 1989.
  • PhD (Computational Mathematics/Mechanics), Imperial College, London, 1993.
  • ERCIM Fellow at RAL, Oxon and CWI, Amsterdam, 1993--1994.
  • Research Officer, Oxford University Computing Laboratory, 1994--1997.
  • Lecturer, Dept. of Mathematics, University of Athens, 1999--2003.
  • Assistant Professor, Dept. of Mathematics, University of Athens, 2003--present.

Research

Scientific and parallel computing, numerical analysis, finite elements, numerical optimization, simulation and modelling.

Publications

Teaching

  • Computer Science I (UG, Fall Term)
  • Computational Mathematics I (PG, Fall Term)
  • Computer Science II (UG, Spring Term)
  • Computational Science and Technology (PG, Spring Term)

Publications

http://users.uoa.gr/~mdraco/publications.html

Ομάδα στόχος

Προπτυχιακοί φοιτητές του τμήματος Μαθηματικών.

 ----------------------------------------------------------------------------------------------

Undergraduate students of University of Athens Department of Mathematics

Προτεινόμενα συγγράμματα

Βοηθήματα:

  1. C.F. van Loan & K.-Y.D. Fan. Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία - Μια Εισαγωγή. Εκδόσεις DaVinci, 2012.
  2. Γ. Γραββάνης & Κ. Γιαννουτάκης. Προγραμματισμός με τη χρήση MATLAB. Εκδόσεις Παπασωτηρίου, 2012.
Περισσότερα

  • Ώρες γραφείου: Μετά από συνεννόηση (email)
  • Διαλέξεις: 2 φορές την εβδομάδα, από 2 ώρες
  • Εργαστήρια: 2 ώρες την εβδομάδα

 ----------------------------------------------------------------------------------------------------------------------------------------------------------

  • Office hours: After agreement (email)
  • Lectures: 2 times a week, 2 hours
  • Laboratory: 2 hours per week

Ενότητες


Περιεχόμενο μαθήματος. Τι είναι Matlab. Ο ρόλος των υπολογιστών. Αλγόριθμος. Βήματα στην  υπολογιστική επίλυση προβλήματος. Βασικές αλγοριθμικές ενέργειες. Αλγόριθμοι και Matlab. Βασικές προγραμματιστικές έννοιες. Περιβάλλον προγραμματισμού (Qtoctave). Αριθμητικές σταθερές. Μεταβλητές. Εκφράσεις. Υπολογισμός εκφράσεων. Εντολές ανάθεσης. Η εικόνα της μνήμης. Έξοδος. Ερωτηματικό, κόμμα, τρεις τελείες. Μορφοποίηση εξόδου. Μετατροπή βαθμών Fahrenheit σε βαθμούς Celsius. m-αρχεία scripts. Ο editor του Qtoctave. Η εντολή input. Έξοδος με fprintf. Παραδείγματα fprintf.

Λέξεις – κλειδιά: Αλγόριθμος, Αριθμητικές σταθερές. Μεταβλητές, Εκφράσεις, Εντολές ανάθεσης, Έξοδος, εντολή input, Έξοδος με fprintf


Μερικά χρήσιμα εργαλεία. Ακέραια διαίρεση και υπόλοιπα. Λογικά (boolean) δεδομένα. Λογικές (boolean) εκφράσεις. Λογικές (boolean) εκφράσεις και τελεστές. Σύνθετες λογικές εκφράσεις. Λανθασμένη χρήση των λογικών τελεστών. Κανόνας υπολογισμού λογικών εκφράσεων. Παράδειγμα: εύρεση δίσεκτων ετών. Εντολές ελέγχου και επανάληψης. Εκτέλεση υπό συνθήκη: η εντολή if-else. Εκτέλεση υπό συνθήκη: η εντολή if. Παραδείγματα. Διάταξη 3 αριθμών. Προγραμματιστικά ιδιώματα με λογικές εκφράσεις. Σύνθετα if. Η εντολή While. Δυνάμεις του 2. Άθροισμα ψηφίων ακεραίου. Ατέρμονες επαναλήψεις. Αντιστροφή ψηφίων ακεραίου. Μία άλλη εντολή επανάληψης. Η εντολή for. Παραδείγματα for. Αρμονικοί αριθμοί. Σχέση for και while. While αντί for. Επεξεργασία αγνώστου πλήθους δεδομένων. Άθροισμα θετικών όρων λίστας. For μέσα σε for. Circle.m. Triangle.m. Αριθμοί Fibonacci. Πρώτοι αριθμοί. Αλγόριθμος Π1: Έλεγχος πρώτων αριθμών. Πρόγραμμα για τον αλγόριθμο Π1. Βελτίωση της αποτελεσματικότητας του Π1: Αλγόριθμος Π2. Πρόγραμμα για τον αλγόριθμο Π2. Η εντολή return. Προβλήματα με τον αλγόριθμο Π2. Μέθοδος για τον αλγόριθμο Π3.

Λέξεις – κλειδιά: Else if, if , while

Ροή ελέγχου. Μια άλλη μορφή ροής ελέγχου: Συναρτήσεις. Η μέθοδος Newton για τετραγωνική ρίζα. Τετραγωνική ρίζα με αλγόριθμο Newton. Μια γεωμετρική προσέγγιση. Η μεγάλη ιδέα πίσω από τις συναρτήσεις. Συναρτήσεις. Σχεδιασμός συναρτήσεων, απόκρυψη υλοποίησης. Προγραμματισμός συναρτήσεων. Τοπικές μεταβλητές. Δομή προγραμμάτων: ιεραρχία συναρτήσεων. Ροή ελέγχου συνάρτησης. Συνάρτηση για έλεγχο πρώτων αριθμών Ι. Η εντολή return. Συνάρτηση για έλεγχο πρώτων αριθμών ΙΙ. Ζεύγη πρώτων αριθμών. Υπενθύμιση: διάταξη πρώτων αριθμών. Διάταξη πρώτων αριθμών.

Λέξεις – κλειδιά: Συναρτήσεις, Ροή ελέγχου συνάρτησης, εντολή return

Δομές δεδομένων. Μονοδιάστατοι πίνακες (array). Arrays στο Matlab. Ο τελεστής : Άνω κάτω τελεία. Ο μηχανισμός της εντολής for. Είσοδος/έξοδος μονοδιάστατων πινάκων. Sprintf. Επεξεργασία με μονοδιάστατους πίνακες. Μέγιστο και ελάχιστο στοιχείο μονοδιάστατου πίνακα. Παραδείγματα με arrays. Αρχικοποίηση πινάκων. Το κόσκινο του Ερατοσθένη (3ος αιώνας π.χ.). Δισδιάστατοι πίνακες. Ειδική περίπτωση: μονοδιάστατοι πίνακες. Αναθέσεις τιμών σε μεταβλητές πινάκων. Είσοδος/έξοδος δισδιάστατων πινάκων. Επεξεργασία με δισδιάστατους πίνακες. Χρήσιμες συνάρτησες. Συναρτήσεις με παραμέτρους πίνακες. Συναρτήσεις που επιστρέφουν διανύσματα. Συναρτήσεις που επιστρέφουν πίνακες. Γραφικές παραστάσεις: η εντολή plot. Γραφική παράσταση πολυωνύμου. Υπολογισμός τιμών πολυωνύμου. Ο κανόνας του Horner. Υπολογισμός ρητών συναρτήσεων.

Λέξεις – κλειδιά: Μονοδιάστατοι πίνακες , Δισδιάστατοι πίνακες, εντολή plot

Μέγιστος κοινός διαιρέτης (gcd) – Εξαντλητικός αλγόριθμος Δ1. Παρατηρήσεις στον αλγόριθμο Δ1. Μέγιστος κοινός διαιρέτης (gcd) – Αλγόριθμος του Ευκλείδη Δ2. Αριθμητικοί αλγόριθμοι. Διαδοχικές προσεγγίσεις. Έλεγχος “ισότητας” δύο πραγματικών αριθμών. Η μέθοδος Newton για τετραγωνική ρίζα. Τετραγωνική ρίζα με αλγόριθμο Newton. Ανάπτυγμα σειράς. Ο υπολογισμός της s = Σ 1/2i. Το πρόγραμμα για τη σειρά του Ζήνωνα. Υπολογισμός τετραγωνικής ρίζας – Σειρά Taylor. Προγραμματισμός της μεθόδου Taylor για √x. Τετραγωνική ρίζα με αλγόριθμο Taylor – Ι. Όρια σύγκλησης σειράς Taylor. Τετραγωνική ρίζα με αλγόριθμο Taylor – ΙΙ. Προσομοίωση (simulation). Ανάλυση συμπεράσματα.

Λέξεις – κλειδιά: Μέγιστος κοινός διαιρέτης , Η μέθοδος Newton για τετραγωνική ρίζα, Σειρά Taylor

Αποτελεσματικότητα αλγορίθμων. Μέτρηση της αποτελεσματικότητας. Πολυπλοκότητα αλγορίθμου Ο. Ανάλυση παραγόντων. Κανονικοποιημένες μονάδες χρόνου. Αναλυτική μέτρηση πράξεων. Μέτρηση πράξεων για διάφορα n. Πυθαγόρειες τριάδες. Πυθαγόρειες τριάδες αλγόριθμος 1. Παρατηρήσεις στον αλγόριθμο 1. Πυθαγόρειες τριάδες αλγόριθμος 2. Παρατηρήσεις στον αλγόριθμο 2. Πυθαγόρειες τριάδες αλγόριθμος 3.

Λέξεις – κλειδιά: Αποτελεσματικότητα αλγορίθμων, Πολυπλοκότητα αλγορίθμου Ο, Πυθαγόρειες τριάδες

Ο συμβολισμός μεγάλο Ο. Εσωτερικό γινόμενο. Πολλαπλασιασμός πίνακα με διάνυσμα. Παράδειγμα πολλαπλασιασμού πίνακα με διάνυσμα. Γινόμενο πινάκων. Παράδειγμα γινόμενου πινάκων.

Λέξεις – κλειδιά: Εσωτερικό γινόμενο, Γινόμενο πινάκων

Αναζήτηση (search). Αλγόριθμος γραμμικής αναζήτησης. Δυαδική binary αναζήτηση. Αλγόριθμος δυαδικής αναζήτησης. Ταξινόμηση (sort). Ταξινόμηση με επιλογή (selection). Αλγόριθμος selection sort. Ταξινόμηση με εναλλαγή (exchange). Ο αλγόριθμος της φυσαλίδας (bubble sort) - I. Πρόβλημα με τον αλγόριθμο Ι. Ο αλγόριθμος της φυσαλίδας (bubble sort) - IΙ. Ανάλυση του αλγορίθμου ΙΙ. Ταξινόμηση με εισαγωγή (insertion). Αλγόριθμος insertion sort. Ανάλυση αλγορίθμου εισαγωγής.

Λέξεις – κλειδιά: Αναζήτηση, γραμμική αναζήτηση, Δυαδική binary αναζήτηση, Ταξινόμηση, αλγόριθμος της φυσαλίδας

Αναδρομικές μέθοδοι. Αναδρομικός αλγόριθμος n!. Αναδρομικός αλγόριθμος του Ευκλείδη. Οι πύργοι του Hanoi. Οι πύργοι του Hanoi (Αναδρομική λύση). Αλγόριθμος για πύργους Hanoi. Αναδρομική μέθοδος για πύργους Hanoi. Αλφαριθμητικά δεδομένα (strings). Ο  θρύλος των πύργων Hanoi. Προβλήματα με αναδρομή. 

Λέξεις – κλειδιά: Αναδρομικός αλγόριθμος, Οι πύργοι του Hanoi

Προσομοίωση. Δομή αλγορίθμων προσομοίωσης. Παράδειγμα επένδυσης. Επένδυση. Παράδειγμα καταδίωξης. Καταδίωξη. Αλγόριθμος καταδίωξης. Η πορεία του ταύρου. Η απόσταση ταύρου πεζοπόρου. Παράδειγμα δυναμικής. Δυναμική. Αλγόριθμος αναπήδησης. Γραφική παράσταση αναπήδησης. Δυναμική πληθυσμών. Πληθυσμός με περιορισμένα αποθέματα τροφής. Αλγόριθμος για θεμελιώδη εξ. Οικολογίας. Αρπακτικά  και λεία. Αλγόριθμος αρπακτικών και λείας.

Λέξεις – κλειδιά: Προσομοίωση, Επένδυση, Καταδίωξη, Δυναμική, Αναπήδηση, Αρπακτικά  και λεία

MATLAB (MATrix LABoratory). Χαρακτηριστικά του Matlab. Βοήθεια στο Μatlab. Τα πάντα είναι πίνακες. Εισαγωγή πινάκων. Πράξεις πινάκων. Εντολές, εκφράσεις, Μεταβλητές. Κατασκευή πινάκων. Παρατηρήσεις, παραδείγματα. Υποπίνακες. Η εντολή for. Η εντολή while. Η εντολή if. Λογικές σχέσεις και τελεστές. Βαθμωτές συναρτήσεις. Διανυσματικές συναρτήσεις. Συναρτήσεις πινάκων. m-αρχεία. Γραφικά – οι συναρτήσεις plot και semilogy. Χρήσιμες συναρτήσεις. Δημιουργία τριδιαγώνιου πίνακα. Αποτελεσματικότητα συναρτήσεων. Χρόνοι εκτέλεσης σε Pentium 4. Οδηγίες για γρηγορότερα προγράμματα MATLAB.

Λέξεις – κλειδιά: Κατασκευή πινάκων, Υποπίνακες, Λογικές σχέσεις και τελεστές, Συναρτήσεις πινάκων, m-αρχεία, plot, semilogy

  • Εισαγωγή
  • Έλεγχος συνθηκών
  • Δομές επανάληψης
  • Συναρτήσεις
  • Πίνακες [1/2] (Διανύσματα)
  • Πίνακες [2/2] (Δισδιάστατοι)
  • Αναδρομή
  • Συστήματα αρίθμησης

Ανοικτό Ακαδ. Μάθημα

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A-

Αρ. Επισκέψεων :  0
Αρ. Προβολών :  0

Ημερολόγιο

Ανακοινώσεις

  • - Δεν υπάρχουν ανακοινώσεις -