Saturday, 11 November 2023

20 extremely useful single-line Python codes

 





#!/usr/bin/env python

# coding: utf-8


# # 20 extremely useful single-line Python codes


# #  1.  Swap Variables:


# In[ ]:



a, b = b, a



# # 2. Find Maximum Element in a List:


# In[ ]:



max_element = max(lst)



# # 3. Find Minimum Element in a List:


# In[ ]:



min_element = min(lst)



# # 4. List Comprehension:


# In[ ]:



squared_numbers = [x**2 for x in range(10)]



# # 5. Filter List Elements:


# In[ ]:



even_numbers = list(filter(lambda x: x % 2 == 0, lst))



# # 6. Map Function:


# In[ ]:



doubled_numbers = list(map(lambda x: x * 2, lst))



# # 7. Sum of List Elements:


# In[ ]:



total = sum(lst)



# # 8. Check if All Elements in a List are True:


# In[ ]:



all_true = all(lst)



# # 9. Check if Any Element in a List is True:


# In[ ]:



any_true = any(lst)



# # 10. Count Occurrences of an Element in a List:


# In[ ]:



count = lst.count(element)



# # 11. Reverse a String:


# In[ ]:



reversed_str = my_str[::-1]



# # 12. Read a File into a List of Lines:


# In[ ]:



lines = [line.strip() for line in open('file.txt')]



# # 13. Inline If-Else:


# In[ ]:



result = "even" if x % 2 == 0 else "odd"



# # 14. Flatten a Nested List:


# In[ ]:



flat_list = [item for sublist in nested_list for item in sublist]



# # 15. Find the Factorial of a Number:


# In[ ]:



factorial = 1 if n == 0 else functools.reduce(lambda x, y: x * y, range(1, n+1))



# # 16. List Unique Elements:


# In[ ]:



unique_elements = list(set(lst))



# # 17. Execute a Function for Each Element in a List:


# In[ ]:



result = list(map(lambda x: my_function(x), lst))



# # 18. Calculate the Average of a List:


# In[ ]:



average = sum(lst) / len(lst) if len(lst) > 0 else 0



# # 19. Convert a String to a List of Characters:


# In[ ]:



char_list = list("hello")



# # 20. Find Common Elements Between Two Lists:


# In[ ]:



common_elements = list(set(lst1) & set(lst2))



# In[ ]:


Friday, 10 November 2023

Get Started with Stacks and Queues in Python

 


Stacks and queues are fundamental data structures used in computer science to manage and organize data. Let's get started with stacks and queues in Python.

Stacks:

A stack is a Last In, First Out (LIFO) data structure, where the last element added is the first one to be removed. Think of it like a stack of plates - you can only take the top plate off.

Implementation in Python:

class Stack:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return len(self.items) == 0

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()
        else:
            raise IndexError("pop from an empty stack")

    def peek(self):
        if not self.is_empty():
            return self.items[-1]
        else:
            raise IndexError("peek from an empty stack")

    def size(self):
        return len(self.items)

Example usage:

stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)

print("Stack:", stack.items)

print("Pop:", stack.pop())
print("Stack after pop:", stack.items)

print("Peek:", stack.peek())
print("Stack size:", stack.size())

Queues:

A queue is a First In, First Out (FIFO) data structure, where the first element added is the first one to be removed. Think of it like a queue of people waiting in line.

Implementation in Python:

class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return len(self.items) == 0

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if not self.is_empty():
            return self.items.pop(0)
        else:
            raise IndexError("dequeue from an empty queue")

    def front(self):
        if not self.is_empty():
            return self.items[0]
        else:
            raise IndexError("front from an empty queue")

    def size(self):
        return len(self.items)


Example usage:

queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)

print("Queue:", queue.items)

print("Dequeue:", queue.dequeue())
print("Queue after dequeue:", queue.items)

print("Front:", queue.front())
print("Queue size:", queue.size())

These basic implementations should get you started with stacks and queues in Python. Feel free to modify and expand upon them based on your specific needs.

Programming for Everybody (Getting Started with Python)

 


What you'll learn

Install Python and write your first program

Describe the basics of the Python programming language

Use variables to store, retrieve and calculate information

Utilize core programming tools such as functions and loops

There are 7 modules in this course

This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python.  The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course. This course will cover Chapters 1-5 of the textbook “Python for Everybody”.  Once a student completes this course, they will be ready to take more advanced programming courses. This course covers Python 3.

Join - Programming for Everybody (Getting Started with Python)

Python Coding challenge - Day 65 | What is the output of the following Python code?

 


Code - 

def add(a, b):

    return a + 5 , b + 5

print(add(10,11))

Solution - 

The add function takes two parameters, a and b, and returns a tuple where the first element is the sum of a + 5 and the second element is b + 5.

When you call add(10, 11), it will return a tuple where the first element is 10 + 5 (which is 15) and the second element is 11 + 5 (which is 16). Therefore, the output of print(add(10, 11)) will be: (15, 16)



Thursday, 9 November 2023

Computer Vision with Embedded Machine Learning (Free Course)

 


What you'll learn

How to train and develop an image classification system using machine learning

How to train and develop an object detection system using machine learning

How to deploy a machine learning model to a microcontroller

There are 3 modules in this course

Computer vision (CV) is a fascinating field of study that attempts to automate the process of assigning meaning to digital images or videos. In other words, we are helping computers see and understand the world around us! A number of machine learning (ML) algorithms and techniques can be used to accomplish CV tasks, and as ML becomes faster and more efficient, we can deploy these techniques to embedded systems.

This course, offered by a partnership among Edge Impulse, OpenMV, Seeed Studio, and the TinyML Foundation, will give you an understanding of how deep learning with neural networks can be used to classify images and detect objects in images and videos. You will have the opportunity to deploy these machine learning models to embedded systems, which is known as embedded machine learning or TinyML.

Familiarity with the Python programming language and basic ML concepts (such as neural networks, training, inference, and evaluation) is advised to understand some topics as well as complete the projects. Some math (reading plots, arithmetic, algebra) is also required for quizzes and projects. If you have not done so already, taking the "Introduction to Embedded Machine Learning" course is recommended.

This course covers the concepts and vocabulary necessary to understand how convolutional neural networks (CNNs) operate, and it covers how to use them to classify images and detect objects. The hands-on projects will give you the opportunity to train your own CNNs and deploy them to a microcontroller and/or single board computer. 

Join free - Computer Vision with Embedded Machine Learning

Python Coding challenge - Day 64 | What is the output of the following Python code?

 

Code- 

s = set()
s.update('hello', 'how', 'are', 'you?')
print(len(s))

Solution - 

The above code counts the total number of unique characters in the given strings. Here's the breakdown:

Create an empty set s:

s = set()

This line initializes an empty set s.

Update the set with multiple string arguments using the update method:

s.update('hello', 'how', 'are', 'you?')

In this line, you're using the update method to add the characters from the strings 'hello', 'how', 'are', and 'you?' to the set s.

Print the length of the set:

print(len(s))

This line prints the length (number of elements) of the set s using the len function. Since each character is considered unique, the length will be the total number of unique characters in the combined strings.

The output will be 10 because it counts the total number of unique characters in the provided strings. Thank you for pointing this out.


Wednesday, 8 November 2023

Mastering Python for Artificial Intelligence: Learn the Essential Coding Skills to Build Advanced AI Applications (Free PDF)


 

Are you fascinated by the possibilities of Artificial Intelligence but feel limited by your current coding skills? Do you dream of creating advanced AI applications but need help finding the right resources?

Look no further! "Mastering Python for Artificial Intelligence" is your gateway to learning the essential coding skills that will empower you to build cutting-edge AI applications.

Whether you're a beginner or an experienced programmer, this book will guide you through Python's intricacies and equip you with the knowledge to unleash the true potential of AI.


Mastering Python for Artificial Intelligence" offers an innovative approach encompassing three well-defined principles, ensuring an empowering learning journey for readers.

1. Practicality: The book strongly believes in the value of learning by doing. Unlike many other resources, "Mastering Python for Artificial Intelligence" immediately provides the outputs of ALL the examples. Readers won't have to wait to test the code on their computers or wonder if they are on the right track. This practical approach ensures hands-on experience, reinforcing knowledge and boosting confidence.

2. Simplicity: Learning complex subjects should be approached step by step, and "Mastering Python for Artificial Intelligence" embraces this principle. Each concept is broken down into simple and easily digestible steps. The book aims to make learning efficient and enjoyable, allowing readers to grasp a multitude of topics in the shortest possible time. Clear explanations and examples accompany the content, ensuring rapid progress and understanding.

3. Synthesis: Recognizing that starting with Python can be overwhelming, this book takes a thoughtful approach. Carefully selected topics provide a comprehensive introduction to Python, offering a solid foundation without overwhelming the reader. By presenting essential concepts in a structured manner, the book ensures broad exposure to Python and its applications in Artificial Intelligence.


Here's a sneak peek into what you'll discover:

• Gain a solid understanding of Python's notable features and why it is the preferred language for AI development.

• Learn the step-by-step process of Python IDE installation, ensuring you have the optimal environment for AI programming.

• Explore Python programming fundamentals, including variables, statements, operators, and flow control, laying the groundwork for AI development.

• Dive into the world of data types, such as numeric, sequence, string, list, tuple, set, and dictionary, and understand how they play a crucial role in AI applications.

• Unleash the potential of Python classes and objects and understand how they form the building blocks of AI models and algorithms.

• Discover the wealth of Python libraries and frameworks available for AI development, such as TensorFlow, Keras, scikit-learn, and more.

• Learn how to preprocess data, train AI models, and evaluate their performance using Python's powerful AI libraries.

• Get hands-on experience with practical coding examples and exercises, allowing you to apply your newfound knowledge and solidify your skills.

• The SOLUTIONS to the exercises (but be sure to look at them only after first trying to solve the exercises on your own)

• BONUS: EMPOWERING YOUR LIFE: Harnessing the Power of Chat GPT and Python to Create Your Personal Assistant (scan the QR code inside the book)

Buy - Mastering Python for Artificial Intelligence: Learn the Essential Coding Skills to Build Advanced AI Applications

PDF      -  

Tuesday, 7 November 2023

Python Coding challenge - Day 63 | What is the output of the following Python code?

 


Code - 

l=[1, 0, 2, 0, 'hello', '', []]

print(list(filter(bool, l)))

Solution - 

Step 1: Define a list l with various elements:

l = [1, 0, 2, 0, 'hello', '', []]

This list contains a mix of integers, strings, an empty string, and an empty list.


Step 2: Use the filter() function with bool as the filtering function:

filtered_list = filter(bool, l)

In this step, the filter() function is applied to the list l. The bool function is used as the filtering function. The bool function converts each element of the list into a Boolean value (True or False) based on its truthiness. Elements that evaluate to True are kept, and elements that evaluate to False are removed.


Step 3: Convert the filtered result into a list:

filtered_list = list(filtered_list)

The filter function returns an iterator, so to get the final result as a list, we use the list() constructor to convert the filtered result into a list.


Step 4: Print the filtered list:

print(filtered_list)

This line prints the filtered list to the console.


Step 5: The output is as follows:

[1, 2, 'hello']

In the filtered list, all elements that evaluate to False (0, empty string, and empty list) have been removed. The resulting list contains only the elements that are considered "truthy" according to Python's boolean conversion rules.

SQL for Data Science


What you'll learn

Identify a subset of data needed from a column or set of columns and write a SQL query to limit to those results.

Use SQL commands to filter, sort, and summarize data.

Create an analysis table from multiple queries using the UNION operator.

Manipulate strings, dates, & numeric data using functions to integrate data from different sources into fields with the correct format for analysis.

There are 4 modules in this course

As data collection has increased exponentially, so has the need for people skilled at using and interacting with data; to be able to think critically, and provide insights to make better decisions and optimize their businesses. This is a data scientist, “part mathematician, part computer scientist, and part trend spotter” (SAS Institute, Inc.). According to Glassdoor, being a data scientist is the best job in America; with a median base salary of $110,000 and thousands of job openings at a time. The skills necessary to be a good data scientist include being able to retrieve and work with data, and to do that you need to be well versed in SQL, the standard language for communicating with database systems.

This course is designed to give you a primer in the fundamentals of SQL and working with data so that you can begin analyzing it for data science purposes. You will begin to ask the right questions and come up with good answers to deliver valuable insights for your organization. This course starts with the basics and assumes you do not have any knowledge or skills in SQL. It will build on that foundation and gradually have you write both simple and complex queries to help you select data from tables.  You'll start to work with different types of data like strings and numbers and discuss methods to filter and pare down your results. 

You will create new tables and be able to move data into them. You will learn common operators and how to combine the data. You will use case statements and concepts like data governance and profiling. You will discuss topics on data, and practice using real-world programming assignments. You will interpret the structure, meaning, and relationships in source data and use SQL as a professional to shape your data for targeted analysis purposes. 

Although we do not have any specific prerequisites or software requirements to take this course, a simple text editor is recommended for the final project. So what are you waiting for? This is your first step in landing a job in the best occupation in the US and soon the world!

Join - SQL for Data Science

Python for Everybody Specialization

 


Learn to Program and Analyze Data with Python. Develop programs to gather, clean, analyze, and visualize data.

Specialization - 5 course series

This Specialization builds on the success of the Python for Everybody course and will introduce fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. In the Capstone Project, you’ll use the technologies learned throughout the Specialization to design and create your own  applications for data retrieval, processing, and visualization.


Join - Python for Everybody Specialization


Introduction to Python Programming (Free Course)

 


Why Python Programming

Welcome to Introduction to Python! Here's an overview of the course.

Data Types and Operators

Familiarize yourself with the building blocks of Python! Learn about data types and operators, built-in functions, type conversion, whitespace, and style guidelines.

Data Structures

Use data structures to order and group different data types together! Learn about the types of data structures in Python, along with more useful built-in functions and operators.

Control Flow

Build logic into your code with control flow tools! Learn about conditional statements, repeating code with loops and useful built-in functions, and list comprehension

Functions

Learn how to use functions to improve and reuse your code! Learn about functions, variable scope, documentation, lambda expressions, iterators, and generators.

Scripting

Setup your own programming environment to write and run Python scripts locally! Learn good scripting practices, interact with different inputs, and discover awesome tools.

Advanced Topics

In this lesson we cover some advanced topics of iterators and generators. You are not required to complete this but we have provided these to give you a taste of these.

Join - Introduction to Python Programming

Monday, 6 November 2023

Python Coding challenge - Day 62 | What is the output of the following Python code?

 


Code - 

def multipliers():
    return [lambda x, i=i: i * x for i in range(4)]
result = [m(2) for m in multipliers()]
print(result)

Solution -

The code will correctly generate a list of lambda functions that multiply a given value x by the corresponding value of i from the range (0, 1, 2, 3) and then call each of these lambda functions with the argument 2. The correct output will be:

[0, 2, 4, 6]

Here's how it works:

The multipliers function returns a list of lambda functions where each lambda function takes two arguments, x and i. The default argument i=i captures the current value of i from the loop when the lambda function is created.

The list comprehension [m(2) for m in multipliers()] iterates through each lambda function created in the multipliers list and calls it with 2 as the argument. Each lambda function multiplies 2 by its respective i value from the range, resulting in the output [0, 2, 4, 6].

Python for Data Science: The Ultimate Guide for Beginners. Machine Learning Tools, Concepts and Introduction. Python Programming Crash Course

 


Are you looking for an ultimate python step-by step guide in an efficient way? Do you want to implement a variety of supervised and unsupervised learning algorithms and techniques quickly and accurately?

If you cannot wait to explore the fundamental concepts and entire process on python data science, listen to this audiobook!

You will start by learning the basics of working with Python and the wide variety of data science packages and extensions. You will be guided on how to setup you work environment before diving into the world of data science. In each section you will learn a great deal of theory backed up by practical examples that contain well-explained Python code. Once you have the fundamentals down, you will get to the core of data science learning algorithms and techniques that are industry-standard in this field.

Studying data science and working with supervised and unsupervised algorithms, as well as neural networks, doesn’t have to be as complicated as it sounds. Explore the world of data science using clear, simple, real-world examples and enjoy the power and versatility of Python and machine learning algorithms!

You will explore:

  • How to install Python and setup a scientific distribution.
  • The most popular Python packages and library used in data science and machine learning, such as Scikit-learn, Numpy, Matplotlib, and Pandas.
  • Data munging with pandas and how to import and prepare your dataset for preprocessing and exploration.
  • How to further prepare your data for the data science pipeline by fully understanding concepts such as data exploration, dimensionality reduction, and outlier detection.
  • How to implement supervised and unsupervised machine learning algorithms such as regression algorithms, the Naïve Bayes classifier, K-nearest neighbors, support vector machines, decision trees, and K-means clustering.
  • Neural networks and how to work with feedforward and recurrent networks, with a focus on the restricted Boltzmann machine.
  • Big Data and why it is the path for the future in data science.
  • Even if python for data science is a brand new field to you, this audiobook is the key to introduce you into the python world. Python for Data Science can guide you step-by-step through the entire learning process.

Python Programming for Beginners: An Introduction to the Python Computer Language and Computer Programming

 

If you want to learn how to program in Python, but don't know where to start read on.

Knowing where to start when learning a new skill can be a challenge, especially when the topic seems so vast. There can be so much information available that you can't even decide where to start. Or worse, you start down the path of learning and quickly discover too many concepts, commands, and nuances that aren't explained. This kind of experience is frustrating and leaves you with more questions than answers.

Python Programming for Beginners doesn't make any assumptions about your background or knowledge of Python or computer programming. You need no prior knowledge to benefit from this book. You will be guided step by step using a logical and systematic approach. As new concepts, commands, or jargon are encountered they are explained in plain language, making it easy for anyone to understand.

Here is what you will learn by listening to Python Programming for Beginners:

  • When to use Python 2 and when to use Python 3.
  • How to install Python on Windows, Mac, and Linux. Screenshots included.
  • How to prepare your computer for programming in Python.
  • The various ways to run a Python program on Windows, Mac, and Linux.
  • Suggested text editors and integrated development environments to use when coding in Python.
  • How to work with various data types including strings, lists, tuples, dictionaries, booleans, and more.
  • What variables are and when to use them.
  • How to perform mathematical operations using Python.
  • How to capture input from a user.
  • Ways to control the flow of your programs.
  • The importance of white space in Python.
  • How to organize your Python programs - Learn what goes where.
  • What modules are, when you should use them, and how to create your own.
  • How to define

Get it - Python Programming for Beginners: An Introduction to the Python Computer Language and Computer Programming

Python - The Bible: 3 Manuscripts in 1 Book: Python Programming for Beginners - Python Programming for Intermediates - Python Programming for Advanced

 


Python Programming for Beginners - Learn the Basics of Python in 7 Days!

Here's what you'll learn from this book:

  • Introduction 
  • Understanding Python: A Detailed Background 
  • How Python Works 
  • Python Glossary 
  • How to Download and Install Python 
  • Python Programming 101: Interacting with Python in Different Ways 
  • How to Write Your First Python Program 
  • Variables, Strings, Lists, Tuples, Dictionaries 
  • About User-Defined Functions 
  • How to Write User-Defined Functions in Python 
  • About Coding Style 
  • Practice Projects: The Python Projects for Your Practice

Python Programming for Intermediates - Learn the Basics Of Python in 7 Days!

Here's what you'll learn from this book:

  • Shallow Copy and Deep Copy 
  • Objects and Classes in Python - Including Python Inheritance, Multiple Inheritances, and so On
  • Recursion in Python 
  • Debugging and Testing 
  • Fibonacci Sequence (definition) and Monitization in Python 
  • Arguments in Python 
  • Namespaces in Python and Python Modules 
  • Simple Python Projects for Intermediates

Python Programming for Advanced - Learn the Basics of Python in 7 Days!

Here's what you'll learn from this book:

  • File management
  • Python Iterator
  • Python Generator
  • Regular Expressions 
  • Python Closure
  • Python Property
  • Python Assert
  • Simple Recap Projects 
  • Start Coding Now! 

Sunday, 5 November 2023

Python Coding challenge - Day 61 | What is the output of the following Python code?

 


In the above code a tuple named cl that contains a single element, the string 'a'. Tuples are defined by placing a comma-separated sequence of values within parentheses. In this case, you have a single value 'a' enclosed in parentheses.

When you print cl, you will get the following output:

('a',)

The trailing comma after 'a' is optional but commonly included in tuples with a single element to distinguish them from regular parentheses. It doesn't affect the tuple's behavior but is a convention used to define one-element tuples.

Learn to Program: The Fundamentals (Free Course)

 

There are 7 modules in this course

Behind every mouse click and touch-screen tap, there is a computer program that makes things happen. This course introduces the fundamental building blocks of programming and teaches you how to write fun and useful programs using the Python language.

This module gives an overview of the course, the editor we will use to write programs, and an introduction to fundamental concepts in Python including variables, mathematical expressions, and functions.

Join Free- Learn to Program: The Fundamentals



Saturday, 4 November 2023

Python Coding challenge - Day 60 | What is the output of the following Python code?

 


The above code creates two lists a and b, each containing a single element with the value 10. When you use the is operator to compare a and b, it checks if they are the same object in memory. In this case, the two lists are not the same object, even though their contents are the same, so a is b will return False`. Here's the code and the result:

a = [10]

b = [10]

print(a is b)  # This will print False

Even though the values in a and b are the same, they are different objects in memory, so the is comparison returns False. If you want to check if the contents of the lists are equal, you should use the == operator:

a = [10]

b = [10]

print(a == b)  # This will print True

Difference between == and = in python

 


x=[1,2,3] ; y=[1,2,3]

x==y      

x is y

In Python, when you use the == operator, it checks if the values of the two variables are equal. So, when you do x == y, it will return True because the values of x and y are the same: both lists contain the same elements in the same order.

However, when you use the is operator, it checks if two variables refer to the same object in memory. In your example, x is y will return False because even though the values of x and y are the same, they are two different list objects in memory. This is because lists are mutable objects in Python, and the x and y variables refer to two separate list objects that happen to have the same values.


x=[1,2,3] ; y=[1,2,3]

x=y     

x is y

In this case, when you do x = y, you are assigning the variable x to refer to the same list object that y is referring to. As a result, x and y now both point to the same list object in memory. So, when you check x is y, it will return True because they are indeed the same object in memory.

Here's what happens step by step:

x and y are initially two separate list objects with the same values: [1, 2, 3].

When you do x = y, you're essentially making x reference the same list object as y. Now, both x and y point to the same list object.

Therefore, when you check x is y, it returns True because they are the same object in memory.

Keep in mind that this behavior is specific to mutable objects like lists in Python. For immutable objects like integers or strings, x is y would return True if x and y have the same value, because Python caches some immutable objects, and they can be shared among variables.

Binary search in Python

 


def binary_search(arr, target):

    left, right = 0, len(arr) - 1


    while left <= right:

        mid = (left + right) // 2


        if arr[mid] == target:

            return mid  # Found the target, return its index

        elif arr[mid] < target:

            left = mid + 1  # Target is in the right half

        else:

            right = mid - 1  # Target is in the left half


    return -1  # Target is not in the list


# Example usage:

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

target = 6

result = binary_search(arr, target)

if result != -1:

    print(f"Element {target} found at index {result}")

else:

    print(f"Element {target} not found in the list")

#clcoding.com

LehighX: Python Fundamentals for Business Analytics (Free Course)

 This course covers the basics of the Python programming language, and is targeted to students who have no programming experience. The course begins by establishing a strong foundation in basic programming concepts. Through engaging lessons and practical exercises, students will master essential topics such as variables, relational and boolean operators, control statements, and input/output operations. Building on this solid groundwork, students will program with functions, lists, and tuples. In the final phase of the course, students will unlock the full potential of Python by harnessing the capabilities of the popular NumPy library.


About this course

The course will illustrate how Python is utilized in the exciting field of business analytics through real-world examples and hands-on exercises. With an emphasis on interactivity, students will code alongside the course materials. By the end of this course, students will have developed a strong understanding of programming principles, gained proficiency in Python syntax, and developed the skill to apply Python functions to basic analytic problems.

What you'll learn

Upon completion of this course, students should be able to:

1. Install and use the Anaconda distribution of Python through the creation of Jupyter notebooks.

2. Understand and use variables in Python

3. Work with common Python data types including float, integer, string, boolean, lists, and tuples

4. Create expression in Python with variables, relational operators, and boolean operators

5. Implement basic program flow control with if statements and loops

6. Read data from and write data to text files.

7. Utliize important analytic libraries like Numpy

8. Understand how to implement and adequately test algorithms in Python

Join free - Python Fundamentals for Business Analytics

Coding for Everyone: C and C++ Specialization

 Beginner to Programmer — Learn to Code in C & C++. Gain a deep understanding of computer programming by learning to code, debug, and solve complex problems with C and C++.


What you'll learn

Write and debug code in C and C++ programming languages

Understand algorithms, and how to properly express them

Specialization - 4 course series

This Specialization is intended for all programming enthusiasts, as well as beginners, computer and other scientists, and artificial intelligence enthusiasts seeking to develop their programming skills in the foundational languages of C and C++. Through the four courses — two in C, and two in C++ — you will cover the basics of programming in C and move on to the more advanced C++ semantics and syntax, which will prepare you to apply these skills to a number of higher-level problems using AI algorithms and Monte Carlo evaluation in complex games.

Applied Learning Project

Learners in this specialization will start coding right from the start. Every module presents ample opportunities for writing programs and finding errors in the learner's own and others' code. Building on their knowledge, learners will demonstrate their understanding of coding in a practice-intensive final assessment.

Join - Coding for Everyone: C and C++ Specialization

Friday, 3 November 2023

Python Coding challenge - Day 59 | What is the output of the following Python code?

 

Code - 

s = {1, 2, 3, 4, 1}
s.discard(0)
print(s)

Solution - 

The code does step by step:

s is defined as a set containing the elements {1, 2, 3, 4, 1}. Note that sets in Python are unordered collections of unique elements, so any duplicate elements are automatically removed.

The s.discard(0) line attempts to remove the element 0 from the set s using the discard method.

However, since 0 is not in the set s, calling discard(0) has no effect.

Finally, the print(s) statement prints the contents of the set s after attempting to discard 0. The output will be: {1, 2, 3, 4}.

The discard method is used to safely remove an element from a set if it exists, but it won't raise an error if the element is not present in the set. In contrast, the remove method would raise a KeyError if you try to remove an element that is not in the set.


What is a best practice to get consistent results when using pandas?

 Pandas is a powerful library for data manipulation and analysis in Python. To ensure consistent and reliable results when using Pandas, consider the following best practices:

Import Pandas Properly: Import Pandas at the beginning of your script or notebook, and use a common alias like import pandas as pd. This makes your code more readable and consistent across projects.

Use Explicit Data Types: When reading data with read_csv, read_excel, or other methods, specify the data types for columns using the dtype parameter. This ensures that Pandas doesn't infer data types incorrectly.

Handle Missing Data: Use appropriate methods like isna(), fillna(), or dropna() to deal with missing data. Be consistent in your approach to handling missing values throughout your analysis.

Consistent Naming Conventions: Use consistent naming conventions for your variables and DataFrame columns. This makes your code more readable and reduces the chance of errors.

Indexing and Selection: Use loc and iloc for explicit and consistent DataFrame indexing. Avoid using chained indexing, as it can lead to unpredictable results.

Method Chaining: Consider using method chaining to perform a sequence of Pandas operations on a DataFrame. This makes your code more concise and readable. Libraries like pandas-flavor and pipe can help with this.

Avoid SettingWithCopyWarning: When creating new DataFrames or manipulating existing ones, avoid using chained assignment. Instead, use copy() to ensure that you work on a copy of the data and not a view, which can lead to unexpected behavior.

Documentation and Comments: Provide documentation and comments in your code to explain the purpose and steps of your data analysis. This helps others understand your code and ensures consistency in your own work.

Testing and Validation: Write unit tests to validate the correctness of your data processing steps. Consistent testing can help catch errors early and maintain reliable results.

Version Control: Use version control tools like Git to keep track of changes in your code and data. This helps maintain consistency when working on projects with a team or over time.

Data Type Awareness: Be aware of data types and their impact on operations. For example, dividing integers in Pandas will result in integer division, which may not be what you expect. Use appropriate casting or conversion to handle data types correctly.

Use Vectorized Operations: Take advantage of Pandas' built-in vectorized operations whenever possible. They are more efficient and lead to consistent results.

Avoid Global Variables: Minimize the use of global variables in your code. Instead, encapsulate your operations in functions to ensure consistent behavior.

Upgrade Pandas: Keep your Pandas library up to date to benefit from bug fixes and improvements. However, be aware that upgrading may require adjustments in your code to maintain consistency.

By following these best practices, you can ensure that your data analysis with Pandas is more consistent, maintainable, and less prone to errors. Consistency in coding practices also helps in collaboration with others and simplifies debugging and troubleshooting.

Ace the Data Science Interview: 201 Real Interview Questions Asked By FAANG, Tech Startups, & Wall Street

 


What's inside this 301 page book?

201 real Data Science interview questions asked by Facebook, Google, Amazon, Netflix, Two Sigma, Citadel and more — with detailed step-by-step solutions!

Learn how to break into Data Science, with tips on crafting your resume, creating kick-ass portfolio projects, sending networking cold emails, and better telling your story during behavioral interviews

Questions cover the most frequently-tested topics in data interviews: Probability, Statistics, Machine Learning, SQL & Database Design, Coding (Python), Product Analytics, and A/B Testing

Each chapter has a brief crash-course on the most important concepts and formulas to review

Learn how to solve open-ended case study questions that combine product-sense, business intuition, and statistical modeling skills, and practice with case interviews from Airbnb, Instagram, & Accenture

Buy - Ace the Data Science Interview: 201 Real Interview Questions Asked By FAANG, Tech Startups, & Wall Street

Automating Real-World Tasks with Python

 


What you'll learn

Use Python external libraries to create and modify documents, images, and messages

Understand and use Application Programming Interfaces (APIs) to interact with web services

Understand and use data serialization to send messages between running programs

Build a solution using the skills you have learned

There are 5 modules in this course

In the final course, we'll tie together the concepts that you’ve learned up until now. You'll tackle real-world scenarios in Qwiklabs that will challenge you to use multiple skills at once.

First, we'll take a closer look at how to use external Python modules to extend your code's capabilities, and spend some time learning how to use documentation to learn a new module. For example, we'll use the Python Image Library (PIL) to create and modify images. We'll show you some simple examples of how to perform common tasks in the course material, but it will be up to you to explore the module documentation to figure out how to solve specific problems.

Next, we'll show you how to communicate with the world outside of your code! You'll use data serialization to turn in-memory objects into messages that can be sent to other programs. Your program will send messages across the network to Application Programming Interfaces (APIs) offered by other programs. For those times when your code needs to talk to a person instead of a program, you'll also learn to send email messages.

At the end of this course, you’ll be able to take a description of a problem and use your skills to create a solution -- just like you would on the job. In your final capstone project, you'll be given a description of what your customer needs, and it will be up to you to create a program to do it!

JOIN - Automating Real-World Tasks with Python

Getting Started With Game Development Using PyGame

 

About this Guided Project

In this 1-hour long project-based course, you will learn how to create a basic single-player Pong replica using the PyGame library for Python, creating a welcome screen, a game that responds to user input to move the paddle, scoring, and a game over screen with user options. By the end of the course, learners will have a basic understanding of the PyGame library and will be able to create simple games built on shapes. No previous experience with PyGame is required, as this is a basic introduction to the library, but familiarity with Python is recommended.

Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Learn step-by-step

In a video that plays in a split-screen with your work area, your instructor will walk you through these steps:

Create the display and the ball

Add motion to the ball and a paddle

Detect collisions and create a Game Over screen

Expand game play options

Reset the game to continue play

Scorekeeping, randomizing, and expansion options

Join  - Getting Started With Game Development Using PyGame

Applied Text Mining in Python

 


What you'll learn

Understand how text is handled in Python

Apply basic natural language processing methods

Write code that groups documents by topic

Describe the nltk framework for manipulating text

There are 4 modules in this course

This course will introduce the learner to text mining and text manipulation basics. The course begins with an understanding of how text is handled by python, the structure of text both to the machine and to humans, and an overview of the nltk framework for manipulating text. The second week focuses on common manipulation needs, including regular expressions (searching for text), cleaning text, and preparing text for use by machine learning processes. The third week will apply basic natural language processing methods to text, and demonstrate how text classification is accomplished. The final week will explore more advanced methods for detecting the topics in documents and grouping them by similarity (topic modelling). 

Join - Applied Text Mining in Python

Python Project for Data Science

 


What you'll learn

Play the role of a Data Scientist / Data Analyst working on a real project.

Demonstrate your Skills in Python - the language of choice for Data Science and Data Analysis. 

Apply Python fundamentals, Python data structures, and working with data in Python.

Build a dashboard using Python and libraries like Pandas, Beautiful Soup and Plotly using Jupyter notebook.

There is 1 module in this course

This mini-course is intended to for you to demonstrate foundational Python skills for working with data. This course primarily involves completing a project in which you will assume the role of a Data Scientist or a Data Analyst and be provided with a real-world data set and a real-world inspired scenario to identify patterns and trends. 

You will perform specific data science and data analytics tasks such as extracting data, web scraping, visualizing data and creating a dashboard. This project will showcase your proficiency with Python and using libraries such as Pandas and Beautiful Soup within a Jupyter Notebook. Upon completion you will have an impressive project to add to your job portfolio.   

PRE-REQUISITE: **Python for Data Science, AI and Development** course from IBM is a pre-requisite for this project course. Please ensure that before taking this course you have either completed the Python for Data Science, AI and Development course from IBM or have equivalent proficiency in working with Python and data.  

NOTE: This course is not intended to teach you Python and does not have too much instructional content. It is intended for you to apply prior Python knowledge.

Join - Python Project for Data Science

Thursday, 2 November 2023

Python Coding challenge - Day 58 | What is the output of the following Python code?

 


In the above code a function add(a, b) that takes two arguments a and b and returns their sum using the + operator. However, there's a potential issue because you are trying to add an integer (3) and a string ('2') together, which can lead to a type error.

When you call add(3, '2'), the function is trying to add an integer and a string, which is not a valid operation in Python. Python typically doesn't allow you to perform arithmetic operations between different data types without explicit type conversion.

Wednesday, 1 November 2023

Python Coding challenge - Day 57 | What is the output of the following Python code?

 

The code and the output for print([] * 3):

print([] * 3)

Output: []

In Python, when you use the * operator with a list and a number, it is used for repetition. When you do [] * 3, it repeats the empty list [] three times. This is a feature of Python that allows you to create a new list by repeating the elements of an existing list.

So, in the case of print([] * 3), it repeats the empty list [] three times, resulting in a new empty list with no elements. This is how the * operator works when used with lists and numbers in Python.


Python Project for Data Engineering

 


What you'll learn

Demonstrate your skills in Python for working with and manipulating data

Implement webscraping and use APIs to extract data with Python

Play the role of a Data Engineer working on a real project to extract, transform, and load data

Use Jupyter notebooks and IDEs to complete your project

There are 3 modules in this course

Showcase your Python skills in this Data Engineering Project! This short course is designed to apply your basic Python skills through the implementation of various techniques for gathering and manipulating data.  

You will take on the role of a Data Engineer by extracting data from multiple sources, and converting the data into specific formats and making it ready for loading into a database for analysis. You will also demonstrate your knowledge of web scraping and utilizing APIs to extract data. 

By the end of this hands-on project, you will have shown your proficiency with important skills to Extract Transform and Load (ETL) data using an IDE, and of course, Python Programming. 

Upon completion of this course, you will also have a great new addition to your portfolio! 

Join - Python Project for Data Engineering

Python for Data Science, AI & Development

 


What you'll learn

Describe Python Basics including Data Types, Expressions, Variables, and Data Structures.

Apply Python programming logic using Branching, Loops, Functions, Objects & Classes.

Demonstrate proficiency in using Python libraries such as Pandas, Numpy, and Beautiful Soup.

Access web data using APIs and web scraping from Python in Jupyter Notebooks.  


There are 5 modules in this course

Kickstart your learning of Python with this beginner-friendly self-paced course taught by an expert. Python is one of the most popular languages in the programming and data science world and demand for individuals who have the ability to apply Python has never been higher.  

This introduction to Python course will take you from zero to programming in Python in a matter of hours—no prior programming experience necessary! You will learn about Python basics and the different data types. You will familiarize yourself with Python Data structures like List and Tuples, as well as logic concepts like conditions and branching. You will use Python libraries such as Pandas, Numpy & Beautiful Soup. You’ll also use Python to perform tasks such as data collection and web scraping with APIs.  

You will practice and apply what you learn through hands-on labs using Jupyter Notebooks. By the end of this course, you’ll feel comfortable creating basic programs, working with data, and automating real-world tasks using Python.  

This course is suitable for anyone who wants to learn Data Science, Data Analytics, Software Development, Data Engineering, AI, and DevOps as well as a number of other job roles. 

JOIN Free - Python for Data Science, AI & Development

Tuesday, 31 October 2023

Python Coding challenge - Day 56 | What is the output of the following Python code?

 


Code - 

x = 1

while x <= 10:

    if x % 3 == 0:

        print(x)

    x += 1

Solution - 

The above code is a simple Python while loop that iterates through the numbers from 1 to 10 and prints the values that are divisible by 3. Here's a step-by-step explanation of how the code works:

Initialize the variable x with the value 1.
Enter a while loop with the condition x <= 10, which means the loop will continue as long as x is less than or equal to 10.
Inside the loop, there is an if statement that checks if the current value of x is divisible by 3 (i.e., x % 3 == 0). If the condition is true, the code inside the if block is executed.
If x is divisible by 3, the current value of x is printed using the print function.
After printing the value, x is incremented by 1 using x += 1, which means the loop will proceed to the next value.
The loop continues to the next iteration until x is no longer less than or equal to 10.
This code will print the numbers 3, 6, and 9 because those are the values in the range from 1 to 10 that are divisible by 3.

Monday, 30 October 2023

Python Coding challenge - Day 55 | What is the output of the following Python code?

 


Code - 

x = 10

while x > 0:

    print(x)

    x -= 1


Solution - 

The above code is a simple Python while loop that counts down from 10 to 1 and prints each value of x in each iteration. Here's what the code does step by step:

Initialize the variable x with the value 10.
Enter a while loop that continues as long as the value of x is greater than 0.
Print the current value of x.
Decrement the value of x by 1 (using x -= 1).
Repeat steps 3 and 4 until the value of x becomes 0 or negative.
The output of this code will be:
10
9
8
7
6
5
4
3
2
1

After the loop, the value of x will be 0, and the loop will terminate since x > 0 is no longer true.

Machine Learning Basics (Free Course)

 


There are 4 modules in this course

In this course, you will:   

a) understand the basic concepts of machine learning.

b) understand a typical memory-based method, the K nearest neighbor method.

c) understand linear regression.

d) understand model analysis.

Please make sure that you’re comfortable programming in Python and have a basic knowledge of mathematics including matrix multiplications, and conditional probability.

JOIN Free - Machine Learning Basics

Build a Website using an API with HTML, JavaScript, and JSON (Free Course)

 


Objectives

Provide ability for website users to look up 7 day weather forecasts for major European cities
Keep website visitors on the website longer
Increase online bookings

About this Project

In this project, you’ll support a European travel agency’s effort to increase booking by building a webpage that provides visitors with a 7-day weather forecast for major European cities. 


Accomplishing this task will require you to retrieve real-time weather data from an external service. In creating the webpage, you’ll request, process, and present the weather data using HTML, JavaScript, and JSON. 


There isn’t just one right approach or solution in this scenario, which means you can create a truly unique project that helps you stand out to employers.


ROLE: Software Developer


SKILLS: Web Design, Web Development, Cloud API


PREREQUISITES: 

Function closures, asynchronous processing, REST API, and JSON handling with JavaScript

Present content with HTML tags 

Present content using classes with CSS

Format and syntax of JSON

JOIN Free - Build a Website using an API with HTML, JavaScript, and JSON

Problem Solving, Python Programming, and Video Games (Free Course)

 



There are 12 modules in this course

This course is an introduction to computer science and programming in Python.  Upon successful completion of this course, you will be able to:


1.  Take a new computational problem and solve it, using several problem solving techniques including abstraction and problem decomposition.

2.  Follow a design creation process that includes: descriptions, test plans, and algorithms.

3.  Code, test, and debug a program in Python, based on your design.

Important computer science concepts such as problem solving (computational thinking), problem decomposition, algorithms, abstraction, and software quality are emphasized throughout.

This course uses problem-based learning. The Python programming language and video games are used to demonstrate computer science concepts in a concrete and fun manner. The instructional videos present Python using a conceptual framework that can be used to understand any programming language. This framework is based on several general programming language concepts that you will learn during the course including: lexics, syntax, and semantics.

Other approaches to programming may be quicker, but are more focused on a single programming language, or on a few of the simplest aspects of programming languages. The approach used in this course may take more time, but you will gain a deeper understanding of programming languages. After completing the course,  in addition to learning Python programming, you will be able to apply the knowledge and skills you acquired to: non-game problems, other programming languages, and other computer science courses.

You do not need any previous programming, Python, or video game experience.  However, several basic skills are needed: computer use (e.g., mouse, keyboard, document editing), elementary mathematics, attention to detail (as with many technical subjects), and a “just give it a try” spirit will be keys to your success.  Despite the use of video games for the main programming project, PVG is not about computer games.  For each new programming concept, PVG uses non-game examples to provide a basic understanding of computational principles, before applying these programming concepts to video games.

The interactive learning objects (ILO) of the course provide automatic, context-specific guidance and feedback, like a virtual teaching assistant, as you develop problem descriptions, functional test plans, and algorithms.  The course forums are supported by knowledgeable University of Alberta personnel, to help you succeed.

All videos, assessments, and ILOs are available free of charge.  There is an optional Coursera certificate available for a fee. 

JOIN Free  - Problem Solving, Python Programming, and Video Games

Sunday, 29 October 2023

Python Coding challenge - Day 54 | What is the output of the following Python code?

 




Code - 

roman = {1:'i',2:'ii'}

d,r=roman

print(d,r)

Solution - 

In above code, Code is trying to unpack the dictionary roman into two variables d and r. When you unpack a dictionary like this, it iterates over the keys of the dictionary and assigns them to the variables. In this case, d will be assigned the first key (1), and r will be assigned the second key (2).

Here's what the code does step by step:

d, r = roman tries to unpack the dictionary roman.
The keys of the dictionary roman are 1 and 2.
d is assigned the first key, which is 1.
r is assigned the second key, which is 2.
So, after this code executes, d will be 1 and r will be 2.

Saturday, 28 October 2023

Data Structures and Algorithms Specialization

 



Master Algorithmic Programming Techniques. Advance your Software Engineering or Data Science Career by Learning Algorithms through Programming and Puzzle Solving. Ace coding interviews by implementing each algorithmic challenge in this Specialization. Apply the newly-learned algorithmic techniques to real-life problems, such as analyzing a huge social network or sequencing a genome of a deadly pathogen.

What you'll learn

Play with 50 algorithmic puzzles on your smartphone to develop your algorithmic intuition!  Apply algorithmic techniques (greedy algorithms, binary search, dynamic programming, etc.) and data structures (stacks, queues, trees, graphs, etc.) to solve 100 programming challenges that often appear at interviews at high-tech companies. Get an instant feedback on whether your solution is correct.

Apply the newly learned algorithms to solve real-world challenges: navigating in a Big Network  or assembling a genome of a deadly pathogen from millions of short substrings of its DNA.

Learn exactly the same material as undergraduate students in “Algorithms 101” at top universities and more! We are excited that students from various parts of the world are now studying our online materials in the Algorithms 101 classes at their universities. Here is a quote from the website of Professor 

If you decide to venture beyond Algorithms 101, try to solve more complex programming challenges (flows in networks, linear programming, streaming algorithms, etc.) and complete an equivalent of a graduate course in algorithms!

Specialization - 6 course series

Computer science legend Donald Knuth once said “I don’t understand things unless I try to program them.” We also believe that the best way to learn an algorithm is to program it. However, many excellent books and online courses on algorithms, that excel in introducing algorithmic ideas, have not yet succeeded in teaching you how to implement algorithms, the crucial computer science skill that you have to master at your next job interview. We tried to fill this gap by forming a diverse team of instructors that includes world-leading experts in theoretical and applied algorithms at UCSD (Daniel Kane, Alexander Kulikov, and Pavel Pevzner) and a former software engineer at Google (Neil Rhodes). This unique combination of skills makes this Specialization different from other excellent MOOCs on algorithms that are all developed by theoretical computer scientists. While these MOOCs focus on theory, our Specialization is a mix of algorithmic theory/practice/applications with software engineering. You will learn algorithms by implementing nearly 100 coding problems in a programming language of your choice. To the best of knowledge, no other online course in Algorithms comes close to offering you a wealth of programming challenges (and puzzles!) that you may face at your next job interview. We invested over 3000 hours into designing our challenges as an alternative to multiple choice questions that you usually find in MOOCs.  

Applied Learning Project

The specialization contains two real-world projects: Big Networks and Genome Assembly. You will analyze both road networks and social networks and will learn how to compute the shortest route between New York and San Francisco 1000 times faster than the shortest path algorithms you learn in the standard Algorithms 101 course! Afterwards, you will learn how to assemble genomes from millions of short fragments of DNA and how assembly algorithms fuel recent developments in personalized medicine.

JOIN free - Data Structures and Algorithms Specialization

Python Coding challenge - Day 53 | What is the output of the following Python code?

 


Code -  

c = 'hello'

print(c.center(10, '1'))

Solution - 

c = 'hello': In this line, you create a variable c and assign the string 'hello' to it.

c.center(10, '1'): This is the main part of the code where you use the center method on the string c.

c is the string 'hello'.

.center(10, '1') is calling the center method on the string c with two arguments:

10 is the total width you want for the resulting string.

'1' is the character you want to use to fill the remaining space on both sides of the centered string.

The center method then centers the string 'hello' within a total width of 10 characters, using the fill character '1' for the remaining space.

print(c.center(10, '1')): This line prints the result of the center method to the console.

Now, let's break down the output:

The specified total width is 10 characters.

The string 'hello' is 5 characters long.

So, there are 10 - 5 = 5 spaces to fill on either side of 'hello'.

The output is: 11hello111

Here's how it's constructed:

First, you have 5 '1' characters on the left side.
Then, you have the string 'hello'.
Finally, you have 3 '1' characters on the right side to reach the total width of 10 characters.






Introduction to Embedded Machine Learning (Free Course)

 


What you'll learn

The basics of a machine learning system

How to deploy a machine learning model to a microcontroller

How to use machine learning to make decisions and predictions in an embedded system

There are 3 modules in this course

Machine learning (ML) allows us to teach computers to make predictions and decisions based on data and learn from experiences. In recent years, incredible optimizations have been made to machine learning algorithms, software frameworks, and embedded hardware. Thanks to this, running deep neural networks and other complex machine learning algorithms is possible on low-power devices like microcontrollers.

This course will give you a broad overview of how machine learning works, how to train neural networks, and how to deploy those networks to microcontrollers, which is known as embedded machine learning or TinyML. You do not need any prior machine learning knowledge to take this course. Familiarity with Arduino and microcontrollers is advised to understand some topics as well as to tackle the projects. Some math (reading plots, arithmetic, algebra) is also required for quizzes and projects.

We will cover the concepts and vocabulary necessary to understand the fundamentals of machine learning as well as provide demonstrations and projects to give you hands-on experience.

Join Free - Introduction to Embedded Machine Learning

Popular Posts

Categories

100 Python Programs for Beginner (49) AI (34) Android (24) AngularJS (1) Assembly Language (2) aws (17) Azure (7) BI (10) book (4) Books (173) C (77) C# (12) C++ (82) Course (67) Coursera (226) Cybersecurity (24) data management (11) Data Science (128) Data Strucures (8) Deep Learning (20) Django (14) Downloads (3) edx (2) Engineering (14) Excel (13) Factorial (1) Finance (6) flask (3) flutter (1) FPL (17) Google (34) Hadoop (3) HTML&CSS (47) IBM (25) IoT (1) IS (25) Java (93) Leet Code (4) Machine Learning (59) Meta (22) MICHIGAN (5) microsoft (4) Nvidia (3) Pandas (4) PHP (20) Projects (29) Python (929) Python Coding Challenge (351) Python Quiz (22) Python Tips (2) Questions (2) R (70) React (6) Scripting (1) security (3) Selenium Webdriver (3) Software (17) SQL (42) UX Research (1) web application (8) Web development (2) web scraping (2)

Followers

Person climbing a staircase. Learn Data Science from Scratch: online program with 21 courses