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.
All available resources for this course will be added to the following table.
|1||May 11, 2019||Python Philosophy, What is Python, Python 2.x vs Python 3.x, Python Installation and Setup, Why Python, Python Shell, Python Basic Syntax, Variables, Basic Data Types, Operators, Type Conversion, Truth Value Testing, PyCharm Integrated Development Environment||python-basics.html||-||,||-|
|2||May 15, 2019||Sequences, Sequence Operators, List Comprehension, String Formatting, Tuples, Control Structures, Loops, Sets, Dictionaries, Functions||python-data-types.html||, , , , , , , ,||, ,||, , , ,|
|3||May 18, 2019||Problem Solving, Python Anti-Patterns, Python Wats||-||, , , ,||, , ,|
|4||May 22, 2019||Problem Solving, Modules Concepts, time Module, random Module, math Module, dir() Function, Packages in python, Working with Python Package Manager and VirtualEnv||modules.html, venv-packages.html||-|
|5||May 25, 2019||Problem Solving, Object-Oriented Concepts, Class and Object in Python, Instance Objects, Method Objects, Class and Instance Variables, Inheritance, Multiple Inheritance, Odds and Ends, Special Methods, Underscore in Python||python-oop.html||-|
|6||May 29, 2019||Problem Solving, Exceptions Handling, Writing a real-world program using some well-known high-level python packages||python-errors.html||-||-|
|7||June 1, 2019||Regular Expressions, Some Basic Terms in Software Engineering, Cohesion and Coupling Levels||python-regex.html, cohesion-coupling.html||-||-||-|
|8||June 8, 2019||What is Version Control, Centralized & Distributed Version Control Systems, Most Preferred Version Control Systems, Online VCS Hostings, What is Git, What Makes GIT Different (Snapshot vs. Difference, Local vs Online), States (Modified, Staged, Committed), SHA-1 Checksum, Addition & Deletion in Git, Basic Git Commands, Make Changes On A Specific Commit, HEAD Pointer, Git History Graph, The Anatomy of a GIT Commit, Git Branching, Merge Methods (Fast-forward, Recursive), Automatic Merging, Resolving a Merge Conflict Using the Command Line, Working with Remotes, SSH and HTTPS Protocols for Clone URLs, Creating Remote Branches on Local, Multi-line Commit Messages, Use GIT in IDE, Merging & Resolving Conflicts in IDE, Squash Merge, Git Rebase, Rebasing Public Branches, When to Delete Branches, Customizing Git Environment, Configuration Levels (System, Global, Local), Git Configuration Variables (User Identity, Editor), Checking GIT Configurations, Tracked (Unmodified, Modified, Staged) and Untracked Files, Lifecycle of the status of the files, The Example of Having Modified and Staging Area in a File, Staging Modified Files, Short Status, Ignoring Files and when to use them, Rules for patterns in .gitignore files, Additional .gitignore files in subdirectories, Viewing Staged and Unstaged Changes, Viewing diffs with diff viewing programs, Put Git Status and Git Diff to the editor when writing Commit Messages, Staging every file that is already tracked when creating a new commit, Removing Files in Git, Force Removal of Files in Git, Remove a File from The Tracked Area, Showing the difference in Git Log, Limiting log to only the last commits, Abbreviated Stats in Git Log, Pretty Printing Git Log, Print Git Log as an ASCII Graph, Find commits which changed the number of occurences of the string, Seperate path from commands options, Preventing the Display of Merge Commits, Redo the Last Commit or Edit its Commit Message, Unstaging a Staged File, Safe Undoing Commands vs. Dangerous Ones, Unmodifying a Modified Files, Showing Remotes, Removing Remotes, Listing Git Tags, Search for a Tag, Lightweight vs. Annotated Tags, Creating Tags, Tagging Later, Sharing Tags||git-version-control-system||-||-||-|