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.
- 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).