This course covers all basic knowledge needed for programming in python. The course 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.

SessionDateSubjectsSlidesCodesHomeworkSolutions
1July 11, 2019How to Become a Programmer, Python Philosophy, What is Python, Python 2.x vs Python 3.x, Why Python, Python Shell, Python Basic Syntax, Python Enhancement Proposals (PEPs), Variables, Static Typing and Dynamic Typing, High Level and Low Level Programming Languages, Compilers and Interpreters, type() Function, Computer Keyboard Key Explanations, Mono-space Fonts, Python Installation and Setup, Different Types of Errors, Basic Data Types, Operators, Type Conversion, Truth Value Testing, PyCharm Integrated Development Environment, Some Floating-Point Arithmetic, Strings with Triple-quotes or Single Quotes or Double Quotes, Special Characters in Strings, Typing with 10 Fingerspy_basics_v2.html-

1, 2

-
2July 18, 2019Sequences, Slicing Sequences, Sequence Operators, List Comprehension, String Formatting, Tuples, if Statement, for Statement, while Statement, pass Statement, range() Function, One Line If-condition-assignment, Evaluating Order of Assignments, Mutable and Immutable Data Types, id() Function, Copy By Reference and Copy By Value, Compare Two Objects with == and is, Bitwise Operators, abs() and pow() and round() Functions, all() and any() Function, input() Function, eval() Function, Loops, Sets, Dictionaries, Quick Review on str() and list() and tuple() and float() and bool() and int() and dict() and set() and complex() Functions, Stacks and Queues, Indexed Lists and Linked Listspy_dtypes.html

1, 2, 3, 4, 5, 6, 7, 8, 9

1, 2, 3

1, 2-1, 2-2, 3-1, 3-2

3July 25, 2019Problem Solving, Debugging In PyCharm, Using continue and break and else Keywords with Loops, Defining Functions, Default Argument Values, Arbitrary Argument Lists, Unpacking Argument Lists, Documentation Strings, Function Annotations, Python Naming Conventions, Standard Output and Standard Error Streams, enumerate() and zip() Functions, Python Anti-Patterns, Python Wats, Converse Implication and Boolean Objects, NaN and Infinity, Recursive Functions-

1, 2, 3, 4

1, 2, 3, 4

1, 2-1, 2-2, 3, 4

4August 1, 2019Problem Solving, Modules Concepts, The import Statement, The search path, The from…import Statement, Locating Modules, Namespaces and Scoping, time Module, random Module, math Module, dir() and globals() and locals() and reload() Functions, Packages in pythonpy_modules.html, py_libs.html

1, 2

1, 2, 3

1, 2-1, 2-2, 3

5August 8, 2019Problem Solving, __name__ Special Variable, Working with Python Package Manager and VirtualEnv, Writing DRY Code, SoC Principle, Some Tips about Writing Maintainable Code and Software Internal Quality, Managing the Installed Packages in PyCharm, PyCharm Keyboard Shortcuts, Object-Oriented Concepts, Defining Classes and Creating Objects in Python, Class Variables and Instance Variables, Instance Objects, Method Objects, Self Input, Constructor, __dict__ Variablepy_oop.html

1, 2, 3, 4, 5, 6, 7

1, 2, 3

1, 2-1, 2-2, 3

6August 15, 2019Problem Solving, Class Method and Static Method, Inheritance, super() Function, help() Function, Base objects, Multiple Inheritance, isinstance() Function, Lambda Functions, map() and filter() Functions, Special Methods, Underscore in Python, Polymorphism and Principles of Object Oriented Design, Python Optimizations, Using Stack Overflow Effectively----
7August 22, 2019Iterators and Iterables, Generator Functions, Decorators, Property Decorator and Getter and Setters and Deleter, Exceptions Handling, Regular Expressionspy_errors.html, py_regex.html---
8August 29, 2019 Writing a real-world program using some well-known high-level python packages, Some Basic Terms in Software Engineering, Cohesion and Coupling Levels, Software Development Anti-Patterns, Practice By Solving Code Interview Questionscoh_coup.html

1, 2, 3

11

Additional Resources

Useful Links

What's the next?

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