Last updated 6/2022Course Language EnglishCourse Caption Course Length 09:34:41 to be exact 34481 seconds!Number of Lectures 109
This course includes:
9.5 hours hours of on-demand video
Full lifetime access
Access on mobile and TV
Certificate of completion
4 additional resources
Write simple Python programs that read from the keyboard and write text into a console
Write more complex programs with conditional execution and repetition structures
Improve code reusability through the use of functions and recursion
Improve code efficiency through the choice of ppropriate data structures (tuples, lists, dictionaries)
Apply the principles of object-oriented programming
This course serves as an introduction to Python programming (no previous background needed). Whether you’re a high school student ahead of the game, a college student in search of additional support, a recent graduate preparing for a technical interview, an active professional seeking to expand your skill set, or just an amateur techie, this course is your ideal first exposure to the world of Python programming.In this course, I’ve selected the most relevant topics to quickly get you started with Python. We’ll start with the basics: interaction with the user, arithmetic computations, conditional execution, loops, and functions. And we’ll also delve into more advanced topics: lists, tuples, dictionaries, file operations, and object-oriented programming. But most importantly: I’ll help you develop a programmer mindset by training your algorithmic thinking – an essential still that will help you quickly learn new programming languages in the future if you need to.In most lessons of this course, I’ll be proposing interactive programming exercises, where I’ll ask you to pause the video and work on it, as I later guide through a step-by-step solution. You’ll work with a web-based code editor, where you’ll be able to write and test your programs, without installing any third-party software in your system; all you need is your web browser.Who this course is for:Beginnger tech enthusiasts curious about the world of computer programming
Sections are minimized for better readability, click the section title to view the course content
16 Lectures | 01:14:38
We’ll use this first lesson to introduce our live programming environment. First, I’ll show what it looks like to see a Python program executing, and how you, as a user of your own program, can interact with it. Then, I’ll introduce our interactive Python code editor, available here:
You'll be able to use the code editor to write and run your first program – one that simply prints a greeting message on the screen. After signing up on Computer Science Camp, you'll be able to create new Python projects and test your programs, as instructed on the lesson videos.
The code editor
A "hello world" program
In this lesson we’ll introduce the concept of a “variable” as the a basic tool to save data in our program memory. We’ll then show how to leverage variables as a temporary storage for sequences of simple arithmetic computations. And we’ll conclude this lesson with a simple strategy to document our code through Python comments.
Reading keyboard input
In this lesson, we cover basic user interaction in Python. Our hands-on work consists in creating a couple of programs that ask the user for an input through the keyboard. We then convert this input into different data types for further processing. The lesson concludes with some remarks about Python runtime errors, also known as exceptions.
Data type conversion
This lesson covers three types of built-in Python operators in detail: arithmetic, relational, and logical operators. We’ll see how to use these operators to increase the complexity and power of our computations, and you’ll practice their use by designing a simple interactive calculator.
In this lesson we study how Python extends its built-in functionality with external modules, and how your program can access these modules with special "import" statements. Our hands-on work includes two problems that focus on Python's “math” module.
Problem: Distance between points
Problem: Point coordinates in a circle
18 Lectures | 01:12:20
The 'if' block
So far, all of our Python programs have executed statements sequentially. In a program that has 3 lines of code, we expect line 1 to run first, then line 2, then line 3. While this execution model has already allowed us to introduce some level of interaction with the user, the real power of a programming language comes when you can alter the sequential control flow of your program by deciding what lines of code to execute, not to execute, or to execute multiple times based on certain conditions. In this lesson we introduce conditional execution as the most basic form of non-sequential control flow in Python.
The 'if-else' block
The 'if-elif-else' block
Problem: Even-odd number detector
In the previous lesson we’ve introduced three variations of the ‘if’ statement as a simple mechanism to control what code to execute based on conditions given as Boolean expressions. In this lesson, we’ll practice conditional execution with some interactive exercises. First, I’ll show you two examples for which you and I will be writing code together, and then I’ll propose a third problem that I’ll ask you to complete before I present my proposed solution.
Problem: Triangle of sticks
Problem: Conditional calculator
In this lesson, I'll discuss two methods of indenting our code when using control flow, based on tabs and spaces. I'll present the advantages and disadvantages of each approach, and the built-in support for tab-based indentation in our code editor.
The 'while' loop
In this lesson, I’ll introduce the ‘while’ loop as the most basic type of repetition control flow structure in Python. I’ll also use this lesson to define the concept of an “algorithm”, which will stay with us throughout the course, together with some preliminary algorithmic design guidelines using flowcharts.
Algorithms and flowcharts
Problem: Iterative square root
The 'break' statement
In this lesson I’ll introduce two Python keywords, called ‘break’ and ‘continue’, that allow us to alter the natural behavior of a loop, offering additional flexibility to control the repeated sequences of statements in our code. I’ll say a word or two about how to avoid getting stuck in infinite loops. And as always, we’ll conclude with a practice problem for you to internalize this new material.
The 'continue' statement
Problem: Calculation of an average
In this lesson, I’ll provide a brief introduction to Python lists as a feature that allows us to group multiple values into one variable, and I’ll focus on a control flow structure called a ‘for’ loop, that allows us to conveniently traverse these sequences.
The 'for' loop
The 'range' function
Problem: Drawing a triangle
20 Lectures | 01:40:13
In the present chapter of this course will cover custom functions in detail: what is their main purpose, why are they necessary as the complexity of programs increases, how can we manage errors across functions, and more. In this lesson we’ll focus on the basics: how you can define your own functions and invoke them later from your main program.
Problem: Printing a times table
In this lesson we’ll increase our ability to communicate data between custom functions and a main program through the use of what we call “fruitful functions”. As a practice problem, we’ll work on an algorithm that translates numbers from decimal to binary (or base 2), as we leverage a fruitful function to pack this functionality. I’ll conclude with some remarks about the lifetime of variables within and across functions – what we call the “scope” of a variable.
Problem: Base conversion
In this lesson I’ll introduce three new syntactic features related with function definitions and invocations that provide additional flexibility when dealing with argument passing. These features are called ‘default arguments’, ‘keyword arguments’, and ‘arbitrary arguments’.
Problem: Printing arbitrary arguments
Recursion: Factorial calculation
Recursion is a method of solving a problem where its solution depends on solutions to smaller instances of the same problem. In Python we can write our own recursive functions, characterized by the fact that they invoke themselves within their own code. In this lesson, I’ll introduce this interesting idea bit by bit, by revisiting a familiar numeric algorithm —the calculation of the factorial of a number—, and I’ll show a detailed analysis of a recursive function that solves it.
Recursion: Trace of factorial calculation
In this lesson, I’ll continue discussing recursion through another numeric algorithm – the calculation of Fibonacci numbers. In the second part of the lesson, it’ll be time for you to get to work and design your own recursive function: one that identifies symmetric strings, also known as ‘palindromes’.
Problem: Identifying palindromes
In this lesson we’ll talk about a specific kind of Python errors called ‘exceptions’. We’ll review some known situations in which such exceptions can occur. Then we’ll learn how to prevent exceptions from terminating a program, as we intercept them and handle them more gracefully. We’ll see how we can even raise our own custom exceptions. And finally, I’ll propose a problem where you’ll practice all these new concepts.
Problem: Handling exceptions
13 Lectures | 01:48:47
Container data types
In this lesson, I'll present some introductory concepts for this chapter related with data types, with a focus on container data types. I'll present a formal framework to assess the computational cost of operations on containers, and I'll show two syntactic features used to manage them, based on operators and functions.
Operators, built-in functions, and methods
Basic list operations
In this lesson, we’ll begin our deep dive into container data types by discussing Python lists. We’ll talk about the basic operations that allow us to declare, access, and manage lists, and I’ll propose an introductory problem for you to get your first hands-on experience with a list.
Problem: Reading a list from the user
In this lesson, we will expand our knowledge on Python lists by introducing a more advanced set of operators, built-in functions, and methods used to manage these structures. With these additional tools you will be able to design more advanced algorithms that rely on the use of lists.
Representation of lists
In this lesson, we’ll delve into some details about how lists are internally represented, which will provide necessary insights on how to use lists as function arguments and return values. In the second part of this lesson, we’ll start with the first of a series of practice problems, where you’ll need to apply all concepts related with lists studied so far.
Problem: Finding the minimum value
Problem: Sorted insertion
In this two-part lesson, you'll be working on two different problems related with lists, where you'll have the chance to practice the concepts studied in previous lessons.
Problem: Deletion by content
Problem: Minimum frequency
In this lesson you'll be working on two additional problems related with lists, with a level of completely that is slightly higher than the problems you've encountered so far.
Problem: Second maximum element
5 Lectures | 45:09
Working with tuples
In this lesson I’ll introduce a container data type, similar to a list, called a ‘tuple’. We’ll look at the syntax used to define and access tuples, the contexts in which you’ll want to use them, and the operators and functions related with them.
Applications of tuples
Tuple operators and functions
Problem: Statistics of a data set
In this lesson, I'll propose a problem for you to practice the use of tuples as a way of returning multiple values in a function.
Problem: Sorting a list of tuples
In this lesson, I'll propose a problem where you'll need to process a data set organized as a list of tuples by sorting it in ascending order.
9 Lectures | 01:02:09
Working with dictionaries
In this lesson, I’ll introduce Python dictionaries as powerful, widely used container data structures. We’ll learn how to create, modify, and query dictionaries, and I’ll discuss the uniquely efficient cost of these operations.
Basic dictionary operations
Problem: Managing a dictionary
In this lesson, I’ll propose an introductory problem to practice the creation of a dictionary followed by runtime insertions and updates.
Dictionary operators and functions
In this lesson I’ll expand our ability to manage dictionaries by presenting additional operators, built-in functions, and methods available for them.
As I was describing the operations supported by dictionaries, I've emphasized the ability of searches, insertions, and deletions to operate with *constant* cost. This means that, whether a dictionary has ten, one thousand, or one million key-value pairs in it, searching for one will take the same amount of time. In this lesson I'll describe the magic used by Python under the covers in order to accomplish this type of efficient behavior in dictionaries.
Strings as keys
Problem: Merging dictionaries
9 Lectures | 32:41
Strings occur frequently in programs, and Python provides a variety of tools to process them. Processing a string may involve converting it to uppercase, finding occurrences of a sub-string in it, or formatting it before printing it into the terminal, just to name a few examples. This chapter will be dedicated to more advanced Python features to perform these tasks and more.
Converting any data type into a string is useful when presenting that information to the user on the console through ‘print’ statements, and here we face the opportunity to format those strings in the most user-friendly way possible. In this lesson, we’ll study the tools provided by Python to conveniently format strings with the desired alignment, padding, and other layout preferences.
Problem: Printing a table
String operators and functions
In this lesson I'll present a list of frequently used operators and functions related with strings, which will complement slicing, formatting, concatenation, and other features studied before.
9 Lectures | 37:31
Files are named locations on disk used to store information. Here, the term 'disk' may refer to a hard drive or removable storage, whether it is physically present in your computer or in the cloud. This chapter will deal with those Python features dedicated to manage files.
Writing to a file
The 'with' block
Reading from a file
In this lesson we'll focus on reading information from a pre-existing file, using different syntactic constructs available in Python for this purpose. We'll study how to access file content sequentially, and how to navigate to different positions of our files.
Reading line by line
Files and directories
In this lesson we'll talk about the organization of a file system in a computer, focusing on Python's support to manage files and directories. We'll be exploring these features by running a few test programs together.
10 Lectures | 41:13
Classes and objects
The programs we've written so far stick to a programming model called "procedural programming". With this model, you structure your program as a set of steps, in the form of functions and code blocks, which are executed sequentially. In this chapter, we'll focus on an alternative programming paradigm knows as "object-oriented programming". With this model, your program structure revolves around software artifacts called "objects", which are meant to model real-world concrete things, such as a car, a dog, or a person, together with their properties and behaviors.
Problem: Additional methods
Special methods, also called 'dunder methods', are a particular kind of methods supported in Python. They are characterized by their names being surrounded by a double underscore (for example, __str__). What makes special methods special is the fact that they may be invoked automatically by Python under certain circumstances. In this lesson, we'll take a look at several special methods and their behavior.
String conversion method
Problem: Design class 'Point'
Parent and child classes
Inheritance is a mechanism by which a Python class can incorporate (or inherit) all methods declared in another class. In this lesson we'll study the syntax used in Python to inherit class methods, together with several examples to illustrate the application of this useful technique.
The 'super' keyword
(51 course ratings)
JOIN OUR WHATSAPP GROUP TO GET LATEST COUPON AS SOON AS UPDATED
FAQ: Udemy Free course Most frequent questions and answers
Does Udemy offer Free Udemy coupons?
Yes, Udemy is the largest online education platform, with the broadest selection of video-on-demand courses and qualified instructors available to meet your needs. At theprogrammingbuddy.club we curate the latest udemy coupons, their expiry, and the number of uses left of these udemy coupons.
How to get free Udemy courses?
There are two ways to get free Udemy courses:
Go to udemy.com and search for your desired course category. Then select free from the filter options.
You can also get paid courses for free if you have a coupon. You can head to theprogrammingbuddy.club, where you can get a daily udemy paid course for free.
How to get Udemy Certificates for free?
Udemy offers certification on completion of each course. In order to receive a certificate of completion from Udemy, you need to complete your course 100%. There is a simple hack, you can open a video and jump on the timeline to complete a lecture.
To download the certificate from Udemy, you need to head over to your account on a desktop browser. Udemy certificates can't be accessed on the mobile app.
Do Udemy courses expire?
No, once you enroll, you will have lifetime access to the course. You can complete the course on your schedule.
Why are the Udemy instructors giving away free Udemy Coupons?
Every instructor has worked for hours on each of their courses. As new courses get launched, the instructors have no way to get their course in front of an audience to get some feedback. So, instructors share free coupons for their courses to get feedback from the students. We attheprogrammingbuddy.club work with these instructors to get their courses available to our buddies.
Is Udemy safe to use?
Yes, payments on Udemy are safe. It is no different than paying for other services on an application or website and inputting your payment information before receiving your goods. Just be sure to keep your account secure, do not share your udemy accounts.
Can Udemy courses get you a job?
Earning a skill is more valuable than earning a job these days. Skills are your most valuable asset. They can help you qualify for jobs you want and get promoted to more advanced positions within your organization. Unfortunately, it is difficult for many people to balance taking courses with work and family obligations. We have had many students, who have taken just Udemy courses, started a job as well as started freelancing with the skills they have learned.