Lecture 1 Introduction

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 49

Application Development (CSF 510)

Lecture 1: Introduction
Instructor’s Introduction
Name Usman Ali
Designation Lecturer

Qualifications: Pursuing PhD in Computer Science ( Machine Learning)

MS(CS) From IBA Karachi ( 2015)

Masters in Information Technology, BS(Computer Science)

Course Profile ITP , OOPT , ICA , Database Systems , Application Development

Job Profile Lecturer ( Bahria College) , Project Manager (Codex) , Director


Academics & Trainings ( FTI) , PhD Scholar ( IBA) , Lecturer(IBA)
Email: uali@iba.edu.pk

Mobile/Whatsapp 0336-2090484

Counselling Hours 3:00 PM – 4:30 PM Mon&Wed( Big Data Lab, Tabba North Wing )

Lecture 1: Introduction 2
Students’ Introduction

• Name :
• Previous Qualification / Institute :
• Student ( Full Time / Part Time):
• Job Experience ( If Any) :
• Any Programming Experience ( Any Language)
• Familiarity with Python Language :
• Any Certification related to Data Science / Python :

• Fill out this survey : https://forms.gle/ML2H23hNDUz4AFhB7

Lecture 1: Introduction 3
Course Introduction – Application Development
• A pre-requisite course for MS Data Science
• For students with non-computer science background.
• General Goal:
• To teach the basic concepts of (data science) application development
• Core Focus:
• Fundamentals concepts in programming
• The course has been designed to be mainly a hands-on course
• Python as the preferred data science implementation language

Lecture 1: Introduction 4
Learning Outcomes – Application Development
• Understanding of data science application development process
• Familiarity with essential tools and techniques
• Thorough knowledge of programming concepts in Python
• Hands-on experience of working with datasets, data preprocessing and data
visualizations
• Creating Analytical web Applications using Dash Framework
• Basic concept of Flask Application Development

Lecture 1: Introduction 5
Contents ( Tentative Weekly Breakdown)

Lecture 1: Introduction 6
Reference Books , Tools and Tutorials

1. Books
1. Python Data Science Handbook by Jake VanderPlas
2. Flask Web Development – Developing Web Applications with Python by
Miguel Grinberg (Second Edition)
2. Software
1. Python 3 (3.10.5 or latest release)
2. Spyder
3. Jupyter Notebook / Jupyter Lab
4. Visual Studio Code
All in One ( Anaconda Navigator – Latest Version)

Lecture 1: Introduction 7
Tutorials

Tutorials / Useful Links


1. w3schools : Python Tutorial
2. How to use Jupyter Notebook?
3. Learn Python : Tutorials Point
4. HTML Tutorial
5. Java Script Tutorial
6. CSS Tutorial

Lecture 1: Introduction 8
Grading Plan( Tentative )

Lecture 1: Introduction 9
Grading Policy at IBA

Lecture 1: Introduction 10
Rules & Regulations

• Attendance
• As per IBA Policy
• Mobile Phones
• Switch off your mobile phones or keep them in silent mode
• Assignments
• No late assignment will be accepted
• 10 % deduction on late submission on LMS
• All such submissions which appear to be copy of one another – will be marked as ZERO
• Quizzes
• Mostly un-announced , covering the lectures not evaluated so far.

Lecture 1: Introduction 11
Unit -1
Getting Started
Lecture 1 : Outline

• Application Development Process


• Python 3.1 Installation
• Variables and Data Types
• Anaconda Navigator Installation

Lecture 1: Introduction 13
Application Development Process

Lecture 1: Introduction 14
Application Development
• Application development is the process of creating a computer programs or a
set of programs ( application) to perform different tasks that a business/user
requires.
• Application Examples
• A Word processor
• A Fintech Application
• A Chat Application
• A Social Media Application
• A search engine
• A Data Profiling Application
• A credit card fraud detection system

Lecture 1: Introduction 15
A Web-Based Application

Lecture 1: Introduction 16
Three Tier Architecture

View Controller Model

Lecture 1: Introduction 17
Software Development Process

Lecture 1: Introduction 18
Requirement Analysis

Lecture 1: Introduction 19
Functional Requirements
• Functional Requirements: These are the requirements that the end user specifically
demands as basic facilities that the system should offer.
• For example, incase of a Data Profiling Application, a user should be able to do the following
task:
1. SignUp by creating a user account
2. Login using the credentials
3. Upload a dataset
4. Generate a profile report
5. Perform some Data Cleaning Operations
6. Save the cleaned dataset

Lecture 1: Introduction 20
Non-Functional Requirements
• These are basically the quality constraints that the system must satisfy
according to the project contract including :
• Performance
• Scalability
• Security
• Reliability
• Reusability

Lecture 1: Introduction 21
Domain Requirements

• Domain requirements
• Requirements which are characteristic of a particular category or domain of projects.
• Can be functional or non-functional
• Examples:
• Data Science Application
• In data science application , one should be able upload a dataset , perform necessary EDA and Pre-processing
followed some advanced machine learning task.
• A search engine
• One should be an able to perform search across different web resources and view the results in a friendly user
interface .

Lecture 1: Introduction 22
Resource Planning

Prepare a Project Plan in Microsoft Project showing Tasks , Milestones,


Deliverables and Resources
Lecture 1: Introduction 23
Design & Prototyping

Lecture 1: Introduction 24
Integration

Lecture 1: Introduction 25
Project Breakdown

Project Phase Description with Deliverable Deadline Weeks Grade Points


Phase
1 Problem Statement , Requirement 3 weeks 5 Points
Specification, Resource Planning
( Report)
2 User Interface Design ( Prototype / 3 weeks 5 Points
Wireframe)
3 EDA on Dataset ( Jupyter Notebook) 3 Weeks 5 Points
4 Dashboard Design ( Dash Framework) 3 Weeks 5 Points
12 weeks 20 Points

Lecture 1: Introduction 26
Introduction to Python

Lecture 1: Introduction 27
What is Python?

• Python is an open-source , general-purpose , high-level programming language


• Developed by Guido van Rossum
• Released in 1991
• Mainly used for:
• Backend Development ( Server-side programming )
• Web Development ( Django and Flask Frameworks)
• Data Analysis and Visualizations
• Machine Learning Tasks
• Deep Learning Task
• GUI
• Software Development
• Research & Development
• All other task in conventional high-level languages

Lecture 1: Introduction 28
Python – A huge set of Libraries for almost each specialized
task

Source :https://rotechnica.com/what-is-python-used-for/
Lecture 1: Introduction 29
Giants are using Python!

Source :https://rotechnica.com/what-is-python-used-for/
Lecture 1: Introduction 30
Reasons to choose Python ?

Open Source

Easy to Learn

Huge Library - Strong Online Community

Less Code , Large Functionalities

Code Readability

High Demand

Lecture 1: Introduction 31
Python Installation
• Check if python is already installed on your computer
• cmd python --version
• Visit www.python.org
• Download Python 3.10.6 / latest version for Windows
• Choose the default path
• Remember to check:  Add Python to environment variables
• After setup completes
• Again, run python --version on command prompt to verify successful installation

Lecture 1: Introduction 32
Starting out in Python – Hello World!
• There are various ways to run python code:
• Interactive mode ( Python shell)
• Python IDLE
• Text Editor ( Visual Studio Code)
• IDE ( PyCharm)
• Anaconda Navigator
• Jupyter Notebook
• Jupyter Lab
• Spyder
• PyCharm
• Visual Studio Code

Lecture 1: Introduction 33
Hello World !
• Interactive Mode
• Open Python shell and print Hello World!
• Command Line
• Create a text file
• Print(“Hello World! )
• Save it as hello.py in your user directory
• Run this hello.py file from command line
• Python IDLE
• Print “ Hello World”
• Create a new file
• Create two variables : a=10 , b=20
• Using if statement print “ a is less than b “ or “ a is greater than b”

Lecture 1: Introduction 34
Variables and Data Types

Lecture 1: Introduction 35
Variables

• A variable is a named memory location which is used to store data.


• Each variable has a type which depends on the values it stores

Lecture 1: Introduction 36
Variables Naming Conventions
• Each variable in python has a name
• Naming Conventions:
• The first character must be one of the letters a through z, A through Z, or an
underscore character (_)
• After the first character you may use the letters a through z or A through Z, the digits 0
through 9, or underscores.
• Uppercase and lowercase characters are distinct. This means the variable name
ItemsOrdered is not the same as itemsordered
• You cannot use any of Python’s key words as a variable name.
• A variable name cannot contain spaces
• You can’t use special characters like !, @, #, $, % etc. in variable name.

Lecture 1: Introduction 37
Python Keywords
• Keywords have specific use in python language
• These keywords cannot be used as variable names

Lecture 1: Introduction 38
Python Data Types
• Data types represents the type of value ( to be stored in a variable)
• For examples :
• 10 is an integer value
• 20.5 is a floating-point value
• 10+5j is a complex number
• “Hello World” is a string value
• True and False are Boolean values
• [“python” , “Java” , “C++”] is a list of values
• There are other types as well

Lecture 1: Introduction 39
Python Data Types

Lecture 1: Introduction 40
Type Casting
• Type Casting
• A method to convert the variable data type into a certain data type in order to the
operation required to be performed by users
• There can be two types of Type Casting in Python
• Implicit Type Casting
• Explicit Type Casting
• Examples :
• a=5, b=4.5 , c=a+b , d=a*b ( what are the data types of c and d)
• int(3.1416) will give you 3
• float(3) will give you 3.0. ( a float value is stored differently than an integer)
• value=10 , str(value) will give you “10” which cannot be treated as a number now
• x=3.5 , y=int(x) will cause y= ?? and x=??

Lecture 1: Introduction 43
Anaconda Navigator Installation

Lecture 1: Introduction 44
What is Anaconda ?

• Anaconda is a distribution of the Python programming language and R for


scientific computing including:
• Data Science
• Machine Learning Applications
• Large-scale Data Processing
• Predictive Analytics, etc.
• Aims to simplify package management and deployment.
• The distribution includes data-science packages suitable for Windows, Linux,
and macOS.
• It is developed and maintained by Anaconda, Inc., which was founded by
Peter Wang and Travis Oliphant in 2012

Lecture 1: Introduction 45
Anaconda Distribution

• Anaconda, Inc. product, it is also known as Anaconda Distribution


• Different Products:
• Anaconda Individual Edition ( Free)
• Anaconda Team Edition ( Commercial)
• Anaconda Enterprise Edition (Commercial)
• Anaconda distribution comes with over 250 packages automatically installed,
and over 7,500 additional open-source packages which can be installed based
on need
• It also includes a GUI, Anaconda Navigator, as a graphical alternative to the
command-line interface (CLI).

Lecture 1: Introduction 46
Anaconda Navigator
• Anaconda Navigator is a desktop graphical user interface (GUI) included in
Anaconda distribution
• The following applications are available by default in Navigator:
• JupyterLab
• Jupyter Notebook
• QtConsole[19]
• Spyder
• Glue
• Orange
• RStudio
• Visual Studio Code

Lecture 1: Introduction 47
Anaconda Individual Edition - Installation
• https://problemsolvingwithpython.com/01-Orientation/01.03-Installing-Anac
onda-on-Windows/

Lecture 1: Introduction 48
A Brief Description of Python IDEs / Editors

Jupyter Notebook Jupyter Notebook (formerly IPython Notebook) is a web-based interactive computational environment
for creating notebook documents. ( Wikipedia)

Jupyter Lab JupyterLab is the next generation of the Jupyter Notebook. It aims at fixing many usability issues of the
Notebook, and it greatly expands its scope. JupyterLab offers a general framework for interactive
computing and data science in the browser, using Python, Julia, R, or one of many other languages. (
Source)
Spyder Spyder is an open-source cross-platform integrated development environment (IDE) for scientific
programming in the Python language. (Wikipedia)

PyCharm PyCharm is a dedicated Python Integrated Development Environment (IDE) providing a wide range of
essential tools for Python developers, tightly integrated to create a convenient environment for
productive Python, web, and data science development. (Wikipedia)

Visual Studio Code Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft
for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent
code completion, snippets, code refactoring, and embedded Git (Wikipedia)

Lecture 1: Introduction 49
A Brief Comparison of Python IDEs/ Editors

Source
Lecture 1: Introduction 50
Data Science Process

Lecture 1: Introduction 51

You might also like