This page contains notes. exercises, project descriptions and other material relevant to the Biomedical Engineering MSc program that is held in coordination with University of Crete, Technical University of Crete and the Foundation for Research and Technology-Hellas
- Python basics . html, markdown, ipynb, pdf
- Variables, functions and the if syntax . html, markdown, ipynb, pdf
- Lists html, markdown, ipynb, pdf.
- List comprehension . html, markdown, ipynb, pdf.
- While, dictionary, tuples, sets . html, markdown, ipynb, pdf.
- Files, lambda, string formatting, ternary operator, is operator, variable scoping . html, markdown, ipynb, pdf.
- Generators, Exceptions, Collections . html, markdown, ipynb, pdf.
- Serialization, itertools, Regular expressions . html, markdown, ipynb, pdf.
- Pandas . html, markdown, ipynb, pdf.
- Numpy . html, markdown, ipynb, pdf.
- Plotting . html, markdown, ipynb, pdf.
- Classes . html, markdown, ipynb, pdf.
Both the Exercises and the Project of this course are assigned individually. You are allowed to discuss potential problems and solutions with your colleagues (I cannot prevent that), but copying and sharing solutions is strictly prohibited. Keep in mind: the programming code that is written by amateurs (in programming) tends to be highly personal. A code that has been shared is very easily identifiable even if various tricks (i.e. change of variable names) have been used. Incidents of copying will be reported and a grade of zero will be assigned.
In this repository there is a file containing 25 exercises. These exercises are covering easy to medium common programming tasks. The deadline for delivering your solutions is 31 July 2021
To hand over solutions send an email to kantale@ics.forth.gr. On the subject or on the beginning of your email you will have to mention your name. On the mail you will have to copy-paste the solutions one after the other. On the top of each solution there should exist a python comment in the following format:
# exercise <NUMBER>
For example. Suppose that the exercise is:
Exercise: 11
Write a function that will take as arguments two numbers. The function should return the sum of these two numbers.
The part of your email that will contain the solution to this exercise should be:
# exercise 11
def f(a,b):
return a+b
Although this is the recommended way of handing over exercises other options are:
- Attachments with .py files. Again on the top of each solution there should be a comment as described before.
- Attachments with .ipynb files. Do not forget to add the python comment with the number of the exercise as described before. This comment should be in the same cell with the one containing your solution.
To save the exercises in .ipynb or in .py format from jupyter: Go to File --> Download as -> Python (or Notebook). Then you can send me as an attachment the downloaded file:
ATTENTION The following formats are not accepted:
- pdf, Microsoft Word doc, Open Office, Libre Office, files
- Compressed files
- Screenshots
Every exercise is graded from 0 to 10. All exercises have the same weight. The logic of grading is the following:
- Grade 0. No solution was handed over.
- Grade 1. Wrong results. Some basic structure of the solutions has been drafted.
- Grade 2. Wrong results. A very small part of the solution has been implemented.
- Grade 3. Wrong results. A significant part of the solution has been implemented.
- Grade 4. Wrong results. The complete structure has been implemented but is contains important logic errors.
- Grade 5. Wrong results. The complete structure has been implemented but it contains less important logic errors.
- Grade 6. Wrong results. The complete structure has been implemented but is contains minor logic errors.
- Grade 7. Correct results, but not for all possible scenarios / inputs
- Grade 8. Correct results, with wrong logic! (this happens many times..)
- Grade 9. Correct results, with correct logic, but there is one obvious better / more efficient solution.
- Grade 10. Flawless implementation. Bravo!
The project is described here.
You should deliver an implementation of the project by 10 August 2021
In your email you should include:
-
Your code which it should be one or more python (.py) files.
-
A report (minimum 500, maximum 3000 words) that should include:
- A description of how to run the program.
- A description of the general structure of the code
- A discussion that should include:
- How is the pressure to local healthcare systems (parameter
M
) affected according to the rest of the parameters? - Add 4-5 examples of plots demonstrating your findings
- How is the pressure to local healthcare systems (parameter
- A section that should include your opinion regarding the project. Did it help you understand some concepts in programming? What is the most difficult part? Do you have any suggestions for improvement?. This last section is not going to be graded.. it is a chance to get some feedback regarding the project itself.
-
The project will be graded according to the final:
- 95%: Ability to run your program with all available parameters and get the expected results.
- 5%: Technical completeness and quality of your report. Note: The size of the report is not important! A 500 word report that contains concisely what is requested is enough. Seek for quality not quantity!
- Official Documentation / General links
- Courses / Books / Textbooks
- CS61A: Online Textbook . Ευχαριστώ τον Ιωάννη-Ραφαήλ Τζονευράκη για το link.
- Python Computing for Data Science
- EbookFoundation free-programming-books on python
- Cheatsheets
- pythoncheatsheet . Πολύ καλό και "συμπαγές" σημείο αναφοράς. Χρήσιμο όταν έχεις ξεχάσει πως γίνεται κάτι.
- Scientific Python Cheatsheet
- Matplotlib Cheatsheet
- For Beginners
- A beginner's python tutorial
- A Python course that takes beginners seriously
- Beginner's Python Cheat Sheets
- Practical Python Programming from David Beazley
- Automate the Boring Stuff with Python Practical programming for total beginners. Written by Al Sweigart. Free to read under a Creative Commons license.
- More advanced
- Challenges:
- NumPy
- Scipy
- Paper στο Nature για το scipy published: 3 February 2020
- Working With Linear Systems in Python With scipy.linalg
- scipy lectures
- Pandas:
- Plotting
- Regular Expressions
- Jupyter
- Jupyter notebooks for teaching/learning Python 3
- Γιατί jupyter; https://www.nature.com/articles/d41586-018-07196-1
- 28 Jupyter Notebook tips, tricks and shortcuts - Dataquest. Ευχαριστώ τον Thimo Kristani για το link.
- Tips & Tricks
- 100 Helpful Python Tips You Can Learn Before Finishing Your Morning Coffee https://towardsdatascience.com/100-helpful-python-tips-you-can-learn-before-finishing-your-morning-coffee-eb9c39e68958
- Forums & QAs