Basic Syntaxes
- Environment setup
- The python programming language
- What is program?
- What is debugging? Variables, Expressions and Statements
Functions
- Function calls
- Type conversion functions
- Math functions
- Composition
- Adding new functions
- Definitions and uses
- Flow of execution
- Parameters and arguments
- Variables and parameters are local
- Stack diagrams
- Fruitful functions and void functions
- Why functions?
- Importing with from
- Debugging
Conditions and Recursion
- Modulus operator
- Boolean expressions
- Logical operators
- Conditional execution
- Alternative execution
- Chained conditionals
- Nested conditionals
- Recursio
- Stack diagrams for recursive functions
- Infinite recursion
- Keyboard input
- Debugging
Fruitful Functions
- Return values
- Incremental development
- Composition
- Boolean functions
- More recursion
- Leap of faith
- Checking types
- ebugging
Iteration
- Multiple assignments
- Updating variables
- The while statement
- Break
- Debugging
- For loop
String
- A string is a sequence
- Len
- Traversal with a for loop
- String slices
- Strings are immutable
- Searching
- Looping and counting
- String methods
- The in operator
- String comparison
- Debugging
Lists
- A list is a sequence
- Lists are mutable
- Traversing a list
- List operations
- List slices
- List methods
- Map, filter and reduce
- Deleting elemen
- Lists and strings
- Objects and values
- Aliasing
- List arguments
- Debugging
Dictionaries
- Dictionary as a set of counters
- Looping and dictionaries
- Reverse lookup
- Dictionaries and lists
- Memos
- Global variables
- Long integers
- Debugging
Tuples
- Tuples are immutable
- Tuple assignment
- Tuples as return values
- Variable-length argument tuples
- Lists and tuples
- Dictionaries and tuples
- Comparing tuples
- Sequences of sequences
- Debugging
Set
- Usage
- Union, Difference
- Available methods
Exception Handling
- Introduction
- Exceptions versus Syntax Errors
- Raising an Exception
- The AssertionError Exception
- The try and except Block: Handling Exceptions
- The else Clause
Files
- Persistence
- Reading and writing
- Format operator
- Filenames and paths
- Catching exceptions
- Databases
- Writing module
- Debugging
CSV
- Introduction, Application and Usage
- reader and writer
- DictReader and DictWriter
- Simple CSV processing using functional programming
Pandas
- Introduction to Pandas
- DataFrame Data Structure
- DataFrame Indexing and Loading
- Querying a DataFrame
- Indexing Dataframes
- Manipulating DataFrame
Database with Python
- Installations
- Introduction, Application and Usage
- Basic Structured Query Language
- CRUID operations
Basic Data Visualization
- Principles of Information Visualization]
- Visualizing Data Using Spreadsheets
- Matplotlib
- Plotly
- Scatterplots
- Line Plots
- Bar Charts
- Histograms
- Plotting with Pandas
Classes and Objects
- User-defined types
- Attributes
- Real World Example
- Instances as return values
- Objects are mutable
- Copying
- Debugging
Classes and Methods
- Object-oriented features
- The self
- Printing objects
- The init method
- The __str__ method
- Other special methods
- Operator overloading
- Type-based dispatch
- Polymorphism
- @staticmethod
- Debugging
Callable and Non-Callable Object
- Introduction
- Checking callable or not
- Decorators
- Creating and using decorators
Inheritance
- Introduction
- Example
- Class attributes
- Private, Protected and Public
- Multiple Inheritance
- Class diagrams
- Debugging
- Data encapsulation
GIT
- installing Git
- status, log commit push, pull commands
- Branch, Tags and Multiple remote concept and Implementation
- checkout, reset, rebase, merge concept
- Gitlab vs Github vs Bitbucket
Bonus
- Advanced Strings, Date & Time
- Python os, re, sys
- GUI basics: Tkinter, Tcl/Tk
- Comprehensions: List, Dictionary
- CSV, Json, XML, SQLite with Python
- Data Science/Visualization: pandas, matplotlib
- Jupyter NoteBook
- Data Streaming using Big Data Technologies like Kafka.
Final Project
As per the recommendation of students, one of the following projects will be done by the instructor themselves!
- Web Scraping project (includes handling web scraping tools, proper file handling and implementation of sql)
- GUI project (any desktop application e.g: calculator, data entry application
Course Outline for Django Framework
Introduction o Introducing Django
Getting Started
- Installing Django
- The Model-View-Controller Design Pattern
- Apps Vs Project
- Why Apps?
- Request Lifecycle
- HTTP verbs
- HTTP status code
Manage.py
- What is manage.py?
- Available Commands
Django Views and URLconfs
- Views and URLconfs
- Separating Urls of different Apps
- Django Views: Dynamic Content
Bootstrap
- Introduction
- Use CDN or Download
- Grid System
- Forms, Well, Panels
- Modal, Dropdown, alerts, and Many more
- Material Design
Django Templates
- Django Templates
- Introduction Jinja
- For syntax
- If syntax
- Basic Template Tags and Filters
- Inheritance (extending a base)
- Templates in Views
Database
- Introduction to Sqlite
- Using Sqlite within Pycharm
- DDL and basic DML
- Using Mysql within Pycharm
Django Models
- Django Models
- Django Models: Basic Data Access
- Meta Class
- Writing different type of DML using ORM
- One to One Relationship
- One to Many Relationship
- Many to Many Relationship
- Makemigrations and migrate
The Django Admin Site
- The Django Admin Site
- Adding Models to Django Admin
- Customizing Change Lists and Forms
- Users, Groups and Permissions
- Using Other packages for theme changing
Django Forms
- Django Forms
- Form Validation
- ModelForm
- Tying Forms to Views
- Using django bootstrap package
Generic Views
- DetailView
- ListView
- FormView
- CreateView
- UpdateView
- DeleteView
User Authentication in Django
- User Authentication in Django
- Authentication in Web Requests
- Authentication Views
- Authentication Forms and Templates
- Managing Users in the Admin
- Customizing Authentication in Django
Django Sessions
- Django Sessions
- Using Sessions in Views
- Using Sessions out of Views
Django Middleware And Security
- Django Middleware
- Available Middleware
- User
Generating Non-HTML Content
- Generating Non-HTML Content
- Generating PDF’s
- The Syndication Feed Framework
- The Sitemap Framework
RESTful API
- Introduction
- JsonResponse
- Installing
- Django Rest
- Serialization
- Requests and Response
- Using Postman
Testing
- Introduction and Importance
- Writing test case
JS and Frontend Development
- Introduction
- Vanilla Js
- Event Listeners
- Ajax Get Request
- Ajax Post Request
- Introduction to React, Vue, Angular
- Introduction to NPM, bower, Webpack
- Introduction to Event Driven Development
Deployment
- Introduction to AWS, Google Compute, Azure, Alibaba clou
- Installing gunicorn
- Deployment Key (SSH Keys)
- Transfering Django app to Server using GIT
- CI and CD concept
- Chatops concept
Final Project
- News Portal Full web application with templating (Traditional approach) RestfulAPIs design for corresponding application (Modern approach/ Backend)
- Jobs Portal Full web application with templating (Traditional approach) RestfulAPIs design for corresponding application (Modern approach/ Backend)
- Order Management System Full web application with templating (Traditional approach) RestfulAPIs design for corresponding application (Modern approach/ Backend) (Note: among the three, only one will be done in class)
- Rest Api Development using Django Rest Framework
Awesome Django GitHub Repository
- Introduction
- Packages List
- Be updated to new available awesome packages and extension