Unit 6 - Software Design and Development LESSON 1 INTRODUCTION

Similar documents
An Introduction to Software Engineering. David Greenstein Monta Vista High School

Programming Languages and Program Development

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102

Level 3 Computing Year 2 Lecturer: Phil Smith

Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer

Fundamentals of Programming INTRODUCTION

Introduction to Java Programming

Unit 6 - Software Design and Development LESSON 4 DATA TYPES

3rd Lecture Languages for information modeling

Unit 1 : Principles of object oriented programming

Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

Object Oriented Programming

Objects and Classes Lecture 1

Fundamentals of Programming. By Budditha Hettige

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING

Unit E Step-by-Step: Programming with Python

Unit 6 - Software Design and Development LESSON 3 KEY FEATURES

Discovering Computers 2008

Computer Principles and Components 1

Unit 6 - Software Design and Development LESSON 8 QUALITY ASSURANCE

CIS Component-Based Software Design BAPTISM BY FIRE AN INTRODUCTION TO COURSE ESSENTIALS. Suggestions on the Design of Your Game of Nim Project

Object-Oriented Programming, Classes

Chapter 11 Program Development and Programming Languages

C++ Spring Break Packet 11 The Java Programming Language

MSc(IT) Program. MSc(IT) Program Educational Objectives (PEO):

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT

Part (04) Introduction to Programming

CISC 124: Introduction To Computing Science II

Architectural Design. CSCE Lecture 12-09/27/2016

Python - Week 1. Mohammad Shokoohi-Yekta

Low-Level Languages. Computer Programs and Programming Languages

Object Oriented Design

OBJECT ORIENTED PROGRAMMING USING JAVA OBJECT ORIENTED PROGRAMMING USING PDF OBJECT-ORIENTED PROGRAMMING - WIKIPEDIA

Read & Download (PDF Kindle) Intro To Java Programming, Comprehensive Version (10th Edition)

Crash Course in Modernization. A whitepaper from mrc

What is a programming language?

Definition of Information Systems

CS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007

COURSE SYLLABUS. Complete JAVA. Industrial Training (3 MONTHS) PH : , Vazhoor Road Changanacherry-01.

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

Advanced PHP and MySQL

Information Systems Software

Object-Oriented and Classical Software Engineering DESIGN 11/12/2017. CET/CSC490 Software Engineering Design CHAPTER 14. Stephen R. Schach.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Curriculum Map Grade(s): Subject: AP Computer Science

Changes in JHawk 6 1 Changes in JHawk6 Virtual Machinery 2015

Post-Graduate Diploma in Computer Application Examination,2008 ELECTRONIC DATA PROCESSING

Chapter 5. Software Tools

Introduction to computers and Python. Matthieu Choplin

In this third unit about jobs in the Information Technology field we will speak about software development

The RASTA Framework. Joel Becker October 3, 2001

Introduction to Programming

INFS 214: Introduction to Computing

1) What is the first step of the system development life cycle (SDLC)? A) Design B) Analysis C) Problem and Opportunity Identification D) Development

Pseudo Code and Flow Charts. Chapter 1 Lesson 2

Software Development. Integrated Software Environment

CS133 C Programming. Instructor: Jialiang Lu Office: Information Center 703

CS 242. Fundamentals. Reading: See last slide

This chapter is intended to take you through the basic steps of using the Visual Basic

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

Level 3 Computing Year 2 Lecturer: Phil Smith

APCS-AB: Java. Recursion in Java December 12, week14 1

Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

CTI Short Learning Programme in Internet Development Specialist

COMP220: SOFTWARE DEVELOPMENT TOOLS COMP285: COMPUTER AIDED SOFTWARE DEVELOPMENT

SE310 Analysis and Design of Software Systems

Object Oriented Programming. Michał Bereta

0 Mastering Microsoft Office

Welcome to Starting Out with Programming Logic and Design, Third Edition.

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Computing. Building Retention: What prior learning must be built upon/revisited and how will it be assessed? Term Cycle 1

(Refer Slide Time: 01:40)

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Mobile App:IT. Methods & Classes

Programmazione. Prof. Marco Bertini

Lesson 01 Introduction

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

A Brief History of Computer Science

Software. Programming Languages. Types of Software. Types of Languages. Types of Programming. Software does something

COSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6

(p t y) lt d. 1995/04149/07. Course List 2018

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright

Announcements. Project #2 has been posted Research Paper assignment will be posted soon We will begin Javascript on Friday

Working with JavaScript

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

Object Oriented Programming

Getting Started with Java Using Alice. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Creating the Data Layer

Introduction To Programming With Java: A Problem Solving Approach Epub Gratuit

CIS 086 : Week 1. Web Development with PHP and MySQL

The Thomas Hardye School Summer Preparation Task Computer Science AS

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

1. Write two major differences between Object-oriented programming and procedural programming?

Introduction to Engineering Using Robotics Experiments. Dr. Yinong Chen

Programming 1 - Honors

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

AJAX Workshop. Karen A. Coombs University of Houston Libraries Jason A. Clark Montana State University Libraries

An Overview of Visual Basic.NET: A History and a Demonstration

Transcription:

Unit 6 - Software Design and Development LESSON 1 INTRODUCTION

What is covered in this session Introduction to unit and reference sources Schedule for assignments

Introduction From this unit the learner will: 1. Know the features of programming languages 2. Understand the principles of software design 3. Be able to use tools to demonstrate software designs.

Assignment Schedule Lesson 3 Assignment 1 Which language? - Covers P1, P2, P3, P4 Around week 6 - Assignment 2 Design workshop- Covers P5, M1, D1 ~ Week 9 Assignment 3 Good Design!- Covers P 6, M2, D2

Some useful references Pilone & Miles, Head First Software Development, O Reilly Media, USA, 2008, Anderson et. al, Information Technology Level 3 Book 1 pp 161 188, PearsonUK, 2010 https://www.codecademy.com/

Where is IT used? List as many industries as you can where IT is used. Football Architect Dairy farm Fire and Rescue Botanic Garden Magazine Car manufacturer Chocolate factory http://www.bbc.co.uk/programmes/b00zsc2s/clips

Problem Firemen (farmers, footballers, car designers etc., etc ) are not programmers Programmers are not firemen (farmers, footballers, car designers etc., etc ) Issues caused by: Poor understanding of user need Poor planning

This unit.. focuses on the design and development process systems development life cycle looks at programming concepts examines the business context within which solutions can be developed explores the tools that can be used to demonstrate software designs

Writing computer programs Programmers use an IDE (Integrated Development Environment) to enter their code. It is possible to use a text editor such as Notepad to enter your code but this is difficult and requires specialist knowledge.

Writing computer programs Examples required in this unit Use an IDE from Microsoft called Visual Studio 2015 Use VB.net as main programming language. Predominantly Form based programs. Form based programs use a GUI (graphical user interface).

LO 1: Know the features of programming languages Programming paradigms Types of language Reasons for choice of language Features Data types

Programming paradigms Greek paradeiknunai to show side by side - A typical example or pattern of something; a pattern or model Style (or different approaches) of programming

Programming Computer = hardware + software Hardware So much twisted metal Software Firmware Operating systems Applications i.e. programs

Programming Computer reads binary (or as the computer sees it 010000110110111101101101011100000111010101 11010001100101011100100010000001110010011 00101011000010110010001110011001000000110 001001101001011011100110000101110010011110 01

Programming Use symbolic languages with human-like statements Different approaches paradigms (01110000011000010111001001100001011001 0001101001011001110110110101110011)

Programming paradigms a fundamental style of computer programming, a way of building the structure and elements of computer programs. some programming languages are designed to follow only one paradigm, while others support multiple paradigms. http://en.wikipedia.org/wiki/programming_paradigm E.g. Unit 16 Procedural programming

Programming Paradigms three main types: Procedural Object oriented Event Driven Others include: Scripted Visual Can you name a visual programming language?

Other languages E.g. HTML A mark-up language, not a true programming language. Does not contain instructions to control the flow of the program, such as decision statements. (e.g. if..;if..else;case)

Task 1 Produce a set of PowerPoint slides which show examples of code written in different languages. The paradigms chosen must include: Procedural. Event Driven. Object Orientated (OOP). You need to include at least 2 different languages for each paradigm. For each one, state the language name, example code, what the example code does The languages chosen must include: Python, VB.net, Javascript

Task 1a Programming paradigms What sort of application could the code quoted be used in? Research the languages popularity and add this to the slide for each language you have chosen. Record the source of this information.

Visual Programming any programming language that lets you develop programs by manipulating program elements graphically rather than textually. Popular examples include: Kodu, Blockly executable UML

Visual Programming also known as dataflow or diagrammatic programming.

Task 2 Visual Programming access scratch here: http://scratch.mit.edu/ Make the cat walk to the right of the screen, turn around and walk to the left of the screen then turn around and repeat. Ext make the cat say hello when it reaches each side, vary the speed.

Paradigms Procedural. Event Driven. Object Orientated (OOP). A brief description Some typical languages Advantages Disadvantages

Procedural Programming a linear process where each program statement is executed line by line, one after the other. The program can be compiled/managed or be scripted. Some examples of procedural programming languages are : 1. C (because it comes after B) 2. Pascal (named after a French mathematician) 3. FORTRAN (formulated translation) 4. COBOL (Common Business Oriented Language)

Procedural Programming - uses Complex operations including many different, dependent operations with varying states of completion; To perform certain queries on a database When multiple users need to view or modify a database at the same time

Procedural Programming Advantages Good for general programming. Can be scripted. Good level of control, can be multi-platform. Has a Portable Source Code. Disadvantages: There are a lot of procedural languages, and you cannot learn them all, usually you learn one well. Large programs can run very slowly. Need to develop in a methodical way and test frequently. Testing can be slow as all processes need to be re-tested each time even though they have been proven to work.

Object Oriented Paradigm (OOP) a programming model organized around: objects rather than "actions" and data rather than logic. It uses the system of classes and objects, a class may hold many objects Examples: C++, C#, Python, vb.net, Java

Basic OOP Objects have to be instantiated (Created) using designs (Classes). Objects encapsulate the data and functions (methods) needed to manage the data. The designs (classes) take the most time to create. They offer great flexibility in program development and maintenance.

Basic OOP Created in the 1980 s Breaks the task into modules called classes Classes are easier to modify Improved security of data (hidden data) Easy to add functions (classes) Follows a bottom-up approach

Object Oriented Paradigm Advantages: Has a clear structure good for defining data types easy to maintain and modify existing code new objects can be added by copying and slightly changing previous code allows faster development. Low cost due to reusing code Disadvantages: Complex thought process difficult for some people to learn / get used to. Large Program size slower as more instructions must be executed.

Object Oriented Paradigm - uses Manipulating physical devices Access to file systems Physical modelling Applications where complex aggregations of data needed to be treated individually: Hospital systems Computer games

Event Driven Programming Paradigms for example, an object is clicked on and it triggers an event. used for things like renting out cars a GUI would be used when the user clicked on a button an event would be triggered detailing which cars were still available to rent Examples: C, C++, C#

Event Driven Programming Paradigms Advantages: Flexibility Used a lot with modern GUI programs allows for more interactive programs. Disadvantages: A mixture of object oriented and procedural programming similar limitations Requires large amount of processing power An extra layer of complexity Less easy to follow the logic

Task 2 Add to your definitions of the paradigms, for each one give: A brief description Some typical languages Some typical applications Advantages Disadvantages

TOOLS CLI Command Line Interface. In the past all programs were written using a CLI, one line at a time!.

Integrated Development Environment Everything needed to write a program Editor for writing instructions Additional tools e.g. pop-up help Compiler converts program to machine code Windows forms editor Creates Windows forms and controls (buttons, text boxes, check boxes etc) Debugger

IDE Integrated Development Environment. Most programs are now written using an IDE, VS201x, Eclipse, PyCharm, PHPStorm etc. Short introduction to VS2015

CASE Computer Aided Software Engineering.

CASE tools Computer Aided Software Engineering Used in large software development projects Automates parts of the process Assists in creation of design diagrams Structure charts Data flow diagrams (DFDs) Entity relationship models (ERMs)

Case Tools Unified Modelling Language (UML)

CASE tools, Class diagram

CASE tools, sequence diagram

Programming generations 1842 calculation of Bernoulli numbers Ada Lovelace 1940s Great deal of effort, Errorprone

Programming generations High-level languages use notation which is more familiar to humans: mathematical or spoken/written language.

Task 3 Using the slides created in task 1 Research each language in your slides and add the generation of languages they belong to: 1gl, 2gl, 3gl, 4gl, 5gl

Homework: - submit to Turnitin L3U06H1JohnDoe2017 Complete and submit your presentation, including speaker notes, to explain to trainees the typical applications for the major programming paradigms. Give examples of the types of program that each paradigm should be used to write. Describe the limitations of each paradigm. Include the following paradigms: Procedural Object-oriented Event-driven