8000 GitHub - fsofronia/sw-lab
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

fsofronia/sw-lab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Εργαστήριο μαθήματος Τεχνολογία Λογισμικού


Για την υλοποίηση των εργασιών του εργαστηρίου θα πρέπει να εργαστείτε σε ένα Unix/Linux terminal. Θα αξιοποιήσετε κάποιες από τις ήδη διαθέσιμες εντολές του shell, αλλά θα χρειαστεί να εγκαταστήσετε και κάποια νέα προγράμματα.

Για να εργαστείτε καθένας στο δικό του περιβάλλον εκτέλεσης, μπορείτε να αξιοποιήσετε όποια από τις πιο κάτω επιλογές σας εξυπηρετεί καλύτερα:

  • Bring your own laptop: Ιδανικά με ήδη εγκατεστημένο linux, πχ ως dual boot
  • Bring your own laptop: Εγκατάσταση ενός linux εντός virtual box
  • Bring your own laptop: Αξιοποίηση Windows Linux Subsystem εφόσον το laptop σας τρέχει Win10
  • Χρήση persistent live ubuntu usb (επιτρέπει την εκτέλεση XUbuntu Desktop περιβάλλοντος το οποίο διατηρεί τις αλλαγές που κάνετε, πχ εγκατάσταση προγραμμάτων)
    • Ακουλουθήστε αυτές τις οδηγίες και δημιουργήστε το δικό σας persistent live usb

Υλικό εργαστηρίου

  1. Εργαστήριο #1 - Εισαγωγή στο Unix/Linux shell
  2. Εργαστήριο #2 - Εγκατάσταση προγραμμάτων μέσω του terminal
    • Εγκαταστήστε το homebrew στο Linux σύστημά σας, παρότι υπάρχουν κάποια security concerns, πχ εδώ, η χρήση του σε ένα περιορισμένο, εκπαιδευτικό περιβάλλον θα διευκολύνει πολύ την εγκατάσταση των απαιτούμενων προγραμμάτων
      • Η εγκατάσταση του Homebrew προαπαιτεί τη παρουσία διαφόρων λογισμικών, όπως πχ git, τα οποία μπορεί να λείπουν από το περιβάλλον σας και τα οποία θα πρέπει να εγκαταστήσετε - σε περιβάλλον ubuntu αυτό μπορείτε να το πετύχετε ως superuser με την εντολή sudo apt-get install <package-name>
    • Εγκατάσταση asciinema, πχ μέσω brew
      • Ν.Β.: κάνετε sign up στο asciinema, διαφορετικά οι καταγραφές σας σβύνονται μετά από μερικές μέρες, άρα όταν πρόκειται να διορθωνούν δε θα υπάρχουν!
    • Εγκατάσταση των
    • Εξάσκηση στη χρήση του asciinema
      • Έναρξη καταγραφής asciinema rec
      • εκτέλεση shell εντολών της επιλογής σας, πχ χρήση nano, source, PS1 για αλλαγή του command prompt του terminal
      • Παύση καταγραφής exit
      • Για τοπική αποθήκευση Ctrl+C
        • σημειώστε το /path/to/file.cast
      • Αναπαραγωγή καταγραφής asciinema play /path/to/file.cast
    • Μελετήστε τις παραμέτρους που μπορεί να πάρει η asciinema και
      • ελαχιστοποιήστε το idle recording time σε <0.5 sec
      • προσθέστε ένα τίτλο στην καταγραφή
  3. Εργαστήριο #3 - Benchmarking python code
    • Εγκαταστήστε benchmarking και performance monitoring εργαλεία, όπως τα προτεινόμενα hyperfine και py-spy και εκτελέστε I/O ή CPU intensive κώδικα python ώστε να αξιολογήσετε την απόδοσή του ή σημεία που με τη βελτίωσή τους η συνολική απόδοση θα μπορούσε να αυξηθεί.
    • Μπορείτε να κάνετε την εγκατάσταση των
      • hyperfine μέσω brew
      • py-spy μέσω pip3 (ίσως πρέπει να εγκατασταθεί στο σύστημά σας). Ειδικά για το py-spy λάβετε υπόψη σας αυτό και ίσως χρειαστει να εγκαταστείσετε το py-spy και ως su
    • Εξάσκηση στη χρήση του py-spy & του hiperfine
      • Χρησιμοποιήστε τον κώδικα στο lab3/rand_ints.py για να παράγετε αρχεία τυχαίων ακεραίων αριθμων.
      • Χρησιμοποιήστε τον κώδικα στο lab3/bubble.py για να ταξιμονήσετε τα αρχεία τυχαίων ακεραίων αριθμων που παράγατε.
      • Χρησιμοποιήστε το hyperfine για να δείτε το χρόνο εκτέλεσης της bubble sort ταξινόμησης
        • Πειραματιστείτε με παραμέτρους που μπορείτε να δώσετε στο hyperfine, πχ --warmup
      • Αξιολογήστε την απόδση του bubble sort σε σχέση με άλλους sorting αλγορίθμους, πχ insertionsort ή quicksort, τους οποίους βρείτε ή υλοποιήστε ;-)
      • Χρησιμοποιήστε το py-spy για να δείτε ποιο τμήμα ενός αλγορίθμου ταξινόμησης αναλώνει το μεγαλύτερο χρονικό διάστημα κατά την εκτέλεσή του
        • Ερμηνεύστε το svg που παράγει, πώς μπορείτε να το αξιοποίησετε για το profiling/benchmarking ενός κώδικα;

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%
0