Differences

This shows you the differences between two versions of the page.


en:courseware:python_programming:mapsa:211014 [2022/07/17 01:19] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +~~NOSIDEBAR~~
  
 +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.
 +
 +^**Session**^**Date**^**Subjects**^**Slides**^**Homework**^**Solutions**^
 +|0|October 14, 2021 (Introduction)|Course Introduction, How to Become a Programmer, Judge Systems, Typing with 10 Fingers|-|[[courseware/python_programming/resources/hw/2|1]]|-|
 +|1|October 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 Errors|{{ :courseware:python_programming:resources:slides:python_basics:py_basics_v3.html |}}|-|-|
 +|2|October 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, [[courseware/python_programming/resources/code/2|One Line If-condition-assignment]], ''match case'' Statement, [[courseware/python_programming/resources/code/8|''while'' Statement]], Sequences, [[courseware/python_programming/resources/code/14|Tuples]], Unpacking a Tuple, [[courseware/python_programming/resources/code/13|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 [[courseware/python_programming/resources/code/6|''continue'']], [[courseware/python_programming/resources/code/7|''break'' and ''else'']] Keywords within Loops, Alternative to do-while loops in Python, [[courseware/python_programming/resources/code/1|List Comprehension]], ''range()'' Function, [[courseware/python_programming/resources/code/3|Sets]], [[courseware/python_programming/resources/code/23|Dictionaries]]|{{ :courseware:python_programming:resources:slides:python_data_types:py_dtypes_v2.html |}}|[[courseware/python_programming/resources/hw/21|1]], [[courseware/python_programming/resources/hw/22|2]], [[courseware/python_programming/resources/hw/24|3]]|[[courseware/python_programming/resources/answer/21|1]], [[courseware/python_programming/resources/answer/22|2]], [[courseware/python_programming/resources/answer/24|3]]|
 +|3|October 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, [[courseware/python_programming/resources/code/10|''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|-|[[courseware/python_programming/resources/hw/16|1]], [[courseware/python_programming/resources/hw/4|2]], [[courseware/python_programming/resources/hw/19|3]], [[courseware/python_programming/resources/hw/17|4]], [[courseware/python_programming/resources/hw/5|5]], [[courseware/python_programming/resources/hw/8|6]]|[[courseware/python_programming/resources/answer/16|1]], [[courseware/python_programming/resources/answer/4|2-1]], [[courseware/python_programming/resources/answer/4-2|2-2]], [[courseware/python_programming/resources/answer/19|3]], [[courseware/python_programming/resources/answer/17-1|4-1]], [[courseware/python_programming/resources/answer/17-2|4-2]], [[courseware/python_programming/resources/answer/5|5]],  [[courseware/python_programming/resources/answer/8-1|6-1]], [[courseware/python_programming/resources/answer/8-2|6-2]]|
 +|4|November 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, [[courseware/python_programming/resources/code/9|Recursive Functions]], ''map()'' and ''filter()'' Functions, [[courseware/python_programming/resources/code/11|''enumerate()'']] and [[courseware/python_programming/resources/code/12|''zip()'']] Functions, Python Anti-Patterns, Python Wats, Converse Implication and More on Boolean Objects|-|[[courseware/python_programming/resources/hw/9|1]], [[courseware/python_programming/resources/hw/6|2]], [[courseware/python_programming/resources/hw/18|3]], [[courseware/python_programming/resources/hw/11|4]]|[[courseware/python_programming/resources/answer/9|1-1]], [[courseware/python_programming/resources/answer/9-2|1-2]], [[courseware/python_programming/resources/answer/6|2]], [[courseware/python_programming/resources/answer/18|3]], [[courseware/python_programming/resources/answer/11|4]]|
 +|5|November 12, 2021 (Modules, Packages, Virtual Environments)|Problem Solving, Modules Concepts, The ''import'' Statement, The ''from...import'' Statement, Locating Modules, Namespaces and Scoping, [[courseware/python_programming/resources/code/16|''nonlocal'' and ''global'' keywords]], ''time'' Module, ''random'' Module, ''math'' Module, ''dir()'' and ''globals()'' and ''locals()'' Functions, Packages in python, [[courseware/python_programming/resources/code/15|''__name__'' Special Variable]], Working with Python Package Manager and VirtualEnv, Managing the Installed Packages in PyCharm, Using Stack Overflow Effectively, Explain Course Project|{{ :courseware:python_programming:resources:slides:py_modules.html |}} {{ :courseware:python_programming:resources:slides:py_libs.html |}}|[[courseware/python_programming/resources/hw/10|1]], [[courseware/python_programming/resources/hw/12|2]], [[courseware/python_programming/resources/hw/13|3]]|[[courseware/python_programming/resources/answer/10|1]], [[courseware/python_programming/resources/answer/12-2|2-1]], [[courseware/python_programming/resources/answer/12-1|2-2]], [[courseware/python_programming/resources/answer/13|3]]|
 +|6|November 19, 2021 (Object-Oriented)|Problem Solving, Object-Oriented Concepts, [[courseware/python_programming/resources/code/17|Defining Classes and Creating Objects in Python]], [[courseware/python_programming/resources/code/17|Instance Variables]] and [[courseware/python_programming/resources/code/19|Class Variables]], [[courseware/python_programming/resources/code/17|Instance Objects]], [[courseware/python_programming/resources/code/18|Method Objects]],  [[courseware/python_programming/resources/code/18|Self Input]],  [[courseware/python_programming/resources/code/18|Constructor]], [[courseware/python_programming/resources/code/19|''__dict__'' Variable]], [[courseware/python_programming/resources/code/20|Class Method and Static Method]], [[courseware/python_programming/resources/code/21|Inheritance]], [[courseware/python_programming/resources/code/21|''super()'' Function]], [[courseware/python_programming/resources/code/21|''help()'' Function]], Base objects, Multiple Inheritance, ''isinstance()'' Function, Decorators, [[courseware/python_programming/resources/code/24|Property Decorator and Getter and Setters and Deleter]], [[courseware/python_programming/resources/code/22|Special Methods]], Underscore Use Cases in Python, Polymorphism and Principles of Object Oriented Design, Python Optimizations|{{ :courseware:python_programming:resources:slides:py_oop.html |}}|-|-|
 +|7|November 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 Question|{{ :courseware:python_programming:resources:slides:py_errors.html |}}, {{ :courseware:python_programming:resources:slides:python_regex:py_regex.html |}}|[[courseware/python_programming/resources/hw/23|1]], [[courseware/python_programming/resources/hw/20|2]], [[courseware/python_programming/resources/hw/7|3]]|[[courseware/python_programming/resources/answer/23|1]], [[https://github.com/smmsadrnezh/square_packing_problem/archive/master.zip|2]]|
 +|8|December 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 URLs|{{ :courseware:selected_topics_in_software_engineering:resources:slides:cohesion_coupling:coh_coup.html |}}|-|-|
 +
 +====== Additional Resources ======
 +
 +  * [[http://www.ict.ru.ac.za/Resources/cspw/thinkcspy3/thinkcspy3_latest|How to Think Like a Computer Scientist: Learning with Python 3]]
 +  * [[https://docs.python.org/3/tutorial/index.html|Official Python Tutorial]]
 +  * [[https://www.tutorialspoint.com/python3/index.htm|Tutorialspoint Python 3 Tutorial]]
 +
 +====== Useful Links ======
 +
 +  * [[https://quera.ir/course/9551/|Course Quera Page]]
 +  * [[https://www.jetbrains.com/student/|Getting Jetrains Educational License]]
 +  * [[https://www.python.org/ftp/python/3.10.0/python-3.10.0-amd64.exe|Python 3.10 Windows]]
 +  * [[https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg|Python 3.10 Mac]]
 +  * [[https://download.jetbrains.com/python/pycharm-professional-2021.2.2.exe|Pycharm Professional 2021.2 Windows]]
 +  * [[https://download.jetbrains.com/python/pycharm-professional-2021.2.2.dmg|Pycharm Professional 2021.2 Mac (Intel)]]
 +  * [[https://download.jetbrains.com/python/pycharm-professional-2021.2.2.tar.gz|Pycharm Professional 2021.2 Linux]]
 +
 +====== What's the next? ======
 +
 +  * Advanced Programming in Python
 +  * Use Python to build web applications with Django
 +  * Web Scraping in Python