This course covers all the 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
1January 2, 2020Python Installation and Setup, How to Become a Programmer, Typing with 10 Fingers, Python Philosophy, Python Enhancement Proposals (PEPs), What is Python, High Level and Low Level Programming Languages, Compilers and Interpreters, Python 2.x vs Python 3.x, Why Python, Python Shell, PyCharm Integrated Development Environment, Python Basic Syntax, Computer Keyboard Key Explanations, Mono-space Fonts, Code Comments, Different Types of Errors, Variables, Static Typing and Dynamic Typing, type() Function, Basic Data Types, Operators, Operators Precedence, Bitwise Operators, Type Conversion, Truth Value Testing, Strings with Triple-quotes or Single Quotes or Double Quotes, Special Characters in Strings and Escaping Characterspy_basics_v2.html-1, 2-
2January 9, 2020Some Floating-Point Arithmetic, NaN and Infinity, Unpacking a Tuple, Alternative to do-while loops and switch-case statements in Python, if Statement, while Statement, 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, Using continue and break and else Keywords within Loopspy_dtypes.html

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

1, 2

1, 2

3January 23, 2020Problem Solving, for Statement, Sequences, Slicing Sequences, Sequence Operators, List Comprehension, String Formatting, Tuples, pass Statement, range() Function, 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() Functionspy_dtypes.html

1, 2, 3, 4, 5, 6

1, 2, 3

1, 2-1, 2-2, 3

4January 30, 2020Problem Solving, Stacks and Queues, Indexed Lists and Linked Lists, Debugging In PyCharm, 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, Lambda Functions, map() and filter() Functions, Recursive Functions, Big-Oh Analysis-

1

1, 2, 3

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

5February 6, 2020Problem Solving, Writing DRY Code, SoC Principle, Some Tips about Writing Maintainable Code and Software Internal Quality, 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() and reload() Functions, Packages in python,__name__ Special Variablepy_modules.html

1, 2

1, 2, 3

1-1, 1-2, 2, 3

6February 13, 2020Problem Solving, Working with Python Package Manager and VirtualEnv, 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_libs.html, py_oop.html

1, 2, 3, 4, 5, 6

1, 2

1, 2

7February 20, 2020Problem Solving, Class Method and Static Method, Inheritance, super() Function, help() Function, Base objects, Multiple Inheritance, isinstance() Function, Iterators and Iterables, Decorators, Property Decorator and Getter and Setters and Deleter, Special Methods, Underscore in Python, Polymorphism and Principles of Object Oriented Design, Python Optimizations--

1, 2, 3

1-1, 1-2, 2, 3

8March 5, 2020Problem Solving, Errors in Python, Handling Exceptions, Raising Exceptions, User-defined Exceptions, Defining Clean-up Actions, Predefined Clean-up Actions, Regular Expressions, Matching Characters, Metacharacters, Repeating Things, Using Regular Expressions in Python, Performing Matches, Using Stack Overflow Effectivelypy_errors.html, py_regex.html-

1

1

9March 12, 2020Writing a real-world program using some well-known high-level python packages, Practice Programming By Solving a Code Interview Question, Some Basic Terms in Software Engineering, Cohesion and Coupling Levels, Software Development Anti-Patternscoh_coup.html

1, 2, 3

1-

Additional Resources

Useful Links

What's the next?

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