Programming & S/W Development

Slides:



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

ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
Computers Are Your Future
CS105 INTRODUCTION TO COMPUTER CONCEPTS INTRO TO PROGRAMMING Instructor: Cuong (Charlie) Pham.
Computers Are Your Future © 2006 Prentice Hall, Inc.
Computers: Tools for an Information Age
Program Flow Charting How to tackle the beginning stage a program design.
Programming Languages Structure
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
Program development & programming languages Chapter 13.
Programming Languages: Telling the Computers What to Do Chapter 16.
Programming Languages CPS120: Introduction to Computer Science Lecture 5.
Introduction to Programming Language CS105 Programming Language First-generation: Machine language Second-generation: Assembly language Third-generation:
Chapter 8 High-Level Programming Languages (modified by Erin Chambers)
Understanding Computers Ch. 131 Chapter 13 Program Development and Programming Languages.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Alexandria University Faculty of Science Computer Science Department Introduction to Programming (CS 102) C++ Programminhg.
High-level Languages.
HERY H AZWIR Computer Software. Computer Software Outline Software and Programming Languages  Software  Programming  Programming language development.
Programming Language Rico Yu. Levels of Programming Languages 1.Low level languages 2.High level languages.
COMPUTER PROGRAMS AND LANGUAGES Chapter 4. Developing a computer program Programs are a set (series) of instructions Programmers determine The instructions.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
The Teacher Computing Computer Languages [Computing]
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
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.
Alexandria University Faculty of Science Computer Science Department Introduction to Programming C++
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Chapter 1. Introduction.
Computer Languages [Computing] Computing.
Component 1.6.
Concepts of Programming Languages
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Programming Languages
Why study programming languages?
Component 1.6.
Computer Programming (BCT 1113)
PROGRAMMING LANGUAGES
Sections Basic Concepts of Programming
CSCI-235 Micro-Computer Applications
Computer Programming.
Key Ideas from day 1 slides
Introduction of Programming Languages
Computer System and Programming
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
课程名 编译原理 Compiling Techniques
Lecture 2 Introduction to Programming
Programming Languages and Translators
Program Development and Programming Languages
Developing Applications
Introduction to programming languages, Algorithms & flowcharts
Computer Programming.
Programming Languages 2nd edition Tucker and Noonan
Chapter 1 Introduction(1.1)
CS105 Introduction to Computer Concepts Intro to programming
The Programming Process
Programming.
Introduction to Computer Programming
and Program Development
Principles of Programming Languages
Overview of Programming Paradigms
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
CS105 Introduction to Computer Concepts Intro to programming
ICS103 Programming in C 1: Overview of Computers And Programming
Presentation transcript:

Programming & S/W Development Hun Myoung Park, Ph.D., Public Management and Policy Analysis Program Graduate School of International Relations International University of Japan

Outline Programming Languages Language Translators Software Development Software Analysis and Design Programming Implementation & Maintenance Documentation

Programming Languages 3 Programming Languages To communicate between human beings and computers Instruct a computer (H/W) to do what you want to do Each computer can understand its own machine language only Instructions are written in programming languages and then translated into the corresponding machine language.

Machine Language First generation language Consists of 1 and 0 4 Machine Language First generation language Consists of 1 and 0 Only language that computers can understand Each computer has its own machine langue (machine dependent) No translation Difficult to write and read programs

Assembly Language Second generation language 5 Assembly Language Second generation language Replace machine language’s binary codes for instructions and addresses with corresponding symbols and mnemonics 1:1 match Translated by the assembler More technical and faster But less flexible and user friendly

High Level Languages 1 Less machine dependent 6 High Level Languages 1 Less machine dependent More readable and flexible (closer to human languages and farther away from machine language) But less efficient (bigger and slower) Need to be translated into a machine language (interpretation or compilation)

7 High Level Languages 2 BASIC (Beginner’s All-purpose Symbolic Instruction Code) FORTRAN (FORmula TRANslator) by IBM COBOL (Common Business Oriented Language) by ANSI. PL/1 Pascal ADA

High Level Languages 3 C by Bell Lab C++, and Visual C 8 High Level Languages 3 C by Bell Lab C++, and Visual C JAVA by Sun Microsystems Web programming (script) languages: Perl, PHP, Python, Ruby

Types of Languages 1 First generation (machine language) 9 Types of Languages 1 First generation (machine language) Second generation (assembly language) Third generation (high level language) Forth generation (query languages) Fifth generation (natural & intelligent languages)

10 Type of Languages 2 Low-level languages (i.e., machine & assembly language) High-level languages (e.g., C and Java) Script languages (e.g., Perl, PHP, Python)

11

Programming Paradigms 12 Programming Paradigms Procedural programming Object-oriented programming Functional programming Declarative programming

Procedural Programming 1 13 Procedural Programming 1 Imperative or structured languages Tells the computer what you want it to do step by step FORTRAN, COBOL, BASIC, C, Pascal, Ada

Procedural Programming 2 14 Procedural Programming 2 Procedures (actions) & objects (data) are independent Passive objects that cannot initiate an action by itself A subprogram (routine or module) is a section of the program that performs a particular task when it is called from the main program.

Object-oriented Programming 1 15 Object-oriented Programming 1 Active Objects have both data and methods (procedures or actions) Methods are not independent of but belong to the active object. Objects need stimulus to perform actions Visual Basic, Visual C, C++, Java, Smalltalk Even in script languages (PHP & Python)

Object-oriented Programming 2 16 Object-oriented Programming 2 A class is an abstract blueprint of objects that have data and methods An object is an (actualized) instance of the class (variables + actions) A class of human beings (name, gender, height… + eating, sleeping, speaking …) An object of human beings (Seohyun, 170cm, 40Kg … + eating milk, … )

Object-oriented Programming 3 17 Object-oriented Programming 3 class human { public name … public height … … function eating (…) { } function studying (…) { ... } // end of class

Object-oriented Programming 4 18 Object-oriented Programming 4 Inheritance: a class can inherit from other classes. A class student inherits data and methods from a class human being and additionally has its own data and methods Student = human beings + student’s data and methods Faculty = human beings + faculty’s data and methods Codes are reusable (minimize redundancy)

Object-oriented Programming 5 19 Object-oriented Programming 5 Data abstraction and decoupling: separating objects from classes Encapsulation and information hiding: Data are bound closely with their methods. Polymorphism enables to define methods with the same name that do difference things depending on classes. A work() may mean teaching in a class faculty but farming in a class farmer.

Functional Programming 20 Functional Programming Define primitive functions and combine them to keep creating new functions LISP (LISt Programming) & Scheme

Declarative Programming 21 Declarative Programming Logical reasoning to answer queries Use deductive logic Prolog Report generators: query languages Query languages: SQL (structured query language) Application generators: Visual Basic, FOCUS

22 Language Translators

Language Translators 1 Computer can understand machine languages only 23 Language Translators 1 Computer can understand machine languages only Language translators translate source codes into the machine language. A source code file needs to be compiled and linked to be an object file, executable file.

24 Language Translators 2 Lexer reads a source code (program) character by character and assembles characters into reserved words (token) Parser performs syntactic analysis and converts tokens to nodes on a syntax tree. Code generator produces segments of machine code of each node. Optimizer inspects machine codes and eliminates redundancies.

Language Translators 3 Assembler translates a assembly program 25 Language Translators 3 Assembler translates a assembly program Interpreter (interactive) Compiler (non-interactive, batch)

26 Interpreter Interactive way of communicating between users and machines. Translates each line of the source programs one by one, run it without making an object file, and then return the result promptly. Java source Bytecode by Java compiler  interpreted by JVM emulator BASIC, LISP (LISt Processor) by MIT for artificial intelligence

27 Compiler Compiler translates a whole source code into an object code before executing it. Most high level languages (e.g., C and Java) are translated by their compilers. Source code  Object file  Linking libraries  Executable file A library is a collection of commonly used modules that are combined into the executable file.

28 Computer Software A collection of well organized instructions that a computer executes to achieve specific tasks. Algorithm or logic is a set of ordered steps to solve a problem. Programming and coding (writing statements) is only a part of system development

29 Software Development

30 Software Development In the system development stage, when customized software is needed Program development life cycle (PDLC) Problem clarification Program design Program coding Program testing Program documentation and maintenance

Problem Clarification 32 Problem Clarification Objectives and users (programming needs) Output to be produced by the systems Input required to get the desired output Processing to transform input to output Feasibility (e.g., budget, man powers, modification of old program?)

33 Design the Program Program logic in structured programming; modularization (subprogram or subroutine) Design details Pseudo-code (narrative outline) Flowcharts Control structure (logic structure) Structured work-through to review

34 Flowchart

Components of a Program 35 Components of a Program Variables (data type, constant, variable declaration and initialization) Input and output Expression (operators) Statements (assignment, compound statement, control statements) Subprogram: variables, parameters, call by value, call by reference

Control Structure Sequence Selection Iteration or loop If (else) 36 Control Structure Sequence Selection If (else) switch (case) Iteration or loop DO FOR WHILE

Control Structures 37 Selection (condition) Repetition (Loop) If (score > 90) { grade = “A”; } elseif (score > 80) { grade = “B”; } else { grade = “C”; } for (i=1; i<x; 1) { sum = sum + i; while (i<x) { sum = sum +1; i = i + 1;

38 Coding A process of writing a program using a proper programming language The result is a source code (program file in the text format) Follow coding standards Documentation (comments or remarks) makes it easy to understand and check mistakes.

39 Compiling Interpret a source code (program file) and convert into an object file Source code  Compiling  Object file (object module) Linking  Executable file (load module) Linking combines object files and built-in libraries (commonly used modules)

40 Debugging A process of checking and correcting errors (bugs) in a program Errors Syntax error Logic error in the logic of a program Run-time error occurs while a program is running

41 Software Testing To check if the software meets the requirements and works as expected Unit testing (component testing), integration testing, system testing, and acceptance testing Running programs with test data Alpha test at developers’ site Beta test or pre-release test (outside test)

Implementation and Maintenance 42 Implementation and Maintenance Implementation to run the program on the information systems Installation and compatibility tests Maintenance (updating)

Documentation Description of the program development Data dictionary 43 Documentation Description of the program development Data dictionary Documentation for users Documentation for operators Documentation for programmers Documentation in source programs

44 Conclusion Software development is not the same as coding (programming). Importance of software test . Documentation in all stages.

References Stair and Reynolds. 2016. Principles of information systems, 12th ed. Cengage Learning. Stair and Reynolds. 2012. Information systems, 10th ed. Cengage Learning. Morley and Parker. 2015. Understanding computers, 15th ed. Cengage Learning. Hutchinson and Sawyer. 2000. Computers, Communications, and Information, 7th ed. Irwin/McGraw-Hill