← All courses

Training

Fundamentals of SDLC, DB, API, AI and IOT

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.

  1. Programming with Python.
    1. What Is Algorithm
    2. What Is Programming
    3. What Is Program
    4. Machine Language
    5. Programming Language
    6. What Is Translator
    7. Brief History of Python
    8. Python Versions
    9. Installing Python
    10. IDEs
    11. Environment Variables
    12. Python Documentation
    13. Hello world with python
    14. Modes of Programming
    15. What Is Colab Notebook
    16. Why Colab Notebook Is Important
    17. Installing Colab Notebook
    18. Main Components of Colab Notebook
    19. Modes
    20. Exporting Notebook Documents
    21. Identifiers
    22. Reserved Words
    23. Lines and Indentation
    24. Comments
    25. Numbers
    26. Python Lists
    27. Python Tuples
    28. Python Dictionaries
    29. Python Sets
    30. Copying
    31. Python Strings
    32. String formatting
    33. Regular Expressions
    34. Arithmetic Operators
    35. Comparison (Relational) Operators
    36. Assignment Operators
    37. Logical Operators
    38. Membership Operators
    39. Operators Precedence
    40. Decision Making
    41. The if Statement
    42. The if else Statement
    43. For Loop
    44. While Loop
    45. Break And Continue
    46. Defining Your Own Functions
    47. Parameters
    48. Function Documentation
    49. Passing Collections to a Function
    50. Variable Number of Arguments
    51. Scope
    52. Map
    53. Filter
    54. Lambda
    55. What Are Modules
    56. Importing Modules
    57. Aliasing
    58. Importing Set Of Element From A Module
    59. Namespace
    60. What Are Packages
    61. dir function
    62. help function
    63. What Is Exception
    64. Exception Types
    65. Try Except Component
    66. Handling General Exception
    67. Handling Specific Exception
    68. Raise
    69. Access Modes
    70. Writing Data to a File
    71. Reading Data From a File
    72. Read Functions
    73. PDF reading
    74. XML files
    75. What is OOP
    76. Why OOP Is Important
    77. Classes
    78. Attributes
    79. Methods
    80. Constructor
    81. Inheritance
    82. Polymorphism
    83. Static class
  2. The Software Development LifeCycle(SDLC).
    1. The SDLC Overview.
    2. Pre-development phases of SDLC.
    3. Specific phases of SDLC.
    4. Post-development phases of the SDLC.
  3. System Modeling.
    1. System Modeling Overview.
    2. Software Architecture.
    3. Use Cases.
    4. Data Structure and Flow.
    5. Interprocess Communication.
    6. System Scope and Scale.
  4. Methodologies, Paradigms, and Practices.
    1. Methodologies, Paradigms, and Practices Overview.
    2. Process Methodologies.
    3. Development Paradigms.
    4. Development Practices.
  5. Machine Learning
    1. Advanced Visualization with Seaborn.
    2. Covariance and Correlation.
    3. Conditional Probability.
    4. Bayes' Theorem.
    5. Basic Machine Learning (using Python).
    6. Supervised vs. Unsupervised Learning, and Train/Test.
    7. Using Train/Test to Prevent Overfitting a Polynomial Regression.
    8. Bayesian Methods: Concepts.
    9. Practice with:
    10. Implementing a Spam Classifier with Naive Bayes.
    11. K-Means Clustering.
    12. Entropy
    13. Decision Trees
    14. Bias/Variance Tradeoff
    15. K-Fold Cross-Validation to avoid overfitting
    16. Data Cleaning and Normalization
    17. Cleaning web log data
    18. Normalizing numerical data
    19. Detecting outliers
    20. Feature Engineering
    21. Imputation Techniques for Missing Data
    22. Handling Unbalanced Data: Oversampling
  6. Networking
    1. Linux basics
    2. Linux CLI
    3. Overview of researches dedicated to SSL, TLS and HTTPS
    4. Overview of the certificates of some popular websites
    5. Difference between HTTP and HTTPS
    6. Analyzing traffic using Wireshark
    7. TCP/IP stack by example
    8. Analyzing HTTP protocol using Wireshark
    9. Analyzing HTTPS and TLS using Wireshark
    10. Symmetric Key Encryption
    11. Symmetric Key Encryption Algorithms
    12. Hashing Overview
    13. MD5 hashing algorithm
    14. SHA hashing algorithm and HMAC overview
    15. Encryption using asymmetric keys
    16. Signing data using assymmetric keys
    17. RSA Overview
    18. Certificate overview
    19. Installing OpenSSL
    20. Using OpenSSL for RSA keys generation
    21. Exploring certificate of Instagram
    22. Exploring certificate of Comodo
    23. Root CA and root certificates in the OS
    24. How Chain of Trust is built
    25. Verifying chain of certificates
    26. Verifying SSL certificate and certificates chain
    27. PKI, Chain of trust and certificates summary
    28. Certificate domain scopes
    29. Introduction to the SSL and TLS
    30. History and versions of the SSL and TLS
    31. Why RSA is not used for data encryption in HTTPS
    32. How TLS session is established
    33. Analyzing TLS session setup using Wireshark
    34. Overview of cipher suites
    35. Encryption key generation by the web browser
    36. Delivering encryption key using Diffie Hellman key exchange
    37. Diffie Hellman overview
    38. Modulus operation
    39. Diffie Hellman algorithm
    40. Point Addition on Elliptic Curve
    41. Multiple Point Addition
    42. Point Doubling and Optimization
    43. Elliptic Curve Discrete Log Problem
    44. Comparing formulas
    45. ECDHE - Elliptic Curve Diffie Hellman Exchange
    46. Exploring ECDHE with ECDSA
  7. Database basics
    1. Understanding RDBMS
    2. Understanding Microsoft’s SQl Server
    3. SQL vs T-SQL
    4. Understanding Production level setup
    5. Containers
    6. Remote Server for MS SQL
    7. Containers vs Virtual Box
    8. Installing Containers on Ubuntu
    9. Installing MS SQL in Ubuntu 18.0.4 in a container
    10. Accessing the MS SQL Server
    11. Microsoft SQL Server Management Studio
    12. DBs
    13. Tables
    14. Stored Procedures
    15. Functions
    16. Security
    17. Importing Data
    18. Exporting Data
    19. Security
    20. Azure Data Studio
    21. DBs
    22. Tables
    23. Stored Procedures
    24. Functions
    25. SQL
    26. Select
    27. Where
    28. Like
    29. Order
    30. Insert
    31. Update
    32. Delete
    33. IN Operator
    34. Between
    35. Aggregate
    36. Group
    37. Alter
    38. Sub queries
    39. Stored Procedures
    40. Functions
  8. Assessment

Practical, connected learning

My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.