Python Programming 101 course includes:
- Introduction to Python programming - assignment, variables, expressions, iteration, conditional execution, blocks and padding, numbers and strings, input and output. Using Integrated Development Environment- IDE for development, running and debugging python applications.
- Python data types. Number representations, operators and functions working with numbers. Iteration and recursion.
- Strings and string orations, representations, functions, typical problems and solutions. Mutable and immutable data types.
- Conditional and iterative execution. Lists, dictionaries, and tuples - main methods and functions.
- Exceptions and exception handling - try-except-finally, capturing exception instance, catch-all clauses, user defined exceptions, exceptions chaining.
- Working with files - text and binary files, basic file operations on text and binary files, random access files, with block, using, working with CSV and JSON files, using Pickle to write binary files, manipulating data with Shelve. MyLibrary - building a sample book catalog information system with file-based persistence.
- Functional programming - defining and calling functions, declared and actual arguments, default parameters and keyword arguments, return, *args and **kwargs, docstrings, clean code scope rules, global and nonlocal, handling invalid arguments, recursion, functional programming, pure vs. impure functions, higher-order functions, map(), filter(), zip(), reduce(), lambda expressions, list comprehensions, set and dictionary comprehension, iterators, generators, decorators. Practical problems and exercises for structuring code using functions.
- Object-Oriented Programming (OOP) in Python – creating objects, classes and instances, attributes and methods, __init__, properties, getters and setters, non-public and mangling, class methods and static methods, encapsulation, abstraction, inheritance, method and operator overriding, super(), polymorphism, object introspection, magic (dunder) methods, multiple Inheritance, Method Resolution Order (MRO).
- Reusable design patterns in OOP – Singleton, Factory Method, Builder, Iterator, Decorator, Adapter, Observer, Command, Template Method, etc. Refactoring MyLibrary using OOP and design patterns best practices – building a fully-functional Model-View-Controller (MVC) interactive console application for managing authors and their publications with extended search capabilities.
- Modules and packages - using and creating, types of imports, dir() and help(), creating your own modules and packages, namespace packages, bulk module imports, __all__, installing packages using pip and PyCharm, underscores in Python code, structuring project code, problems and exercises.
- Python applications - database integration, web programming using Flask and FastAPI, image processing using OpenCV.
- Teacher: Trayan Iliev