Prof. Rafael Ubal brings his methods and tools from his 10+ years of experience teaching in prestigious universities. | Discount Coupon for Udemy Course
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
Course Content:
Sections are minimized for better readability, click the section title to view the course content
16 Lectures | 01:14:38
The console
03:23
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
01:26
A "hello world" program
03:04
Python errors
02:05
Variables
08:06
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.
Expressions
03:54
Code comments
03:15
Reading keyboard input
08:30
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
05:01
Python exceptions
03:09
Arithmetic operators
10:15
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.
Relational operators
02:27
Logical operators
07:09
Importing modules
04:08
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
03:54
Problem: Point coordinates in a circle
04:52
18 Lectures | 01:12:20
The 'if' block
04:03
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
02:40
The 'if-elif-else' block
04:08
Problem: Even-odd number detector
03:31
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
03:15
Problem: Conditional calculator
05:56
Indentation
04:59
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
04:51
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
05:25
Problem: Iterative square root
05:43
The 'break' statement
03:00
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
02:01
Infinite loops
02:46
Problem: Calculation of an average
04:40
Lists
02:18
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
02:38
The 'range' function
05:20
Problem: Drawing a triangle
05:06
20 Lectures | 01:40:13
Defining functions
06: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.
Function arguments
03:07
Problem: Printing a times table
03:51
Fruitful functions
07:36
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
08:45
Variable scopes
02:49
Default arguments
03:28
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’.
Keyword arguments
03:05
Arbitrary arguments
04:21
Problem: Printing arbitrary arguments
05:37
Recursion: Factorial calculation
05:43
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
04:12
Call trees
01:10
Stack overflow
04:17
Fibonacci numbers
05:52
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
09:15
Exceptions
04:35
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.
Intercepting exceptions
04:54
Exception propagation
05:35
Problem: Handling exceptions
05:48
13 Lectures | 01:48:47
Container data types
02:27
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.
Computational cost
13:32
Operators, built-in functions, and methods
02:51
Basic list operations
12:43
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
04:36
List operators
09:28
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.
List functions
10:01
Representation of lists
07:37
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
05:34
Problem: Sorted insertion
11:44
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
07:57
Problem: Minimum frequency
09:37
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
10:40
5 Lectures | 45:09
Working with tuples
03:56
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
08:11
Tuple operators and functions
06:41
Problem: Statistics of a data set
14:00
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
12:21
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
04:59
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
10:53
Problem: Managing a dictionary
05:37
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
10:17
In this lesson I’ll expand our ability to manage dictionaries by presenting additional operators, built-in functions, and methods available for them.
Direct-access tables
02:32
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.
Hash tables
06:37
Collisions
07:00
Strings as keys
03:46
Problem: Merging dictionaries
10:28
9 Lectures | 32:41
String declaration
03:02
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.
Escaped characters
03:11
String slices
03:05
String composition
02:16
String formatting
03:02
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.
Alignment
01:41
Floating-point formatting
01:18
Problem: Printing a table
04:19
String operators and functions
10:47
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
Managing files
04:22
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
04:56
The 'with' block
02:17
Reading from a file
04:52
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
05:07
Positioning
03:02
Files and directories
02:44
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.
Managing directories
04:53
Managing files
05:18
10 Lectures | 41:13
Classes and objects
04:22
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.
Attributes
01:42
Methods
04:59
Problem: Additional methods
04:34
Constructors
04:20
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
02:35
Problem: Design class 'Point'
04:39
Parent and child classes
04:58
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.
Overriding methods
04:27
The 'super' keyword
04:37
4.4
(51 course ratings)
1
0/51
2
0/51
3
3/51
4
15/51
5
33/51
JOIN OUR WHATSAPP GROUP TO GET LATEST COUPON AS SOON AS UPDATED
If you like to get inspired by great web projects, you should check out Made with Javascript. If you have a project that you wish to share with the world, feel free to submit your project on Made with Javascript Club website.
Free Online Tools And Converters for your use
URL Encoder
Input a string of text or a URL and encode the entered string
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.