Application Development Theory

Slides:



Advertisements
Similar presentations
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Advertisements

Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Computers Are Your Future
Chapter 3 Software Two major types of software
1 CHAPTER 4 LANGUAGE/SOFTWARE Hardware Hardware is the machine itself and its various individual equipment. It includes all mechanical, electronic.
Introduction to Programming End Show. Resource Team R.P Ranjan-Lecturer, SPICTEC, Galle. W.M.A.S. Wijesekara-Centre manager,CRC Hali-Ela H.P.U.S Indra.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
1 Chapter-01 Introduction to Computers and C++ Programming.
Computers Are Your Future Tenth Edition Chapter 11: Programming Languages & Program Development Copyright © 2009 Pearson Education, Inc. Publishing as.
Program development & programming languages Chapter 13.
Systems Software & Operating systems
CC111 Lec#5: Program Development 1 Program Development and Programming Languages Lecture 4 Reference :Understanding Computers Chapter 13.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Slide 1 Standard Grade Computing Studies Systems Software.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Tranlators. Machine Language The lowest-level programming languageprogramming language Machine languages are the only languages understood by computers.languagescomputers.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Java Programming, Second Edition Chapter One Creating Your First Java Program.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
INTRODUCTION TO COMPUTING CHAPTER NO. 04. Programming Languages Program Algorithms and Pseudo Code Properties and Advantages of Algorithms Flowchart (Symbols.
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Game programming 1.
Computer Language
Evolution and History of Programming Languages
Computer Basics.
Computer Applications in Business
Why don’t programmers have to program in machine code?
Component 1.6.
Concepts of Programming Languages
Topic: Programming Languages and their Evolution + Intro to Scratch
Programming Languages
High and low level languages
Why study programming languages?
Operating System Interface between a user and the computer hardware
Lecture 1 Introduction Richard Gesick.
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
Key Ideas from day 1 slides
CS101 Introduction to Computing Lecture 19 Programming Languages
Introduction to Computers and Java
A451 Theory – 7 Programming 7A, B - Algorithms.
Programming Languages and Translators
Chapter 4 Computer Software.
TRANSLATORS AND IDEs Key Revision Points.
Teaching Computing to GCSE
Translators & Facilities of Languages
Computer Programming.
Compiler Construction
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Lecture 1: Multi-tier Architecture Overview
Chapter One: An Introduction to Programming and Visual Basic
High Level Programming Languages
Introduction to Computer Programming
Creating Computer Programs
Principles of Programming Languages
PROGRAMMING FUNDAMENTALS Lecture # 03. Programming Language A Programming language used to write computer programs. Its mean of communication between.
ICT Programming Lesson 1:
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
Understand the interaction between computer hardware and software
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Tonga Institute of Higher Education IT 141: Information Systems
Tonga Institute of Higher Education IT 141: Information Systems
1.3.7 High- and low-level languages and their translators
Presentation transcript:

Application Development Theory

Road Map Week 1: Anatomy of an Application Week 2: The Software Process and Development Lifecycle Week 3: Software Development Methodologies Week 4: Software Roles & Communication Week 5: Developer & User Facing Documentation Week 6: Language Structures & Logic

Road Map Week 7: Object Oriented Programming Week 8: Model View Controller Week 9: SDKs and APIs Week 10: User Interfaces Week 11: All About Data Week 12: Final Project

Anatomy of an Application ● Varies depending on platform and application type You will find some common themes or ideas: ● User interface ● Business Logic ● Data Layer ● User Documentation

UI Bad designs

User Interface The layer of the application where all user interaction occurs. ● Command Line ● Graphical ● Speech ● Variations include: ○ Touch Screens ○ Menu Driven ○ Form Driven ○ Web based

What to Design Need to take into account: Who the users are What activities are being carried out Where the interaction is taking place

Understanding users’ needs Need to take into account what people are good and bad at Consider what might help people in the way they currently do things Think through what might provide quality user experiences Listen to what people want and get them involved

Data Layer ● Generally used to directly communicate with a storage medium. ● Database or file system reading and writing. ● This is where SQL queries and PHP go. ● Calculations related to the data live here as well. Further reading https://tealium.com/what-is-a-data-layer/

Business Logic ● “Functionality required to achieve business needs of the application” ● Specifies how information is created, displayed, altered, or removed. ● Manages communication between the presentation layer (User Interface) and the database or store. ● Executes actual business rules using code. ● Workflow is designed to satisfy the business rules.

Documentation ● Part of every application ● User Facing Documentation ● Developer Documentation ● Commenting code

Let’s Talk About Software Quality ● Software Quality is an abstract idea. ● Can mean something different to everyone. ● High quality software can be described as: ○ Fast ○ Reliable ○ Having no major design flaws ○ Something that does what it says it does ● What does “Software Quality” mean to you as the end user? ● What does “Software Quality” mean to a software developer or quality assurance analyst?

Some Items We Discussed User Interface: The layer of the application where all user interaction occurs Data Layer: Generally used to directly communicate with a storage medium. Business Logic: Functionality required to achieve business needs of the application Documentation: Developer, User Guide, Commenting/Documenting Code

What is A Computer Program? ● A computer program is simply a list of one or more instructions that tell a computer what to do. ● The instructions are converted to machine language, which is the instruction set both supported by and executed on the computer’s CPU. (Central processing unit) ● There are different language levels - high level, low level ● Everything a computer does is done using one type of computer programming language or another. ● You’re learning how to tell a computer what to do. It knows nothing until you do that.

Machine Code ● Extremely fast ● Languages that uses a series of binary (00001110) or hex instructions. ● Each 1 or 0 can be thought of as either True or False, On or Off.n. ● Different CPUs support different instruction sets.

CPU Instruction Set

Machine Code ● Coding directly for the instruction set of a specific CPU has its limitations. ● Coding in machine language is time consuming. Machine Language 169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96 BASIC 5 FOR I=1 TO 1000: PRINT "A";: NEXT I These two programs both print the letter "A" 1000 times on the scree

Assembly Language ● Low level programming language for a computer. ● Still very fast, and very powerful. ● Produce code optimized for your hardware setup. ● Strong relationship between the language and the machine code. ● Each processor supports its own Assembly language, since the language is tied directly to that CPUs instruction set. ● Assembly language code is converted to machine code by a program called an assembler.

Assembly Language ● Long and dull to write ● Can be quite difficult to debug ● Can be expensive & difficult to maintain ● Non-portable for other architectures

High Level Languages ● Java, C#, Python, C++ (newer iterations) ● FORTRAN, PASCAL, C, COBOL (older iterations) ● Allow for the solution to a problem to look closer to something used by a human being. ● Designed to make programming easier, and for the programmer not to have to know the internal structure of each specific computer.

High Level Languages ● Much closer to human language. ● Easier to debug ● Standardized code - completely independent of processor. ● Still need a compiler or interpreter to translate high level language to machine code. ● Sacrifice some power and speed (when compared to Assembly or Machine language)

Why Do Developers Practise Methodologies? ● Software quality ( Has the software been continually evolving for over 50 years?) ● Over the years, many “development methodologies” have been experimented with. Many helped, and many failed or were built-upon. ● All methodologies have similar goals, including, but not limited to: ○ increasing software quality. ○ increasing developer productivity. ○ improving the management of large scale projects. ○ creating a better work environment. ● At first, it was the wild-wild west. There were no rules. Making stuff up.

Non-Structured Programming -1950s ● Heavily criticized for producing hardly-readable “spaghetti code”. ● Early programming languages that rely on this paradigm include BASIC, FORTRAN, COBOL. ● GOTO Statements

Software Design Evolution - 1960’s ● Structured Programming - A New Programming Paradigm ○ Top-Down Approach ○ Code is structured into logical blocks. ○ Code is executed in the order in which it is written. ○ Makes use of subroutines, for and while loops, block structures. ○ Pascal, ALGOL, Ada

Programming Paradigm A programming paradigm is a style or “way” of programming. Some languages make it easy to write in some paradigms but not others. A paradigm is a way of doing something (like programming), and not a concrete thing (like a language).

Object Oriented Programming -1980's ● Different type of structured programming ● C, C++, and later C#, Java ● Uses objects and classes ● Code can easily call other areas of code, do work, then return and continue execution. ● Composition - Objects can contain other objects. ● Inheritance - “Is a” relationship. ● Abstract classes - Can be used to define and enforce a structure.

Group Activity Let’s practise thinking like a software developer by writing some structured code.

Read http://www.thecorememory.com/SHOS.pdf Read the following sections: “Programming Languages and Operating Systems” “Software Comes of Age” “The Internet and the World Wide Web”

Assignment - Write 1. In your own words, describe why object oriented programming is an improvement on earlier programming paradigms. 2. How do you think the advent of the internet changed: a. How we write computer software b. The types of software and applications that exist 3. Research, then compare and contrast the advantages and disadvantages of the following: Machine Code, Low level programming languages, and high level programming languages. Create a table and list these differences. Which paradigm strikes you as the most relevant in 2016? Why?