Course Content - IR 4.0 Foundation

Course Name - IR 4.0 Foundation Course - Linux, Python Programming, Data Analysis, and Database Management for AI Development


Course Objectives: 

  • Develop a comprehensive understanding of operating system concepts, particularly focusing on Linux OS.
  • Gain familiarity with open-source software and understand the advantages of using Linux.
  • Acquire proficiency in Linux commands and shell scripting.
  • Gain proficiency in Python programming fundamentals.
  • Develop command-line applications using Python, including a task manager and a calculator.
  • Learn advanced Python programming concepts such as modules, packages, and file I/O.
  • Gain practical experience in data analysis with Python.
  • Understand relational database concepts and MySQL installation and administration.
  • Learn to integrate Python with MySQL for executing SQL queries and handling query results.
  • Understand the importance of data analysis in AI and Machine Learning projects.
  • Develop critical thinking skills and problem-solving abilities through practical projects and case studies.

Program Benefits: 

  • Hands-on experience: Gain practical experience through exercises, and real-world scenarios/case studies.
  • Industry relevance: Stay up to date with current technologies, frameworks, and best practices.
  • Portfolio development: Build a strong portfolio showcasing your ideas to solve the case studies and to demonstrate your skills to potential employers.
  • Career support: Receive guidance on career development in the relevant tech domains.

Upon successful completion of the program, learners will have a comprehensive understanding of Python programming, Data Analytics with Python and database integration be able to create functional applications and possess the necessary skills to pursue entry-level roles or further education in the field. 


Skill Sets:

  • Open-Source Software: Familiarity with open-source software and the benefits of using Linux.
  • Linux Commands & Shell Scripting: Proficiency in Linux commands and shell scripting.
  • Python Fundamentals: Proficiency in Python programming fundamentals.
  • Command-Line Applications: Developing command-line applications using Python.
  • Advanced Python Programming: Understanding Python modules, packages, and file I/O in Python.
  • Data Analysis with Python: Practical experience in data analysis using Python.
  • Relational Databases & MySQL: Understanding relational database concepts and MySQL administration.
  • Python & MySQL Integration: Integrating Python with MySQL for executing and handling SQL queries.
  • Data Analysis in AI/ML: Understanding the role of data analysis in AI and Machine Learning projects.

Prerequisites: 

  • Basic knowledge of using the internet and computer systems.   
  • Basic understanding of problem-solving.  
  • Introductory understanding of programming.  

Software and tools requirement:


Program Outline:

Component

Duration

Technical Course Content

70 Hrs.

Case Study

10 Hrs.

Employability Skills

10 Hrs.

Self-Paced

10 Hrs.

Total Duration

100 Hrs.


Assessment Rubric:

Assessment Component

Evaluation Parameters

Maximum Marks

Final Term Assessment

VIA LMS

40 Marks


Program Structure: 

The program is designed to be completed in 15 to 16 weeks covering around 100 hours of content and project.

Week

Description of the content to be covered

Duration (Hrs.)

1

Unit I-Linux Operating System

12

1

Introduction to Operating System

·  Definition and functions of an operating system

·  Role of an operating system in managing hardware and software resources

·  Overview of Linux OS

Getting Started with Open-Source OS

·  Understanding open-source software

·  Advantages of using Linux

Linux Kernel and its distributions

·  Overview of Linux kernel

·  Popular distributions of Linux (Ubuntu, CentOS, Debian, etc.)

Hands-on:

·  Installation of Virtual Box and Ubuntu.

6

2

Linux Commands

·  Basic commands for file management, navigation, and system information

Shell Scripting, SSH and SCP commands in Linux

·  Writing and executing shell scripts

·  Secure Shell (SSH) for remote access

·  Secure Copy (SCP) for file transfer

Working on different text editors: nano, vi

·  Introduction to nano and vi text editors

·  Basic commands for editing files

Managing Linux Files

·  File permissions and ownership

·  File manipulation commands

Managing User Permissions

·  User and group management

·  Permission levels and access control

6

3

Unit II- Python Fundamentals: Building Blocks of Programming

18

3

Installation and Setup

·  Downloading and installing Python on different operating systems

·  Setting up the development environment

·  Introduction to Integrated Development Environments (IDEs) such as PyCharm, VSCode, and Jupyter Notebook

·  Configuring the chosen IDE for Python development: Jupyter Notebook

·  To use GitHub Co-Pilot within a Python development environment to assist with code completion tasks.

Getting Started with Python

·  Writing and executing the first Python program

·  Introduction to the Python interpreter and interactive mode

·  Writing a simple "Hello, World!" program

·  Understanding data types

·  Introducing fundamental data types: int, float, str, bool

·  Exploring sequences: list, tuple, and range

·  Understanding mapping types: Dictionary and Set.

6

4

Control Flow and Functions

·  Control flow statements

·  Understanding conditional statements: if, else, Elif

·  Using loops: for and while loops

·  Iterating through sequences and performing actions based on conditions

·  Defining and using functions

·  Writing functions to encapsulate reusable code

·  Passing arguments to functions and returning values

·  Exploring the scope of variables within functions

Hands-on:

·  Building a Task Manager Application: Students will develop a command-line task manager application using Python. This application will allow users to manage tasks by adding, deleting, and viewing tasks, along with marking tasks as completed.

·  Building a Simple Calculator Application: Students develop a command-line calculator application using functions, control flow statements, and error-handling techniques.

6

5

Object-Oriented Programming (OOP) Basics

·  Introduction to OOP concepts

·  Understanding classes and objects

·  Encapsulation and abstraction in OOP

·  Implementing basic classes and objects in Python

·  Inheritance and polymorphism

·  Creating subclasses and overriding methods

·  Implementing polymorphism through method overriding

Hands-on:

·  Implementing a Simple Banking System: Students design and implement a simple banking system using object-oriented programming principles, including classes for accounts, transactions, and error handling for invalid inputs.

6

6

Unit III: Advanced Python Programming

6

6

Modules and Packages

·  Understanding modules and packages

·  Organizing code into modules for better maintainability

·  Creating and importing modules into Python scripts

·  Installing and using third-party packages

·  Introduction to the Python Package Index (PyPI)

·  Using pip to install external packages and libraries

File I/O and Error Handling

·  Reading from and writing to files

·  Opening, reading, and writing to text files

·  Handling different file modes (read, write, append)

·  Handling exceptions and errors

·  Understanding exceptions and their types in Python

·  Writing try-except blocks to handle exceptions gracefully

Practical Projects and Case Studies

Hands-on:

·  Data Analysis with Python: Students analyse a dataset containing sales transactions, applying concepts learned in Python programming to extract meaningful insights and generate reports.

 

6

7

Unit IV: Introduction to Relational Databases and MySQL

18

7

Introduction to Databases

·  Overview of Database Management Systems (DBMS)

·  Explanation of DBMS and its role in managing data efficiently

·  Importance and benefits of using a database for data storage and retrieval

·  Types of DBMS

·  Understanding different types of databases (relational, NoSQL, etc.)

·  Advantages and use cases for each type of database system

Introduction to Relational Databases

·  Understanding Relational Database Concepts

·  Explanation of relational database concepts such as tables, columns, rows, and relationships

·  Overview of key terms including primary key, foreign key, and unique key

·  Introduction to MySQL

·  Installing MySQL on local machines or using cloud-based services

·  Connecting to the MySQL server and accessing the MySQL shell

Manipulating and Querying Data in MySQL

·  Introduction to SQL Commands (DDL, DML, DQL)

·  Explanation of Data Definition Language (DDL), Data Manipulation Language (DML), and Data Query Language (DQL) commands

·  Examples of commonly used SQL commands such as CREATE, INSERT, SELECT, UPDATE, DELETE

·  Performing CRUD Operations in MySQL

Hands-on:

·  Exercise to create, read, update, and delete data in MySQL tables using SQL commands.

6

8

Building a Simple Database Application

·  Designing a Database Schema

·  Planning the Database Schema

·  Identifying entities and relationships for the application

·  Designing tables and defining attributes for each entity

·  Normalization and Data Integrity

·  Explanation of database normalization principles

·  Ensuring data integrity through proper table design and normalization

Hands-on:

·  Building a Task Management System: Designing a simple task management system with users, tasks, and task assignments, Defining the database schema based on the project requirements, Implementing the Database Schema in MySQL, creating tables, defining relationships, and setting up constraints in MySQL.

6

9

Python and MySQL Integration

·  Establishing Connection to MySQL Database using Python

·  Installing and configuring MySQL Connector/Python library

·  Writing Python code to connect to a MySQL database

·  Executing SQL Queries from Python Scripts

·  Using Python to execute SQL queries and retrieve results from MySQL database tables

·  Handling query results and processing data in Python scripts

Hands-on:

·  Developing a Simple Task Management Application

·  Student Management System for a School/College.

6

 

Unit V: Data Analysis with Python

16

10

Introduction to Data Analysis with Python

·  Importance of Data Analysis

Hands-on:

·  Data Analytics using MS Excel: Analyze the performance of students in a recent exam to identify areas for improvement and provide targeted support.

Overview of Data Analysis in AI and Machine Learning

·  Understanding the role of data analysis in AI and ML projects.

·  Importance of data preprocessing, feature engineering, and exploratory data analysis (EDA).

Overview of Data Analysis Libraries in Python

·  Introduction to popular data analysis libraries such as NumPy, Pandas, Matplotlib, and Seaborn

·  Advantages and use cases for each library in data analysis projects

Introduction to NumPy

·  Overview of NumPy and its importance

·  Installing NumPy

·  NumPy arrays: creation, attributes, and indexing       

·  NumPy array operations: arithmetic, broadcasting, aggregation 

·  Working with multi-dimensional arrays and reshaping data   

Hands-on:

·  Image Processing with NumPy.

8

11

Introduction to Pandas

·  Overview of Pandas and its importance 

·  Installing Pandas      

·  Pandas Series and Data Frame   

·  Loading and handling data with Pandas 

·  Data manipulation with Pandas: filtering, sorting, grouping   

Hands-on:  

·  Financial Data Analysis with Pandas

Data Visualization with Matplotlib and Seaborn

·  Introduction to Matplotlib and Seaborn Libraries

·  Overview of matplotlib's pyplot interface for creating static plots

·  Introduction to Seaborn for creating aesthetically pleasing statistical graphics

·  Creating Various Types of Plots

·  Generating scatter plots, line plots, bar plots, histograms, and box plots using Matplotlib and Seaborn

Hands-on:

·  Practical: Exploratory Data Analysis (EDA) on a Real-world Dataset

·  Dataset Selection and Loading

·  Selecting a real-world dataset for analysis (e.g., housing prices, stock market data, weather data)

·  Loading the dataset into Python using Pandas

·  Exploratory Data Analysis

·  Conducting basic statistical analysis (mean, median, standard deviation) on numerical variables

·  Visualizing relationships between variables using scatter plots, histograms, and correlation matrices

8

12-14

Case Study: Examining Real-world Industry Use Cases

10

 

·  Apply acquired knowledge and skills to solve real-world case studies.

10


Industry Use Cases:

Below are several potential problem statements in which students can employ their learned skills to create and implement a practical application. 

  1. Stock Market Analysis: Analyze historical stock market data using Python libraries like Pandas, NumPy, and Matplotlib. Explore stock price trends, volatility, and correlations between different stocks.
  2. Scientific Data Analysis: You are working as a researcher in a scientific laboratory, and you need to analyze experimental data collected from various experiments. The data includes measurements of physical quantities such as temperature, pressure, and concentration over time.
  3. Image Processing: You are tasked with developing an image processing application using NumPy. The application should be able to read an image file, perform various image processing operations, and save the processed image.
  4. Personal Finance Manager: Develop a personal finance manager application that helps users manage their finances and budget effectively. Users should be able to track income and expenses, categorize transactions, set budget goals for different spending categories, and visualize their financial health through charts and graphs.
  5. Retail Sales Analysis Dashboard: Create a dashboard using Python libraries (e.g., Pandas, Matplotlib, Plotly) to analyze and visualize retail sales data. Include features like sales trends, product performance, and customer segmentation.