JomaClass Presents

Programming Fundamentals with Python

Get Access
Browse Lessons
1. What is programming?

In this lesson we will truly understand what "programming" exactly is. There are a lot of misconceptions out there so the first we would do is get a good understanding of what programming is and how it fits into building software. Programming is but a small piece of building great software but it is the foundation that has to be strong.

2. Variables

Variables are a key part of programming. It is what allows us to store and manipulate data. In this lesson, we will learn about variables and how we can leverage them to write our programs.

3. Data Types and Operators

Technically, machines only read 0's and 1's. However, we can represent different data types using these 0's and 1's. In this lesson, we will talk about some main data types that we will be working with and how to differentiate between them. We will mainly talk about Numbers, Strings, and Booleans and how to manipulate them in our programs.

4. Functions

Functions are a key component of any program. It allows us to write modular and organized code. Functions organize a program into distinct units, making interchanging and editing them easier. This makes your entire program organized and modular.

5. Control Flow: If Else Statements

Control flow is how you can control your program depending on the inputs you get. This allows your code to do different things for different situations.

6. Control Flow: While Loops

Another kind of control flow is the loop. This allows you to do the same thing multiple times until a condition is met.

7. Lists: What are they?

A List is a collection of elements. If you need a variable amount of elements, then a list can hold them. They go hand in hand with loops and you will see why in this lesson.

8. Lists: Iterating through a List

Now that you know how to create a list, how do you access every element in it? How do we go through the whole list? I’ll show you different ways you can manipulate a list and how they’re useful.

9. Lists: Modifying values in a list

There are instances where you want to change the list. That allows you to store data but also modify it depending on external conditions. Lists are powerful not only because they can store it, but because they are mutable.

10. Loops: For loops

Loops are extremely important in programming, but sometimes writing them is cumbersome. There is a different way of writing them using the “for” keyword, which can save you some time.

11. Loops: Break and Continue

Sometimes, you want to break out of the loop depending on a certain condition. This lesson will teach you how to that.

12. Nested Loops

Did you know you can put a loop inside a loop? Why is that useful? In this lesson we'll cover that.

13. Matrices: List of Lists

We are going to get creative with lists by nesting lists inside a list. We can actaully use nested lists to represent matrices.

14. Matrices: Adding two matrices

Since we want to build a sudoku solver at the end of the course, we have to know how to manipulate matrices since a sudoku board is essentially a 9x9 matrix.

15. Recursion: How to think recursively

Most people are afraid of recursion, but once you get the hang of it, it is very elegant and it's very useful for things like trees, backtracking and graphs.

16. Recursion: Fibonacci Sequence

Here is an example that solves a problem using recursion. You'll learn how to write recursive functions.

17. Recursion: How to write recursive functions

Writing recursive functions tends to create lots of bugs. But I'll teach you a framework to use when creating them to prevent common mistakes.

18. Backtracking: What is it good for?

I teach you what backtracking is and how we actually use it pretty often in our daily lives to solve constraint problems.

19. Backtracking: Robot Maze Problem

I go through an example problem we can solve with backtracking. The problem is about a robot trying to go to a charging port but there are obstacles in the way.

20. Backtracking: Coding the Robot Maze Problem

Now you know conceptually how to solve it. We'll code it together step by step. This will prepare you to writing your sudoku solver.

In this class and future classes, I teach you exactly the way I learned it. I guide you throughout your whole programming journey, and depending on if you want to do Data Science, Software Engineering, or even Web Development, I will make sure to teach it the right way.

20 lessons
Run time
4h 41m


  • Own a computer with a web browser
  • Know basic arithmetics

Enroll Today

JomaClass is $8/month (billed annually)

Get Access

Get free JomaClass videos

Enter your email and we’ll send you Programming Fundamentals videos and some samples of our favorite courses.

Recommended for:

Data Scientists

Data Science is a combination of computer science and statistics. Python is one of the most popular programming languages due to packages like NumPy, PyTorch, Pandas, and Tensorflow. All essential from analytics to machine learning.

Computer Science

If you're planning on becoming a CS student in university, you'll have to get a firm grasp of programming fundamentals. Don't let it drag you down, but rather be your strength, so you can focus on learning the theory. Going through this course will make your Data Structure and Algorithms class a lot easier.

Full Stack Web Development

Popular web frameworks like Django and Flask are in Python, and knowing the fundamentals will help you develop faster and more efficiently.

What you'll learn in this class:

  • Fundamental understanding of programming using Python 3
  • Simple data structures and how to leverage them fully
  • Learning how to learn: become an independent programmer
  • Project Based: Build a Sudoku Solver from scratch!

Included in this class:

  • 20 high quality on-demand videos
  • 10 Quizzes and 5 Assignments with feedback
  • 1 Final Project: Build a Sudoku Solver
  • Access to your instructor to answer all your questions about the course content

Apply what you've learned with Assignments

The assignments will allow you to apply what you've learned throughout the course. They are problems meant to challenge you, allowing you to develop resilience for solving difficult problems.

Try it yourself, download here.

Unlock all courses by joining JomaClass

Watch videos from other classes

What's in every JomaClass subscription?

Get Access
  • Access to Joma for mentorship through private forum
  • All 80+ high quality videos from other classes
  • New videos added every week

Frequently Asked Questions

Think of it like a Patreon subscription where you get access to all my educational videos on programming, computer science, and data science. I make sure to teach the right things in the right order since a lot of students tend to give up or they don't build the right foundations.

I post multiple videos weekly and I'm constantly working on a new course. In addition, you have full access to a private group where you can interact with me and other students in the community.

A typical course will have around 20 video lessons.


50% Complete

Unlock All Videos and Courses

Create your account to get started.