Programming is already a very important skill in today's world. It is not a stretch to say that it is an essential skill. Professionals from all areas want to learn a bit of programming to get an edge. Kids are excited about learning programming and schools are encouraging them by either having it in their course curriculum or as a differentiating aspect of their training. And learning programming using the Python language has been all the rage for some time now.

I have had this thought for some time. So, sometime back, I created a video course (in YouTube) on Python fundamentals, which is aimed at kids. The intention of the course was to give the learner (who has no programming experience), the fundamentals of Python and a basic sense of programming. This post describes the details of what I covered in these video sessions.

Pykidz Course Curriculum

The course focuses on the following areas:

1. Introduction to Python

As the name goes, this is an introduction. It starts talking about why one should learn programming, and why learn python.

Then, I provide a brief idea on how you can install python in your machine. I also talk a bit about python versions. Then I get hands-on and demonstrate the usage of the Python shell.

This video also covers how we can do calculations (on the shell). You get an understanding of the operators in python. The most important concept covered in this session is variables.

All of this is covered in a single video! At the end, you will know why programming and python and how to get started.

First (and only) Video:

Notes & Slides:
Pykidz Sessions - Session 1 Notes
Slides

2. Basic Data Types

The second session / video covers all the basic data types supported by Python. This includes numeric types (integers - int and floating point numbers - float), strings and booleans. I demonstrate operations on these different data types to provide a deeper understanding on them (special focus on strings). At the end of the session, you will know the various kinds of data that you can work with in Python.

First (and only) Video:

Notes & Slides:
Pykidz Sessions - Session 2 Notes
Slides

3. Fully Hands on: A Get your hands dirty session!

After a couple of sessions that were a little heavy on theory & concepts, I made this session (consisting of 4 videos!) to help learners get their hands dirty with working code. The intention of this session is to get you to write a couple of simple working programs.

  • The first video is about taking user input interactively in the program. This is useful for writing dynamic programs - they can do things based on what users want.
  • The next video is about getting you to know, how you can write code in source files instead of just working with Python shell. The python shell or REPL is great for trying things out quickly and learning stuff, but if we want to write programs that we want to keep around and run multiple times, then using source files are the way to go.
  • The third video is about using imports - a way for you use code others have written. I demonstrate this by importing functions from the standard library. This is a key learning.
  • After discussing these learnings, I build the two programs which I initially talked about. You can attempt them yourselves before you look at the video and follow along.

First Video:

NOTE: Links for next videos of the session are present description in this YouTube video.

Notes & Slides:
Pykidz Sessions - Session 3 Notes
Slides
Source Code

4. Python Lists

After completing the sessions till now, you, the aspiring developer, have a basic idea on python data types and have written some programs. You know how to take input from the user, and manipulate that data. You have got your feet wet in the world of programming.

In this next set of videos, I briefly introduce the different data types that allow us to store more than one item of a given type.

Let me give a couple of examples: a collection or list of fruit names or a list of subject scores etc. These session videos (4 again!) focus on a specific collection type called lists. I demonstrate how you can define them, access elements or items in them, slice them, add/remove items, membership etc. Before I dive into the details of lists, I cover comparison operators in Python (we already covered basic operators in the second session) which are very important for you to know down the line.

First Video:

NOTE: Links for next videos of the session are present description in this YouTube video.

Notes & Slides:
Pykidz Sessions - Session 4 Notes
Slides

5. Other Composite Types

This session content is split into 3 videos. Each covers one of the remaining main collection data types in Python. We start with tuples, which feel very close to lists but has a very significant difference. The second video covers dictionaries which are not just a collection of things, but a collection which is indexed by a key - hence key value pairs. The last one covers sets which is a collection of unique elements only. For each of these composite or collection data types, I describe typical topics like definition, access, membership etc. I also cover properties & operations that apply to that specific type. By the end of these two sessions, you will know all that is to know about working with collections of data.

First Video:

NOTE: Links for next videos of the session are present description in this YouTube video.

Notes & Slides:
Pykidz Sessions - Session 5 Notes
Slides

6. Conditionals

Most computer programs which we use, demonstrate the ability to do different things in different situations - decision-making. They have an ability to check things and ask for corrections. For this to work, it is important for a program to execute alternative steps depending on situations and conditions. This is where conditionals come into play. The session is split into 5 videos. These videos explain the key conditional statements like if, else, elif. But, they don't stop there. Key python concepts like blocks, the None keyword, the importance of whitespace are also covered in these videos. I end this session with a couple of problems for you to solve. Now you can make decisions within your code.

First Video:

NOTE: Links for next videos of the session are present description in this YouTube video.

Notes & Slides:
Pykidz Sessions - Session 6 Notes
Slides
Source Code

7. Loops

We started on the path of controlling flow when we learned conditionals. Another great power of a computer is to be able to repeat a set of tasks as many times as you need without committing any errors. We humans get bored with repetition, so it is a good thing that computers don't. I am sure you will appreciate this!

Loops in python allow us to do that. A more technical term for looping is iteration. In these set of 15 videos (phew!), I start with explaining the term iteration and then get into its details. After that, you will the basics of while loops, and dive deep into the break and continue statements. I then cover infinite while loops and nested while loops as well.

After covering while loop in detail, I explain for loops. I cover iterators, and provide specifics of how the for loop works. I go through all the related topics just like I did for while loops. Finally, I close the session off by giving a problem for you to solve.

First Video:

NOTE: Links for next videos of the session are present description in this YouTube video.

Notes & Slides:
Pykidz Sessions - Session 7 Notes
Slides
Source Code

8. Modular Programming

The next key concept to learn is modularity. I go over functions & modules in python in a set of 13 videos!

Functions are a fundamental concept in programming and I cover its importance in good detail. You will understand the mechanics of defining & calling functions. I discuss passing arguments in a lot of detail and then complete this section with an explanation of the return statement. Now you know to write code that you can reuse again & again in other parts of your code.

The next set of videos cover python modules. It explains the concept first. It then shows how you can create them and use them using imports. More module details like executing it as a script, reloading it etc. are also discussed. I also have a short mention of python packages.

First Video:

NOTE: Links for next videos of the session are present description in this YouTube video.

Notes & Slides:
Pykidz Sessions - Session 8 Notes
Slides
Source Code

9. Exception Handling

The last session of the course is about Exception Handling. I feel this is an important lesson to learn for all programming beginners. When you do any kind of development, you will hit upon errors. Having an understanding of what they are and how they work is key to progress with the program. It is an essential skill you need to develop as a programmer.

This session consists of 6 videos. I start off discussing syntax errors and exceptions - what they are and how they work in real code. I then show you how to raise exceptions and how the flow works when exceptions happen. After getting a runtime understanding of how exceptions work, I dive deep into the way we would be handling exception in code. I cover an important gotcha (crime!) before closing the session with the finally block (pun intended!).

First Video:

NOTE: Links for next videos of the session are present description in this YouTube video.

Notes & Slides:
Pykidz Sessions - Session 9 Notes
Slides
Source Code

Conclusion

That is the high level overview of the entire course material. If you want to just get at the entire set of videos of the course, checkout this YouTube playlist.

If you want to get hold of all the notes, slides and source code, they are in GitHub. You can also download it here.

My ulterior motives

The initial reason for starting the video course was that it could be useful to my daughter and for other kids like her. These videos have been out there for some time, but I don't think they have reached many people. So I decided that I will write about it here (I have a small audience here, You), so that people who visit my blog (you) can take advantage of the course if they need it.

There is another reason for doing this. This is my first attempt at creating a video based course (learned a bit of video editing - it is hard work!). I am sure that there is a lot of scope for improvement. I want to get more feedback from you on this attempt.

My daughter has already given one key feedback - my individual videos are too long! I tried to change that in the later sessions, but did not always succeed. There could be a lot more feedback, and I would be very grateful for your help. I hope to make a better version of the course soon. And God willing, I will attempt to make other courses in the future.

Aum sarvam SriKrishnarpanam astu


Comments

comments powered by Disqus