FA-0756Software DevelopmentData & AnalyticsCybersecurity

Software Engineering Foundations with Python, Data and SQL

SDLC, system modelling, introductory machine learning and network security

Introduction

Why this course

Follow the development lifecycle of a small multi-tier software project, from scope and modelling through implementation and review. Build Python foundations, explore data and machine-learning examples, and work with a prepared SQL Server environment.

The ten-day programme is a broad foundation with guided exercises and selected specialist demonstrations. Networking and certificate topics explain the supporting security concepts; cryptographic mathematics, high-performance design and production deployment are introductory discussions rather than advanced engineering qualifications.

Learning outcomes

Learning outcomes

  • Explain SDLC phases and the impact of pre-development, implementation and post-development decisions.
  • Model use cases, software architecture, data flow, inter-process communication and system scope.
  • Write basic Python programs using collections, control flow, functions, modules, exceptions, files and objects.
  • Acquire and convert permitted sample data, perform introductory statistics and visualise results.
  • Build and evaluate selected scikit-learn models; recognise preprocessing leakage, overfitting and class imbalance.
  • Describe Linux, SSH, networking, HTTP/HTTPS, certificate trust and basic TLS operation.
  • Use a prepared relational database to create objects, query and modify data, and understand permissions and deployment considerations.
Prerequisites

Prerequisites

Basic computer, internet and file-management skills. No previous Python experience is required; comfort with introductory mathematics supports the statistics demonstrations.

A reliable connection and authorised access to prepared notebook, Linux, database and packet-analysis training environments. Use approved installation permissions and lab endpoints rather than unrestricted root or network access.

Training outline

10 modules

·
01Module 1 — Programming and the Python environment1 topics

Programming versus software engineering, algorithms, machine language, programming languages and translators.

  • Brief History of Python
  • Supported Python 3 versions and library compatibility
  • Installing Python
  • IDEs
  • Environment Variables
  • Python Documentation
  • Hello world with python
  • Modes of Programming
  • What Is Colab Notebook
  • Why Colab Notebook Is Important
  • Accessing hosted Colab notebooks or a prepared local Jupyter environment
  • Main Components of Colab Notebook
  • Modes
  • Exporting Notebook Documents
02Module 2 — Python syntax, collections and control flow25 topics
  • 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
03Module 3 — Functions, modules, files and objects38 topics
  • 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
  • Handle exceptions deliberately; avoid swallowing broad failures
  • 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
  • Class-level attributes and static methods in Python
04Module 4 — Lifecycle, modelling and development practice4 topics
  • The SDLC Overview.
  • Pre-development phases of SDLC.
  • Specific phases of SDLC.
  • Post-development phases of the SDLC.

System modelling

  • System Modeling Overview.
  • Software Architecture.
  • Use Cases.
  • Data Structure and Flow.
  • Interprocess Communication.
  • System Scope and Scale.

Methodologies and practice

  • Methodologies, Paradigms, and Practices Overview.
  • Process Methodologies.
  • Development Paradigms.
  • Development Practices.

Consider API contracts within inter-process communication and data-acquisition examples; this is not a separate API-framework development track.

05Module 5 — Data acquisition, cleaning and visualisation4 topics
  • Use external libraries, file encodings, PDF/XML extraction and permitted sample web data.
  • Statistical summaries and Seaborn visualisation; covariance, correlation, conditional probability and Bayes concepts.
  • Clean sample web-log data, normalise numerical features, detect outliers and impute missing values.
  • Feature engineering and class imbalance, including oversampling within training data only.
06Module 6 — Introductory machine learning5 topics
  • Supervised and unsupervised learning, train/test separation and polynomial regression.
  • Naive Bayes spam-classifier example, K-means clustering, entropy and decision trees.
  • Bias/variance trade-offs and K-fold cross-validation; evaluation estimates generalisation but does not guarantee absence of overfitting.
  • Use consistent preprocessing fitted on training data, and keep evaluation data separate.
  • Selected XGBoost demonstration alongside scikit-learn examples; interpret limitations of predictions.
07Module 7 — Linux and network foundations4 topics
  • Linux basics, command-line use, SSH and authorised remote access.
  • TCP/IP, HTTP and HTTPS; inspect prepared or authorised traffic with Wireshark.
  • Symmetric encryption, hashing and HMAC; MD5 as a legacy algorithm, not a recommended security primitive.
  • Public-key encryption, signatures and RSA concepts.
08Module 8 — Certificates and TLS5 topics
  • Inspect sample website certificates: subject, issuer, validity, signatures and domain scope.
  • OpenSSL examples, RSA key generation, root trust, certificate chains and chain verification.
  • Guided certificate setup in a prepared web-server lab; TLS versions and handshake inspection.
  • Distinguish symmetric record encryption, authentication and key agreement. TLS 1.3 does not use static RSA key transport.
  • Conceptual Diffie-Hellman and modular arithmetic; elliptic-curve point addition, doubling, discrete-log ideas and ECDHE/ECDSA comparisons. These are demonstrations, not implementation of custom cryptography.
09Module 9 — Relational database environment and objects5 topics
  • RDBMS and SQL Server; SQL versus T-SQL.
  • Prepared supported SQL Server container or remote instance; containers versus virtual machines and production-configuration considerations.
  • Connect with SSMS, sqlcmd or Visual Studio Code with the MSSQL extension.
  • Databases, tables, stored procedures, functions and access permissions.
  • Import and export sample data and discuss database-security responsibilities.
10Module 10 — SQL practice and assessment15 topics
  • Select
  • Where
  • Like
  • Order
  • Insert
  • Update
  • Delete
  • IN Operator
  • Between
  • Aggregate
  • Group
  • Alter
  • Sub queries
  • Stored Procedures
  • Functions

Review the small project across successive iterations and assess programming, data handling and system-design decisions.

A programme built around your team.

Share your training goals and requirements.

Software Engineering Foundations with Python, Data and SQL
FA-0756

Share your requirements for this programme.

Training enquiry

Software Engineering Foundations with Python, Data and SQL