This course covers all the basic knowledge needed for programming in python. The course is designed based on the assumption that students want to work in the software industry, but it's also useful for academic purposes.

Course Calendar & Materials

All available resources for this course will be added to the following table.

SessionDateSubjectsSlidesHomeworkSolutions
0October 14, 2021 (Introduction)Course Introduction, How to Become a Programmer, Judge Systems, Typing with 10 Fingers-1-
1October 15, 2021 (Basic Concepts and Data Types)What is Python, High Level and Low Level Programming Languages, Compilers and Interpreters, Python 2.x vs Python 3.x, Why Python, Python Shell, Python Philosophy, Python Enhancement Proposals (PEPs), PyCharm Integrated Development Environment, Python Installation and Setup, Computer Keyboard Keys Explanations, Mono-space Fonts, Python Basic Syntax, Code Comments, Variables, Static Typing and Dynamic Typing, type() Function, Numbers (Integer, Float, Complex), None and Float and Bool Data Types, Underscore in Big Numbers, NaN and Infinity, Operators, Operators Precedence, Some Floating-Point Arithmetic, Underscore in Python Shell, Bitwise Operators, Type Conversion, Different Types of Errorspy_basics_v3.html--
2October 22, 2021 (Control Structures and More Data Types)ًRunning Python Files with Command Line and Pycharm, Strings with Triple-quotes or Single Quotes or Double Quotes, Special Characters in Strings and Escaping Characters, Raw Strings, String Formatting, input() Function, Truth Value Testing, if elif else Statement, pass Statement, One Line If-condition-assignment, match case Statement, while Statement, Sequences, Tuples, Unpacking a Tuple, Evaluating Order of Assignments, Indexing and Slicing Sequences, Sequence Operators, Mutable and Immutable Data Types, id() Function, Copy By Reference and Copy By Value, Compare Two Objects with == and is, for Statement, Using continue, break and else Keywords within Loops, Alternative to do-while loops in Python, List Comprehension, range() Function, Sets, Dictionariespy_dtypes_v2.html1, 2, 31, 2, 3
3October 29, 2021 (Functions and Code Internal Quality)Problem Solving, Quick Review on str() and list() and tuple() and float() and bool() and int() and dict() and set() and complex() Functions, eval() Function, abs() and pow() and round() and bin() and complex() Functions, all() and any() Function, Defining Functions, Default Argument Values, Arbitrary Argument Lists, Unpacking Argument Lists, Documentation Strings and reStructuredText, Function Annotations, Python Naming Conventions, Standard Output and Standard Error Streams, Writing DRY Code, SoC Principle, Some Tips about Writing Maintainable Code and Software Internal Quality-1, 2, 3, 4, 5, 61, 2-1, 2-2, 3, 4-1, 4-2, 5, 6-1, 6-2
4November 5, 2021 (Big-Oh Analysis and Debugging)Problem Solving, Big-Oh Analysis, Stacks and Queues, Indexed Lists and Linked Lists, Debugging In PyCharm, Profiling in PyCharm, PyCharm Keyboard Shortcuts, Lambda Functions, Recursive Functions, map() and filter() Functions, enumerate() and zip() Functions, Python Anti-Patterns, Python Wats, Converse Implication and More on Boolean Objects-1, 2, 3, 41-1, 1-2, 2, 3, 4
5November 12, 2021 (Modules, Packages, Virtual Environments)Problem Solving, Modules Concepts, The import Statement, The from…import Statement, Locating Modules, Namespaces and Scoping, nonlocal and global keywords, time Module, random Module, math Module, dir() and globals() and locals() Functions, Packages in python, name Special Variable, Working with Python Package Manager and VirtualEnv, Managing the Installed Packages in PyCharm, Using Stack Overflow Effectively, Explain Course Projectpy_modules.html py_libs.html1, 2, 31, 2-1, 2-2, 3
6November 19, 2021 (Object-Oriented)Problem Solving, Object-Oriented Concepts, Defining Classes and Creating Objects in Python, Instance Variables and Class Variables, Instance Objects, Method Objects, Self Input, Constructor, dict Variable, Class Method and Static Method, Inheritance, super() Function, help() Function, Base objects, Multiple Inheritance, isinstance() Function, Decorators, Property Decorator and Getter and Setters and Deleter, Special Methods, Underscore Use Cases in Python, Polymorphism and Principles of Object Oriented Design, Python Optimizationspy_oop.html--
7November 26, 2021 (Exceptions Handling and Regular Expressions)Problem Solving, Errors in Python, Handling Exceptions, Raising Exceptions, User-defined Exceptions, Defining Clean-up Actions, Predefined Clean-up Actions, Iterators and Iterables, next and iter Functions, Regular Expressions, Matching Characters, Metacharacters, Repeating Things, Using Regular Expressions in Python, Performing Matches, Practice Programming By Solving a Code Interview Questionpy_errors.html, py_regex.html1, 2, 31, 2
8December 3, 2021 (Software Engineering and Version Control)Some Basic Terms in Software Engineering, Cohesion and Coupling Levels, What is Version Control, Centralized & Distributed Version Control Systems, Most Preferred Version Control Systems, Online VCS Hostings, What is Git, States (Modified, Staged, Committed), Addition & Deletion in Git, Basic Git Commands, Git History Graph, The Anatomy of a GIT Commit, Merge Methods (Fast-forward, Recursive), Automatic Merging, Resolving a Merge Conflict Using the Command Line, Merging & Resolving Conflicts in IDE, Working with Remotes, SSH and HTTPS Protocols for Clone URLscoh_coup.html--

Additional Resources

Useful Links

What's the next?

  • Advanced Programming in Python
  • Use Python to build web applications with Django
  • Web Scraping in Python