Fundamentals of SDLC, DB, API, AI and IOT
This 10-day intensive course walks you through that discovery by going over the entire life cycle of a multi-tier system and its related software projects. You'll see what happens before any development takes place, and what impact the decisions and designs made at each step have on the development process. The development of the entire project, over the course of several iterations based on real-world iterations, will be executed, sometimes starting from nothing, in one of the fastest growing languages in the world—Python.
Learning Outcome
By the end of this course, the learner shall have the following skills:
- Understand what happens over the course of a system's life (SDLC)
- Establish what to expect from the pre-development life cycle steps.
- Find out how the development-specific phases of the SDLC affect development.
- Identify the existence of project-independent best practices and how to use them.
- Find out how to design and implement a high-performance computing process.
- Basic python programming
- Understand the basic syntax structures.
- Get updated on recent syntax changes in python 3.8 and 3.9 respectively.
- Advanced Data handling in python.
- Working with external libraries in python.
- Working with files and encoding.
- Understand different forms of data acquisition.
- Data Extraction and conversion.
- Learn statistical analytics of data.
- Use Python to get the basics of Data Analytics.
- Use simple scripting to present data.
- Have the ability to visualize data and manipulate them using simple python.
- Understand how data science delves into Machine Learning.
- Machine learning and coding in python using Scikit Learn
- Machine learning and coding in python usingXGBoost
- Using machine learning for predictions and analytics.
- Data Acquisition and scraping.
- Understanding of how Machine Learning works
- Basic development using AI
- Basics of networking and security
- Learn how to install SSL/TLS Certificate on the web server
- What is the difference between HTTP and HTTPS
- What is CA (Certificate Authority) and how chain of trust is built
- How TLS certificate is structured (subject name, issuer name, validity period, signature etc.)
- Linux basics
- RDBMS
- Containers
- Remote queries
- SSH
Prerequisites
- High speed internet connection
- Ability to use a computer
- Ability to use the internet
- Web camera (for remote learning only)
- Microphone (for remote learning only)
- Conferencing software (Zoom / Webex / MS Teams)
- Manage files and understand basic file systems in the computer
- Ability to communicate in the English language
- Ability to connect to external servers
- Full admin / root access
Course Outline
Programming versus Software Engineering.
- Programming with Python.
- What Is Algorithm
- What Is Programming
- What Is Program
- Machine Language
- Programming Language
- What Is Translator
- Brief History of Python
- Python Versions
- Installing Python
- IDEs
- Environment Variables
- Python Documentation
- Hello world with python
- Modes of Programming
- What Is Colab Notebook
- Why Colab Notebook Is Important
- Installing Colab Notebook
- Main Components of Colab Notebook
- Modes
- Exporting Notebook Documents
- Identifiers
- Reserved Words
- Lines and Indentation
- Comments
- Numbers
- Python Lists
- Python Tuples
- Python Dictionaries
- Python Sets
- Copying
- Python Strings
- String formatting
- Regular Expressions
- Arithmetic Operators
- Comparison (Relational) Operators
- Assignment Operators
- Logical Operators
- Membership Operators
- Operators Precedence
- Decision Making
- The if Statement
- The if else Statement
- For Loop
- While Loop
- Break And Continue
- Defining Your Own Functions
- Parameters
- Function Documentation
- Passing Collections to a Function
- Variable Number of Arguments
- Scope
- Map
- Filter
- Lambda
- What Are Modules
- Importing Modules
- Aliasing
- Importing Set Of Element From A Module
- Namespace
- What Are Packages
- dir function
- help function
- What Is Exception
- Exception Types
- Try Except Component
- Handling General Exception
- Handling Specific Exception
- Raise
- Access Modes
- Writing Data to a File
- Reading Data From a File
- Read Functions
- PDF reading
- XML files
- What is OOP
- Why OOP Is Important
- Classes
- Attributes
- Methods
- Constructor
- Inheritance
- Polymorphism
- Static class
- The Software Development LifeCycle(SDLC).
- The SDLC Overview.
- Pre-development phases of SDLC.
- Specific phases of SDLC.
- Post-development phases of the SDLC.
- System Modeling.
- System Modeling Overview.
- Software Architecture.
- Use Cases.
- Data Structure and Flow.
- Interprocess Communication.
- System Scope and Scale.
- Methodologies, Paradigms, and Practices.
- Methodologies, Paradigms, and Practices Overview.
- Process Methodologies.
- Development Paradigms.
- Development Practices.
- Machine Learning
- Advanced Visualization with Seaborn.
- Covariance and Correlation.
- Conditional Probability.
- Bayes' Theorem.
- Basic Machine Learning (using Python).
- Supervised vs. Unsupervised Learning, and Train/Test.
- Using Train/Test to Prevent Overfitting a Polynomial Regression.
- Bayesian Methods: Concepts.
- Practice with:
- Implementing a Spam Classifier with Naive Bayes.
- K-Means Clustering.
- Entropy
- Decision Trees
- Bias/Variance Tradeoff
- K-Fold Cross-Validation to avoid overfitting
- Data Cleaning and Normalization
- Cleaning web log data
- Normalizing numerical data
- Detecting outliers
- Feature Engineering
- Imputation Techniques for Missing Data
- Handling Unbalanced Data: Oversampling
- Networking
- Linux basics
- Linux CLI
- Overview of researches dedicated to SSL, TLS and HTTPS
- Overview of the certificates of some popular websites
- Difference between HTTP and HTTPS
- Analyzing traffic using Wireshark
- TCP/IP stack by example
- Analyzing HTTP protocol using Wireshark
- Analyzing HTTPS and TLS using Wireshark
- Symmetric Key Encryption
- Symmetric Key Encryption Algorithms
- Hashing Overview
- MD5 hashing algorithm
- SHA hashing algorithm and HMAC overview
- Encryption using asymmetric keys
- Signing data using assymmetric keys
- RSA Overview
- Certificate overview
- Installing OpenSSL
- Using OpenSSL for RSA keys generation
- Exploring certificate of Instagram
- Exploring certificate of Comodo
- Root CA and root certificates in the OS
- How Chain of Trust is built
- Verifying chain of certificates
- Verifying SSL certificate and certificates chain
- PKI, Chain of trust and certificates summary
- Certificate domain scopes
- Introduction to the SSL and TLS
- History and versions of the SSL and TLS
- Why RSA is not used for data encryption in HTTPS
- How TLS session is established
- Analyzing TLS session setup using Wireshark
- Overview of cipher suites
- Encryption key generation by the web browser
- Delivering encryption key using Diffie Hellman key exchange
- Diffie Hellman overview
- Modulus operation
- Diffie Hellman algorithm
- Point Addition on Elliptic Curve
- Multiple Point Addition
- Point Doubling and Optimization
- Elliptic Curve Discrete Log Problem
- Comparing formulas
- ECDHE - Elliptic Curve Diffie Hellman Exchange
- Exploring ECDHE with ECDSA
- Database basics
- Understanding RDBMS
- Understanding Microsoft’s SQl Server
- SQL vs T-SQL
- Understanding Production level setup
- Containers
- Remote Server for MS SQL
- Containers vs Virtual Box
- Installing Containers on Ubuntu
- Installing MS SQL in Ubuntu 18.0.4 in a container
- Accessing the MS SQL Server
- Microsoft SQL Server Management Studio
- DBs
- Tables
- Stored Procedures
- Functions
- Security
- Importing Data
- Exporting Data
- Security
- Azure Data Studio
- DBs
- Tables
- Stored Procedures
- Functions
- SQL
- Select
- Where
- Like
- Order
- Insert
- Update
- Delete
- IN Operator
- Between
- Aggregate
- Group
- Alter
- Sub queries
- Stored Procedures
- Functions
- Assessment
Practical, connected learning
My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.