
Meet your instructor, Chris, a seasoned university lecturer and researcher who offers online courses in GIS, databases, and Python programming, supported by world-class resources like a top 100 supercomputer.
Discover Python's features, history, and applications for beginners. Understand why Python is often chosen as the first language, with free libraries, cross-platform support, and data science applications.
Install python by downloading from python.org and adding python to the path on Windows; verify the installation by launching the Python console.
Compare Python 2 and Python 3, covering print syntax, division results, variable types, range/xrange, string handling, exceptions, and input, to choose the right version for projects or legacy systems.
Install and set up the Anaconda distribution to manage Python environments and packages, using Anaconda Navigator or Anaconda Prompt, create project-specific environments, and launch Jupyter Notebooks.
Explore how to use Jupyter Notebook for interactive code and notes, navigate edit and command modes, create code and markdown cells, add comments, and leverage shortcuts and formatting.
Master Python conventions and naming with the pep8 guidelines, indentation rules, line length, imports, and variable naming to ensure readable, interview-ready code.
Explore how Python treats everything as an object with dynamic typing and values assigned to variables. Learn about numeric, sequential, and mapping types, plus memory via reference counting.
Explore the fundamentals of programming by introducing scalar types, including numerical and logical color objects. Learn to build functions and methods to work with these objects, and understand tech's strengths.
Show how assigning None to a variable creates an empty object in Python, and verify its empty state by calling type on the variable.
Explore Python int, float, and complex numbers, use type() checks, and practice binary, octal, and hex literals (0b, 0o, 0x) with floating point precision and decimal module.
Learn about arithmetic operations in Python, including addition, subtraction, multiplication, and division (real division in Python 3). Explore modulo, integer division, and exponentiation with precedence rules and the pow function.
Discover how to check a value’s type using the type function and isinstance, and how to cast values using int and float constructors to transform objects.
explore Python's built-in functions, including abs for absolute value, round for decimal precision, min and max for extrema, and ord for ascii codes.
Explore fields and methods by treating values as objects in Python, calling methods like bit_length on integers with dot notation and parentheses.
Study how floating point numbers use 64 bits, creating precision limits and near-zero results like 0.3 plus 0.3 plus 0.3 minus 0.9, and note when infinity or None occurs.
Learn the Python boolean type, with true and false representations and how zero and empty objects evaluate to false. Practice using and, or, not, is, is not, with short-circuit evaluation.
Define strings as sequential characters and show how to use single or double quotes consistently per pep eight, then explain escapes, raw strings, and multi-line strings with printing results.
Explore sequential types, objects with many elements you can iterate or index, and learn they can be changeable or unchangeable, unlike earlier immutable types such as true and false.
Learn Python's sequential types by working with lists and tuples, exploring mutability, using mixed values and nested lists, and converting between lists and tuples while checking truthiness and type.
Ranges are immutable sequence objects that generate numbers from start to stop, exclusive. The range constructor uses start, stop, and optional step, with defaults start zero and step one.
Explore indexing in Python by using zero-based and negative indices, measure string length with the len function, and master slicing to access and extract elements from strings and nested lists.
Discover mutability in lists versus tuples, and learn indexing, slicing, and list operations, including append, extend, plus equals, remove, pop, and clear, with range and len usage.
Explore how Python handles variable references and how shallow and deep copies affect lists and nested structures, using copy and copy.deepcopy to create independent objects.
Explore strings in Python, covering creation, concatenation, repetition, length, comparison, substring checks, case conversion, formatting with curly braces, and powerful methods like join, find, replace, and split.
Explore methods and functions for lists in python, including sorting with sorted versus in-place sort, reversing, and lexicographic comparisons; compute sums, locate indices, and count occurrences, noting tuple differences.
Learn how to use Python identifiers and tuples for multiple assignment and swapping values in a single line, including unpacking, starred expressions, and error cases when counts mismatch.
Learn about Python sets as unordered, unique-key collections and how to create them with curly braces or from lists; perform add, discard, union, intersection, difference, and subset checks.
Explore python dictionaries, a mutable key-value store with unique, immutable keys. Learn to create, access by key, update values, and delete or inspect items, keys, and values through practical examples.
Explore flow control in Python, including loop types, conditional logic, and comprehension expressions for lists and dictionaries, enabling more advanced, structured code.
Explore Python conditional statements using if, elif, and else to control code flow, with proper indentation and short forms like the ternary operator and truthy or falsy values.
Create and move through sequence elements with iterators using next, handle the stop iteration exception when exhausted, and use reversed, enumerate, and zip to index and pair items.
Learn to use for loops in Python to iterate over strings, lists, and dictionaries, using range and enumerate, print elements, and avoid infinite loops.
Learn how the Python while loop works, including infinite loops, using a counter variable, evaluating a < 15, updating the value each iteration, and avoiding endless execution.
Shows how to use list, dict, and set comprehensions and generator expressions, replace for loops with concise syntax, and demonstrate the get method and map for dictionaries and absolute values.
Learn to read user input with input, convert to integers, and print formatted output using both string formatting and percent notation in Python.
Explore the Python pass, break, and continue expressions, showing how pass does nothing, break exits loops, and continue skips to the next iteration in both while and for loops.
Learn to use input and loops with break conditions to validate user data and handle errors with try and except, including value errors and raising exceptions.
Learn to create and use your own Python functions to reuse code, handle inputs, and control flow with loops, conditions, decorators, and polymorphism, paving the way for project work.
Learn how functions organize instructions into reusable blocks, executable repeatedly or in other programs, and how doc strings, placed at the beginning, describe the operation, arguments, and return or print.
Python treats functions as objects, assignable to variables and callable by name, while return statements determine results and polymorphism makes operations vary with argument types like int, float, and string.
Explore lambda expressions as anonymous functions in Python, create function factories with magnifier to generate specialized multipliers, and apply lambdas with map, dictionaries, and conditional logic.
Dissect how Python function arguments work: define required, default, and keyword arguments; use *args and **kwargs for flexible inputs; unpack lists and dictionaries; validate inputs with asserts.
Explore variable scope in Python by examining local, global, and nonlocal variables, the LEGB rule, and how functions interact with global state, including nested functions and safe argument handling.
Explore recursion with the Fibonacci sequence in Python, implement a recursive Fibonacci function, and explain generators using yield. Learn decorators and how they wrap functions.
Explore how to import Python modules, reuse functions like the time module, manage namespaces with import and as aliases, and understand module search paths and the standard library.
Create your own Python modules by structuring code with a module docstring, imports, variables, and functions, then use Sublime Text to save and import the module in Jupyter.
Create a package from multiple modules, structure a folder with __init__.py, and import modules or functions to call their code in a jupyter notebook.
Discover object-oriented programming in Python by defining classes, creating objects and instances, and applying inheritance and encapsulation to build advanced projects.
Learn how Python classes enable dry, reusable code through constructors and self, create objects with properties and methods, and inspect them via dict and help using a cell phone example.
Explore how Python inheritance creates Samsung as a subclass of cell phone. Inherit attributes and methods, extend with new fields, and use super to construct and inspect objects with introspection.
Learn Python class design with methods and fields, inheritance and overriding, static methods and fields, constructors and destructors, and operator overloading via __add__ and __repr__.
Explore how slots store object fields instead of a dict, blocking new attributes and increasing speed, and how underscores simulate public, protected, and private access via name mangling.
Wrap up basic topics useful for future projects, including errors and exceptions, text and csv files, json, database integration, and regular expressions to guide your Python path.
Learn to distinguish syntax errors from exceptions in Python, handle errors with try-except-else-finally blocks, and create custom exceptions to manage division by zero and converting text to digits.
Learn the basics of Python file handling, including open and close, text and binary modes, and reading and writing, with attention to cursor position and flushing.
Explore regular expressions in Python using the re module to build patterns for validation, matching, and substitution, including phone numbers, emails, and name censorship.
Learn to connect Python to a MySchool database using the connector, install in an anaconda environment, and run queries to explore books and ratings.
Explore reading and writing CSV and JSON data in Python, using the csv module with reader and dict reader, the json library, and urllib.request for online data.
Finish your Python introduction to programming by solving problems on your own, creating your own projects, and expanding your knowledge within the community.
This course is designed for people who have not had contact with the Python language and want to join the programming world. The course structure helps you to understand everything you need to know to get started. We will discuss both the theory and practice (code that we will create ourselves). There will be also many tips and hints to help you understand the discussed concepts. The course starts with an introduction to the Python language (the differences between versions 2 and 3, how to use Python from the console and Jupyter Notebook or conventions and naming). On the first programming classes, you'll learn the scalars and sequential types of Python objects, along with their methods, arithmetic, indexing rules, and the operations you can perform on them. We will close the topic on object types with dictionaries and sets. Next large block of material will be the flow control, that is logical instructions, where you will learn the rules for creating and operating on conditions, loops, comprehension expressions or matrices (creating loops in other loops). The next will be the topic of functions. You will learn to write your own code blocks that execute series of instructions, how to get from and return values to the user, what is polymorphism, recursion or decorators. The whole block will end with object-oriented programming, its principles and method of working with classes, their fields and methods. In the last section of the course you will find the topics that can help you with your own further projects, that is: how to handle text and CSV files, how to combine Python code with a database written in MySQL, or how to create and use a regular expression. At the beginning we will keep the code simple, but with time as your knowledge will increase, the code will grow. For each material, you will also find a text notes that will summarize the discussed knowledge. In addition, in each section you will find the exercises (on different difficulty levels) that will allow you to test your new skills and knowledge. If you want to learn programming in Python check the curriculum of the course and preview materials. And see you soon inside the course!