Skip to content

argythana/uoa_py_course

Repository files navigation

Welcome to the "Python for Data Science, Machine Learning and Artificial Intelligence" Course.

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

Lectures Outline

Please visit the docs section of the repository. The content gets updated frequently and is refactored every year.

Course Philosophy (Work In Progress)

A lot of good news! You will learn a beautiful new language!

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

More good news! You don't have to worry about grades.

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

Even more good news! I'm here to help not to judge 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.

It gets even better! You get bonus points for:

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

Course structure and pace.

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

Course add-ons

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

Be prepared for continuous:

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

Course evaluation. Good news! It's also about me, not just about you.

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

How to ask questions between lectures:

  • 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:
    1. Ask an AI assistant and always verify the reply.
    2. Google it, search for similar questions on Stackoverflow.
    3. Try various solutions, document your results.
    4. Formulate the question in a clear, concise way, including all the steps you have taken.

What next

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

About

Uni of Athens, BIS postgrad python course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published