Πέμπτη 18 Φεβρουαρίου 2010
Αποκομιδή Σκυβάλων
Στην επίσημη ιστοσελίδα της JAVA.
Στο σχετικό λήμμα της Wikipedia.
Ανακοίνωση Ενδιάμεσης εξέτασης
Παρασκευή 12 Φεβρουαρίου 2010
LOGICOMIX
Ένα κόμικ που περιγράφει την ιστορία της λογικής μέσα από την προσωπική ιστορία του Bertrand Russell. Συγγραφείς οι Απόστολος Δοξιάδης, Χρίστος Παπαδημητρίου, Αλέκος Παπαδάτο και Annie Di Donna.
Από την ιστοσελίδα του βιβλίου ακολουθεί μια περιγραφή του:
"Μια ιστορία μέσα σε μια άλλη. Ένα μυθιστόρημα με μορφή κόμικ. Ένα δοκίμιο που χωρά σ’ ένα παραμύθι.
Ακολουθώντας τα ίχνη των Θεμελιωτών της Λογικής, μια παρέα στη σύγχρονη Αθήνα αναθέτει στον Μπέρτραντ Ράσελ το ρόλο του οδηγού, αφήνοντάς τον να μας ξεναγήσει σε μια εποχή που σημάδεψε την ιστορία της επιστήμης - και όχι μόνο.
Με φόντο τον πόλεμο και τον παραλογισμό του, η δύναμη των ιδεών και, κυρίως, των προσώπων πίσω απ’ αυτές, κινεί τα νήματα σε μια ιστορία όπου η «τρέλα για τη λογική» τείνει στο άπειρο. Ο Μπέρτραντ Ράσελ, κεντρικός ήρωας, παίρνει το λόγο και μας ξεναγεί σ’ έναν κόσμο όπου η παράνοια καραδοκεί σε κάθε γωνία. Από τα παιδικά του χρόνια και την εποχή της ενηλικίωσης μέχρι το επιστημονικό έργο και τη διασταύρωσή του με θρύλους της επιστήμης, η ιστορία της Λογικής ξεδιπλώνεται σαν μια σειρά από παράδοξα.
Οι ιδεολογικές ζυμώσεις, η πνευματική εξουθένωση, ο ενθουσιασμός της επιτυχίας, η ματαίωση μπροστά στο αδιέξοδο, η επιθυμία για αναγνώριση και πάνω απ’ όλα το πάθος για την απόλυτη γνώση χρωματίζουν τους χαρακτήρες του βιβλίου, δίνοντας ζωή σε ήρωες όπως ο Φρέγκε, ο Χίλμπερτ, ο Πουανκαρέ, ο Βίτγκεντσταϊν, ο Γκέντελ και ο Τούρινγκ. Εμπνευσμένοι συμβολισμοί φέρνουν στην επιφάνεια τα βαθύτερα συναισθήματα και τις ψυχολογικές μεταπτώσεις τους, ρίχνοντας φως στον άνθρωπο πίσω από τον επιστήμονα.
Το Logicomix είναι ένα ταξίδι στον κόσμο των ιδεών. Μια βουτιά στα ανθρώπινα πάθη. Μια «τραγωδία των ηρώων της λογικής» που προσπάθησαν να χωρέσουν ολόκληρη τη ζωή σε μια εξίσωση."
Στην ιστοσελίδα του βιβλίου θα βρείτε και το Σημειωματάριο του Logicomi, μια ενδιαφέρουσα ανασκόπηση βασικών εννοιών με τις οποίες ασχολούνται οι συγγραφείς στην ιστορία που ξετυλίγεται στο Logicomix. Στο λήμμα "Αλγόριθμος" γράφουν: "Μία συστηματική διαδικασία, καθορισμένη βήμα προς βήμα από απολύτως σαφείς κανόνες, που ξεκινά από μια ορισμένη κατάσταση και καταλήγει στο επιθυμητό αποτέλεσμα. Αν και ο όρος προέρχεται από τα μαθηματικά, όπου κυρίως χρησιμοποιείται, αλγόριθμος κάλλιστα μπορεί να είναι μια μαγειρική συνταγή, ή οι οδηγίες για να βρούμε κάποια διεύθυνση. Απλός μαθηματικός αλγόριθμος είναι, για παράδειγμα, η μέθοδος που μαθαίνουμε στο δημοτικό για την πρόσθεση δύο ακεραίων: «Γράψτε τους αριθμούς τον ένα κάτω από τον άλλον, ευθυγραμμισμένους δεξιά. Στην αρχή προσθέστε την άκρη δεξιά στήλη, και αν το αποτέλεσμα είναι μονοψήφιο, γράψτε το από κάτω, στην ίδια στήλη. Αν είναι διψήφιο, γράψτε από κάτω το δεξιά ψηφίο του αποτελέσματος, κρατήστε το πρώτο ψηφίο και προσθέστε το στη δεύτερη στήλη από τα δεξιά...», κ.ο.κ. Σήμερα, οι αλγόριθμοι κατά κανόνα κωδικοποιούνται με σύνθετα συμβολικά συστήματα που αποκαλούνται «γλώσσες προγραμματισμού», και είναι στη βάση της λειτουργίας των ηλεκτρονικών υπολογιστών και του Ίντερνετ."
Απόστολος Δοξιάδης
Ἀφήγηση καί Προγραμματισμός
Ἐπαναχρησιμοποίηση Βιβλιοθηκῶν
- Κατεβάστε τά ἀκόλουθα ἀρχεῖα καί εἰσάγετέ τα στό περιβάλλον σας στό Eclipse: StdIn, StdOut, In, Out, StdDraw.
- Χρησιμοποιεῖστε τό Eclipse (javadoc) γιά νά δημιουργήσετε τά ἐγχειρίδια τῶν API τῶν ἀνωτέρω βιβλιοθηκῶν. Βεβαιωθεῖτε ὅτι ἔχετε πρόσβαση στά μορφοτυπημένα ἐγχειρίδια.
- Στή συνέχεια, πειραματισθεῖτε μέ τά προγράμματα πού συζητήθηκαν στήν τάξη καί τῶν ὁποίων ὁ κώδικας ὑπάρχει στόν ἱστοχῶρο τοῦ βιβλίου τῶν Sedgewick/Wayne.
- Το πρόγραμμα PlotFilter, τό οποῖο παρουσιάστηκε στό μάθημα, ὑπάρχει στό αρχεῖο PlotFilter.java, ἐνῶ τά δεδομένα εἰσόδου του γιά τήν ἀπεικόνιση τῶν πόλεων τῶν ΗΠΑ δίνονται στό ἀρχεῖο usa.txt.
- Δοκιμάστε νά τρέξετε τό PlotFilter μέσα ἀπό τό Eclipse. Τί πρόβλημα συναντᾶτε;
- Δοκιμάστε νά ἀλλάξετε τήν κλάση PlotFilter ὥστε νά μπορέσει νά τρέξει τό πρόγραμμα (βοηθητική νύξη: χρησιμοποιεῖστε τήν κλάση In.java γιά εἲσοδο τῶν δεδομένων).
- Μπορεῖτε νά δημιουργήσετε ἕνα ἀρχεῖο cyprus.txt μέ τίς συντεταγμένες κυπριακῶν πόλεων καί κωμοπόλεων καί νά τό χρησιμοποιεῖσετε σάν εἴσοδο στό PlotFilter; Ἀναζητεῖστε στό Διαδίκτυο καί ἀλλοῦ τίς συντεταγμένες τῶν πόλεων-κωμοπόλεων τῆς Κύπρου.
Πέμπτη 11 Φεβρουαρίου 2010
Παράταση παράδοσης 2ης εργασίας
Τρίτη 9 Φεβρουαρίου 2010
Προκαθορισμένη Είσοδος και Έξοδος
- Βιβλίο Sedgwick και Wayne, κεφάλαιο 1.5.
- Στο λήμμα της Wikipedia για τις προκαθορισμένες ροές Εισόδου/Εξόδου (Standard streams).
- Στο βιβλίο των Kernighan και Pike "The Unix Programming Environment" (πρόκειται για βιβλίο αναφοράς σε θέματα προγραμματισμού σε περιβάλλοντα UNIX).
Παρασκευή 5 Φεβρουαρίου 2010
Δευτέρα 4 Ιανουαρίου 2010
Καλή Χρονιά
Δευτέρα 18 Μαΐου 2009
Βαθμολογίες
Τρίτη 28 Απριλίου 2009
Παρασκευή 10 Απριλίου 2009
Ἐξαιρέσεις καί κληρονομικότητα
Τρίτη 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
Καλοκαιρινές Θέσεις Βοηθῶν Ἒρευνας
Πέμπτη 26 Μαρτίου 2009
How are Java software developers using the Elipse IDE?
Δευτέρα 23 Φεβρουαρίου 2009
Σχετικά μέ τήν ἀποκομιδή σκυβάλων
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;
}
}