This repo contains the lectures' material for the Business Information Systems Postgraduate Program.
Administrative, ephemeral issues (schedule, grades, questions, announcements) and any internal communication will be done via the e-class of the course.
The course has been created, is being maintained and taught by Thanasis Argyriou, @linkedin.
Teacher's CV
Please visit the docs section of the repository. The content gets updated frequently and is refactored every year.
Each lecture lives in its own folder under one of three parent directories:
| Parent Directory | Lectures | Focus |
|---|---|---|
lectures_01_06_fundamentals_for_data_science/ |
01–06 | Python fundamentals |
lectures_07_13_pandas_plots_scikit/ |
07–13 | Data science with pandas, plots, scikit-learn |
lectures_14_16_nns_pytorch/ |
14–16 | Neural networks with PyTorch |
| File type | Pattern | Example |
|---|---|---|
| Teaching scripts/notebooks | lec_NNx_description.py/.ipynb |
lec_02a_types_assignments_operations.py |
| Instruction/guide docs | instruct_NNx_description.md/.txt/.ipynb |
instruct_03a_cli_basic_commands.txt |
| Learning goals | goals_NN.md |
goals_02.md |
| Exercises | lec_NN_exercises.md + lec_NN_exercises_solutions.py |
lec_01_exercises.md |
Every lecture folder contains a goals_NN.md file with:
- Learning goals for the lecture.
- A brief description of each file in the folder.
-
No previous coding experience required at all. Designed for absolute beginners.
-
Start from zero, go beyond the basics in several advanced topics.
-
Think of it as learning a new language. You will be able to read, write, and speak
Python. -
You can't learn a foreign language (or coding) in five months, but you can learn enough to advance on your own.
-
You will be surprised by how much you can learn in a short period of time.
-
You need to learn, more or less, 30 new concepts in each lecture and a little syntax, notation and grammar rules.
-
Also, some idioms, some slang, and some culture and mindset, some memes and some, not funny at all, coding jokes).
-
Plus a few super helpful and cool tools (coding assistants, editors, notebooks) and you are ready to go.
-
Mid-course assignments and practice exercises are optional and are graded only positively (extra points if you submit).
-
Two types of practice exercises: "beginners" and "intermediate". Only "intermediate" practice exercises will get feedback.
-
Grades are secondary. Don't worry about it. I mean it. The goal is to learn and enjoy it.
-
Use of AI assistants and GitHub co-pilot is "mandatory". Learn to use them effectively and avoid common pitfalls.
-
No exams, a final assignment, on a different dataset, domain for each student.
-
The final assignment topic is generic, the data and domain to work on is chosen by you.
-
If you didn't get it, it means I did not explain it well enough and I am also accountable for it.
-
My lectures are so effective that you don't have to study afterward. Just kidding.
-
You have to study and practice only a minimum of two hours after each lecture.
-
All material is available online, and all the lectures are "live".
-
The tutor's attendance is mandatory, students' attendance too.
This allows you to ask questions, get immediate feedback and learn as part of a team. -
Each topic, if necessary, is explained three times.
Don't Repeat Yourself (DRY) is a good programming principle, but not a good teaching one.
But, there is a limit to this. I can't think of a good joke about it yet, just an anecdotal Sun Tzu story. The moral of the story above does not apply in education, so I would kindly ask you to assume responsibility. -
The course is designed to be fun and engaging. If you are not having fun, please let me know. I will try to make it better. Nope, just kidding again.
-
Asking questions during or after class. The actually helpful answer is "ask an AI" and DYOR.
-
Pointing out taipos, misstakes, or any kind of improuvements in the materyal.
-
Good programming memes are also rewarded.
-
The course starts slowly and accelerates. Each lecture covers a bit more material the previous one.
-
If you skip a lecture, you miss important insights, and you should definitely catch up before the next one.
-
Good understanding of each lecture is a necessary prerequisite for the next one.
-
We cover the basics in each topic during class and there is some necessary reading before the next lecture.
-
Please take note of that: Reading the material before the next lecture is absolutely necessary.
-
Each lecture starts with a short recap and some questions about the previous one.
-
Besides the reading material, there is some extra "optional, advanced" material for those who want to read further.
-
Hands-on learning: Learn by coding a lot, in class and at home.
-
Integrated development environment: Interactive Python Notebooks are great, but we need a modern editor too.
-
Working with Python requires working knowledge of the Command Line. We use it extensively.
-
Using Git and GitHub is recommended but all material is uploaded on e-class as well.
-
Learning: Learning Python means learning new things all the time.
-
Updates: Python is a fast-evolving language. First you need to learn version control and how to keep up with updates.
-
Refactoring: The "if it ain't broke don't fix it" mentality is true in very limited cases. We would still live in caves.
-
As a matter of fact, my "job" is to teach you how be able to continue learning and advancing on your own.
-
The "teach a man to fish" philosophy is so outdated. You need to learn how to build a fishing boat. Kidding.
You need to learn how to learn.
-
There is a Greek saying: "Με όποιο δάσκαλο καθίσεις, τέτοια γράμματα θα μάθεις". A translation would be: "You will learn as much as the teacher you sit with" or literally:
"with whomever teacher you sit, such teachings you are going to learn". -
I would be happy to get a good grade. That can be achieved if you submit excellent final assignments.
-
I appreciate your help to make the course and each lecture better after each iteration.
-
You are kindly asked to provide feedback on the lectures, the notes, and the teacher all the time.
-
Each student is allocated at least 20 minutes per week for any questions or personal help they may need.
-
Please use all this time and more. This is highly recommended.
-
Read this Guide from Stackoverflow How to ask questions.
-
What to do before asking:
- Ask an AI assistant and always verify the reply.
- Google it, search for similar questions on Stackoverflow.
- Try various solutions, document your results.
- Formulate the question in a clear, concise way, including all the steps you have taken.
Please visit:
a) A mini crash-course on develpment tools.
b) A demo repo to go to intermediate and then to advanced material
c) A section with "real work" examples, Python in the workplace by UoA - BIS graduates. (under construction).