Πέμπτη 18 Φεβρουαρίου 2010

Αποκομιδή Σκυβάλων

Χρήσιμες πληροφορίες για την αποκομιδή σκυβάλων μπορείτε να βρείτε:


Στην επίσημη ιστοσελίδα της JAVA.

Στο σχετικό λήμμα της Wikipedia.

Ανακοίνωση Ενδιάμεσης εξέτασης

Η ενδιάμεση εξέταση θα πραγματοποιηθεί στις 23 Μαρτίου, στην ώρα και στην αίθουσα του μαθήματος.

Παρασκευή 12 Φεβρουαρίου 2010

LOGICOMIX


Ένα κόμικ που περιγράφει την ιστορία της λογικής μέσα από την προσωπική ιστορία του Bertrand Russell. Συγγραφείς οι Απόστολος Δοξιάδης, Χρίστος Παπαδημητρίου, Αλέκος Παπαδάτο και Annie Di Donna.


Από την ιστοσελίδα του βιβλίου ακολουθεί μια περιγραφή του:


"Μια ιστορία μέσα σε μια άλλη. Ένα μυθιστόρημα με μορφή κόμικ. Ένα δοκίμιο που χωρά σ’ ένα παραμύθι.

Ακολουθώντας τα ίχνη των Θεμελιωτών της Λογικής, μια παρέα στη σύγχρονη Αθήνα αναθέτει στον Μπέρτραντ Ράσελ το ρόλο του οδηγού, αφήνοντάς τον να μας ξεναγήσει σε μια εποχή που σημάδεψε την ιστορία της επιστήμης - και όχι μόνο.

Με φόντο τον πόλεμο και τον παραλογισμό του, η δύναμη των ιδεών και, κυρίως, των προσώπων πίσω απ’ αυτές, κινεί τα νήματα σε μια ιστορία όπου η «τρέλα για τη λογική» τείνει στο άπειρο. Ο Μπέρτραντ Ράσελ, κεντρικός ήρωας, παίρνει το λόγο και μας ξεναγεί σ’ έναν κόσμο όπου η παράνοια καραδοκεί σε κάθε γωνία. Από τα παιδικά του χρόνια και την εποχή της ενηλικίωσης μέχρι το επιστημονικό έργο και τη διασταύρωσή του με θρύλους της επιστήμης, η ιστορία της Λογικής ξεδιπλώνεται σαν μια σειρά από παράδοξα.

Οι ιδεολογικές ζυμώσεις, η πνευματική εξουθένωση, ο ενθουσιασμός της επιτυχίας, η ματαίωση μπροστά στο αδιέξοδο, η επιθυμία για αναγνώριση και πάνω απ’ όλα το πάθος για την απόλυτη γνώση χρωματίζουν τους χαρακτήρες του βιβλίου, δίνοντας ζωή σε ήρωες όπως ο Φρέγκε, ο Χίλμπερτ, ο Πουανκαρέ, ο Βίτγκεντσταϊν, ο Γκέντελ και ο Τούρινγκ. Εμπνευσμένοι συμβολισμοί φέρνουν στην επιφάνεια τα βαθύτερα συναισθήματα και τις ψυχολογικές μεταπτώσεις τους, ρίχνοντας φως στον άνθρωπο πίσω από τον επιστήμονα.

Το Logicomix είναι ένα ταξίδι στον κόσμο των ιδεών. Μια βουτιά στα ανθρώπινα πάθη. Μια «τραγωδία των ηρώων της λογικής» που προσπάθησαν να χωρέσουν ολόκληρη τη ζωή σε μια εξίσωση."



Στην ιστοσελίδα του βιβλίου θα βρείτε και το Σημειωματάριο του Logicomi, μια ενδιαφέρουσα ανασκόπηση βασικών εννοιών με τις οποίες ασχολούνται οι συγγραφείς στην ιστορία που ξετυλίγεται στο Logicomix. Στο λήμμα "Αλγόριθμος" γράφουν: "Μία συστηματική διαδικασία, καθορισμένη βήμα προς βήμα από απολύτως σαφείς κανόνες, που ξεκινά από μια ορισμένη κατάσταση και καταλήγει στο επιθυμητό αποτέλεσμα. Αν και ο όρος προέρχεται από τα μαθηματικά, όπου κυρίως χρησιμοποιείται, αλγόριθμος κάλλιστα μπορεί να είναι μια μαγειρική συνταγή, ή οι οδηγίες για να βρούμε κάποια διεύθυνση. Απλός μαθηματικός αλγόριθμος είναι, για παράδειγμα, η μέθοδος που μαθαίνουμε στο δημοτικό για την πρόσθεση δύο ακεραίων: «Γράψτε τους αριθμούς τον ένα κάτω από τον άλλον, ευθυγραμμισμένους δεξιά. Στην αρχή προσθέστε την άκρη δεξιά στήλη, και αν το αποτέλεσμα είναι μονοψήφιο, γράψτε το από κάτω, στην ίδια στήλη. Αν είναι διψήφιο, γράψτε από κάτω το δεξιά ψηφίο του αποτελέσματος, κρατήστε το πρώτο ψηφίο και προσθέστε το στη δεύτερη στήλη από τα δεξιά...», κ.ο.κ. Σήμερα, οι αλγόριθμοι κατά κανόνα κωδικοποιούνται με σύνθετα συμβολικά συστήματα που αποκαλούνται «γλώσσες προγραμματισμού», και είναι στη βάση της λειτουργίας των ηλεκτρονικών υπολογιστών και του Ίντερνετ."

Απόστολος Δοξιάδης

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

Ἀφήγηση καί Προγραμματισμός

Μπορεῖτε νά βρεῖτε τίς διαφάνειες τῆς ὁμιλίας τοῦ Χρίστου Παπαδημητρίου μέ τό ἀνωτέρω θέμα στόν ἀκόλουθο ὑπερσύνδεσμο σἐ μορφή ppt. Ἀπό μιά σύντομη ἀναζήτηση στό Διαδίκτυο, φαίνεται ὃτι ἡ ὁμιλία αὐτή δόθηκε στό συνέδριο "Mathematics and Narrative" (Μαθηματικά και Ἀφήγηση) στή Μύκονο, τόν Ἰούλιο τοῦ 2005.

Ἐπαναχρησιμοποίηση Βιβλιοθηκῶν

Δοκιμάστε νά ἐπαναχρησιμοποιήσετε τούς κώδικες γιά τήν Εἴσοδο/Ἒξοδο καί τά γραφικά πού συζητήσαμε στήν τάξη καί δίνονται στόν ἱστοχῶρο τοῦ βιβλίου τῶν Sedgewick/Wayne. 
  • Κατεβάστε τά ἀκόλουθα ἀρχεῖα καί εἰσάγετέ τα στό περιβάλλον σας στό Eclipse: StdIn, StdOut, In, OutStdDraw
  • Χρησιμοποιεῖστε τό Eclipse (javadoc) γιά νά δημιουργήσετε τά ἐγχειρίδια τῶν API τῶν ἀνωτέρω βιβλιοθηκῶν. Βεβαιωθεῖτε ὅτι ἔχετε πρόσβαση στά μορφοτυπημένα ἐγχειρίδια.
  • Στή συνέχεια, πειραματισθεῖτε μέ τά προγράμματα πού συζητήθηκαν στήν τάξη καί τῶν ὁποίων ὁ κώδικας ὑπάρχει στόν ἱστοχῶρο τοῦ βιβλίου τῶν Sedgewick/Wayne. 
  • Το πρόγραμμα PlotFilter, τό οποῖο παρουσιάστηκε στό μάθημα, ὑπάρχει στό αρχεῖο PlotFilter.java, ἐνῶ τά δεδομένα εἰσόδου του γιά τήν ἀπεικόνιση τῶν πόλεων τῶν ΗΠΑ δίνονται στό ἀρχεῖο usa.txt
  • Δοκιμάστε νά τρέξετε τό PlotFilter μέσα ἀπό τό Eclipse. Τί πρόβλημα συναντᾶτε;
  • Δοκιμάστε νά ἀλλάξετε τήν κλάση PlotFilter ὥστε νά μπορέσει νά τρέξει τό πρόγραμμα (βοηθητική νύξη: χρησιμοποιεῖστε τήν κλάση In.java γιά εἲσοδο τῶν δεδομένων).
  • Μπορεῖτε νά δημιουργήσετε ἕνα ἀρχεῖο cyprus.txt μέ τίς συντεταγμένες κυπριακῶν πόλεων καί κωμοπόλεων καί νά τό χρησιμοποιεῖσετε σάν εἴσοδο στό PlotFilter; Ἀναζητεῖστε στό Διαδίκτυο καί ἀλλοῦ τίς συντεταγμένες τῶν πόλεων-κωμοπόλεων τῆς Κύπρου.

Πέμπτη 11 Φεβρουαρίου 2010

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

Δίνεται παράταση στην παράδοση της 2ης εργασίας μέχρι την Πέμπτη 18/2/2010, 23:59.

Τρίτη 9 Φεβρουαρίου 2010

Προκαθορισμένη Είσοδος και Έξοδος

Πληροφορίες σχετικά με το stdin και το stdout μπορείτε να βρείτε στις ακόλουθες πηγές:

  • Βιβλίο Sedgwick και Wayne, κεφάλαιο 1.5.
  • Στο λήμμα της Wikipedia για τις προκαθορισμένες ροές Εισόδου/Εξόδου (Standard streams).
  • Στο βιβλίο των Kernighan και Pike "The Unix Programming Environment" (πρόκειται για βιβλίο αναφοράς σε θέματα προγραμματισμού σε περιβάλλοντα UNIX).

Παρασκευή 5 Φεβρουαρίου 2010

Διαχείριση Μνήμης

Οι διαφάνειες της διάλεξης για τη διαχείριση μνήμης έχουν αναρτηθεί σε μορφή pdf.

Δευτέρα 4 Ιανουαρίου 2010

Καλή Χρονιά

Το ιστολόγιο αυτό θα χρησιμοποιηθεί για την δημοσίευση ανακοινώσεων σχετικών με το μάθημα ΕΠΛ233 και για τη διενέργεια συζητήσεων αφορούντων το μάθημα και τις εργασίες.

Δευτέρα 18 Μαΐου 2009

Βαθμολογίες

Ἀγαπητοί φοιτητές, οἱ τελικές βαθμολογίες ἒχουν ἀνακοινωθεῖ μέσω τοῦ συστήματος Banner.

Καλό Καλοκαίρι,
ΜΔ

Τρίτη 28 Απριλίου 2009

Σημειώσεις

Οἱ διαφάνειες τῶν τελευταίων διαλέξεων ἒχουν ἀναρτηθεῖ στό blackboard.

Παρασκευή 10 Απριλίου 2009

Ἐξαιρέσεις καί κληρονομικότητα

Σχετικά μέ τό ἐρώτημα πού συζητήθηκε στήν τάξη γιά τό παράδειγμα τοῦ βιβλίου τοῦ Eckel πού διερευνᾶ τή σχέση ἐξαιρέσεων καί κληρονομικότητας, παρατηρεῖστε ὃτι στήν κλάση StormyInning δέν δικαιούμαστε νά δηλώσουμε μέθοδο event() πού νά ἐγείρει εἲτε ἐξαίρεση RainedOut εἲτε ἐξαίρεση BaseballException, διότι καί στίς δύο περιπτώσεις ἡ event() δέν θά ἦταν συμβατή μέ τήν δήλωσή της στή διαπροσωπεία Storm καί στήν ἀφαιρετική κλάση Inning. 

Τρίτη 31 Μαρτίου 2009

Διαλέξεις Καθηγητή Snyder για την Παραλληλία

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ


ΠΡΟΓΡΑΜΜΑ ΔΙΑΛΕΞΕΩΝ ΕΠΙΣΚΕΠΤΗ ΚΑΘΗΓΗΤΗ ΣΥΝΤΟΜΗΣ ΔΙΑΡΚΕΙΑΣ

professor Lawrence SNYDER

Department of Computer Science-Engineering

University of Washington, USA

Overview

Parallel computation is a practical necessity today, but most computer scientists have never programmed parallel computers. Because parallel programming is not like standard (sequential) programming, there is a software crisis looming. Software companies want to hire knowledgeable parallel programmers, but only a handful graduate each year with this experience. In this series of talks the goal will be to present the current state of the art in parallel programming, and to explain how students and faculty can become effective parallel programmers. Emphasis will be placed on explaining what works, and what doesn’t work, so that the content will have immediate applicability.


Colloquium: The New Opportunities and Challenges of Parallelism

The fastest computer in the world has achieved a speed of 10^15 floating point operations per second; all desktop and laptop computers sold today are parallel computers. What programming techniques can be used to effectively translate the potential parallelism in a computation to these kinds of computers? Will one language work for both situations? Should all programmers be parallel programmers? The lecture discusses answers to these questions as well as other urgent problems in parallel computation.

Location: Room 148, Building 12 Faculty of Pure and Applied Sciences, New Campus 

Date: Wednesday, April 8th, 2009
Time: 15:00 - 16:00


Lecture 1

35 Years of Research: Positive Results; Negative Results

Parallel programming has been an intensively studied topic since the development of Illiac 4. But after 35 what has been learned? Researchers new to the subject think nothing from the past applies; those who have worked in the area for a long time, believe much is known. What positive results do we have -- what works? What negative results do we have -- what doesn't work? What survives to build on? How should the past inform our research agenda?

A Model of Parallelism To Guide Thinking

Sequential programming is different from parallel programming. In the lecture, I discuss some of the ways. Some issues include: What can we take from sequential programming and apply to the parallel programming problem? What goals should any new language have? What is to be done with the millions of lines of legacy code that must continue to run -- can it run in parallel. How can parallel architecture research help? A new model of parallel computation suitable for programming language design will be introduced.

Location: Room 148, Building 12 Faculty of Pure and Applied Sciences, New Campus 

Date: Thursday, April 9th, 2009
Time: 15:00-17:00


Lecture 2

Parallel Languages of Today -- OpenMP to Fortress

Parallel programming language research continues to be an active topic. New languages are being implemented all of the time. We briefly touch on the languages presently in use: MPI, PVM, OpenMP. We consider the advancement provided by the Partitioned Global Address Space (PGAS) languages: Co-Array Fortran, UPC, Titanium. Further we consider the advancements of the new HPC languages: Chapel, X10 and Fortress. Special purpose languages like Cuda will also be touched on. What kind of language do the developers of desktop applications need?

Next Parallel Languages -- Access To Parallelism For All

With the benefit of the preceding lectures, we consider the future directions of parallel programming. How must the languages adapt? How must our teaching of programming and computer science adapt to the future programming world. How does a 20-year veteran programmer become proficient in parallel programming, or is that necessary? Where should research be directed to answer these questions?

Location: Room 148, Building 12 Faculty of Pure and Applied Sciences, New Campus 

Date: Friday, April 10, 2009
Time: 16:30-18:30

For inquiries and more information please contact: M. Dikaiakos, CS Dept (mdd@cs.ucy.ac.cy) and check the Web site: http://www.cs.ucy.ac.cy/colloquium/



Lawrence Snyder is a professor of Computer Science and Engineering at the University of Washington in Seattle. He received a BA from the University of Iowa in Mathematics and Economics, and his PhD from Carnegie Mellon University as a student of A. Nico Habermann. He has served on the faculties of Yale and Purdue, and has had visiting appointments at UW, Harvard, MIT, Sydney University, The Swiss Technological University (ETH), The University of Auckland and Kyoto University.


Throughout most of his career Snyder's research has focused on parallel computation, including architecture, algorithms and languages. In 1980 he invented programmable interconnect, a method to dynamically configure on-chip components, and a technology used today for FPGAs. In 1990 he was co-designer of Chaos Router, a randomizing adaptive packet router. He was principle investigator of the ZPL language design project, the first high-level parallel language to achieve "performance portability" across all parallel computer platforms.


Snyder is author of Fluency with Information Technology: Skills, Concepts and Capabilities, a textbook for non-techie college freshmen that teaches fundamental computing concepts; the book is in its 3rd edition. With former PhD student Calvin Lin (UT Austin), he has written Principles of Parallel Programming, published in 2008. 


In service, Snyder was a three-term member of the Computer Research Association Board of Directors, developing a series of best practices white papers. He chaired the NSF CISE Advisory Board as well as several CISE directorate oversight panels and numerous review panels. He has chaired two National Research Council studies, producing influential reports -- Academic Careers for Experimental Computer Scientists and Engineers and Being Fluent with Information Technology; he served three terms on NRC's Army Research Lab Technical Advisory Board. He serves on ACM's Education Board, has been general chair or program committee chair of several ACM and IEEE conferences. He is a fellow of both the ACM and IEEE.


His most important and rewarding accomplishment has been as adviser to 21 doctoral

students.

Παρασκευή 27 Μαρτίου 2009

Καλοκαιρινές Θέσεις Βοηθῶν Ἒρευνας

Τό Ἐργαστήριο Ὑπολογιστικῶν Συστημάτων Ὑψηλῆς Ἐπίδοσης (High-Performance Computing Systems Lab) ἀνακοινώνει δύο θέσεις βοηθῶν ἒρευνας γιά τήν θερινή περίοδο τοῦ 2009 (Ἰούνιος, Ἰούλιος). Οἱ θέσεις ἀφοροῦν σέ προγραμματισμό JAVA πάνω σέ εὐφυή κινητά τηλέφωνα OpenMoko μέ στόχο τή δημιουργία μιᾶς ἐφαρμογῆς κοινωνικῆς δικτύωσης μέσω κινητῶν τηλεφώνων. Οἱ φοιτητές τοῦ ΕΠΛ233 πού ἐπιθυμοῦν νά ὑποβάλλουν αἲτηση, μποροῦν νά μοῦ στείλουν email μέχρι τήν τελευταία ἑβδομάδα τῶν μαθημάτων.

Διαφάνειες

Οἱ διαφάνεις τῶν τελευταίων διαλέξεων ἒχουν δημοσιευθεῖ μέσω τοῦ WebCT.

Πέμπτη 26 Μαρτίου 2009

How are Java software developers using the Elipse IDE?

Ἐνδιαφέρον ἂρθρο, δημοσιευμένο στό περιοδικό IEEE Software τό 2006 ἀπό τούς Murphy, Kersten καί Findlater. Μπορεῖτε νά τό βρεῖτε μέσω τῆς ψηφιακῆς βιβλιοθήκης IEEE Xplore σέ μορφή pdf, ἐφόσον συνδεθεῖτε ἀπό τό ἐνδοδίκτυο τοῦ Π.Κ.

Δευτέρα 23 Φεβρουαρίου 2009

Σχετικά μέ τήν ἀποκομιδή σκυβάλων

Πληροφορίες γιά την ἀποκομιδή σκυβάλων στή JAVA μπορεῖτε νά βρεῖτε σέ παρουσίαση τῶν προγραμματιστῶν τῆς SUN σέ μορφή pdf.


Δεῖτε τὀν ἀκόλουθο κώδικα καί ἐντοπίστε ἂν δημιουργοῦνται σκύβαλα τά ὁποία δέν μπορεῖ νά ἐντοπίσει ὁ ἀποκομιστής καί γιατί:

public class SimpleBoundedStack {   
 private static final int MAXLEN = 100;   
 private Object stack[] = new Object[MAXLEN];   
 private int top = -1;    

 public void push(Object p) { 
  stack [++top] = p;
 }    
 public Object pop() {     
  Object p = stack [top--];     
  return p;   
 
}

Τρίτη 17 Φεβρουαρίου 2009

UML

Χρήσιμες πληροφορίες γιά τήν UML μπορεῖτε νά βρεῖτε στήν ἱστοσελίδα τοῦ OMG.

Τρίτη 10 Φεβρουαρίου 2009

Μέθοδος Newton-Raphson

Μιά καλή ἀνασκόπηση τῆς μεθόδου Νιούτον-Ράφσον ὑπάρχει στόν ἱστοχῶρο τῆς Βόλφραμ ὃπως καί στήν Βικιπαίδεια.

Γιά τήν κίνηση Μπράουν (Brownian Motion) δεῖτε ἐπίσης την Βικιπέδια.