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
- No previous coding experience required at all. Designed for absolute beginners.
- Start from zero, go beyond the basics in several advanced topics.
- You can't learn a foreign language (or coding) in five months, but you can learn enough to advace on your own.
- I promise you will be surprised by how much you can learn in a short period of time.
- Think of it as learning a new language. You will be able to read, write, and speak Python.
- You just need to learn more or less 30 new words and concepts in each lecture and a little syntax and grammar rules to be able to communicate.
- Plus some idioms, some slang, and some culture (and some python memes and some, not funny at all, coding jokes).
- And 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 be given feedback.
- Students grades are secondary here. 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 assigment topic is generic, the data 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.
- Lectures are intented to be so effective that you don't have to study after them. 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 and 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 business nor in education, so I would kindly ask you to assume responsibility for your learning. - 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. Many times the correct and the actually helpful answer is "google it" or "ask an AI".
- pointing out taipos, misstakes, or improuvements in the materyal. I use an AI assistant check for typos, so it's not my fault.
- The course starts slowly and accelerates. Each lecture covers a bit more material the previous one.
- If you skip a lecture, you will 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 necessary.
- Each lecture starts with a short recap and some questions about the previous one.
- Besides the reading material, there is also 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 you need a modern editor too. We will use both.
- Working with Python requires working knowledge of the Command Line. We will use it extensively.
Please visit the docs section of the repository.
- learning: Learning Python means learning new things all the time.
- updates: Python is a fast-evolving language. First of all you need to learn version control and how to keep up with updates.
- refactoring: "If it ain't broke don't fix it mentality" would still have us living without electricity.
- 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 assignemnts.
- So, please provide constructive feedback and grades objectively on the effectiveness of the combination of notes and lectures. I would be happy to make the course and each lecture better after each iteration.
- You are kindly asked to grade the lectures, the notes, and the teacher after each section.
- Each student is allocated 20 minutes per week for any questions or personal help they may need. Please use all this time and more. This is the highly recommended.
- Read this Guide from Stackoverflow How to ask questions.
- What to do before asking:
- Google it.
- Ask an AI assistant.
- Try various solutions, document your results.
- Formulate the question in a clear, concise way, incuding all the steps you have taken.
Please visit:
a) A mini crash-course on dev tools.
b) A demo repo to go to intermediate and then to advanced material