Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Programming & S/W Development Hun Myoung Park, Ph.D., Public Management and Policy Analysis Program Graduate School of International Relations International University of Japan 2 Outline Programming Languages Language Translators Software Development Software Analysis and Design Programming Implementation & Maintenance Documentation 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. 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 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 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 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 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) Machine Friendliness & H/W Control Size / Time Spent 11 More difficult to work with (Closer to machine) More control of H/W (More risky to write) Easier to work with (Closer to human) Less control of H/W (Less risky to write) Smaller & faster 1st GL (Machine) Larger & slower 2nd GL (Assembly) 3rd GL (High level) 12 Programming Paradigms Procedural programming Object-oriented programming Functional programming Declarative programming 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 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. 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) 16 Object-oriented Programming 2 A class is a abstract blueprint of objects that have data and methods An object (instance) 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, … ) 17 Object-oriented Programming 3 class human { public name … public height … … function eating (…) { … } function studying (…) { ... } … } // end of class 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) 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. 20 Functional Programming Define primitive functions and combine them to keep creating new functions LISP (LISt Programming) & Scheme 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 Declarative languages Define computation logic Logical reasoning to answer queries use deductive logics Used in artificial intelligence Fourth generation language Prolog (PROgramming in LOGic) Query languages: SQL (structured query language) and Report generators 23 Language Translators 24 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. 25 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. 26 Language Translators 3 Assembler translates a assembly program Interpreter (interactive) Compiler (non-interactive, batch) 27 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 28 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. 29 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 30 Software Development 31 Software Development In the system development stage, when customized software is needed Program development life cycle (PDLC) 1. Problem clarification 2. Program design 3. Program coding 4. Program testing 5. Program documentation and maintenance 33 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?) 34 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 35 Flowchart Start Read x sum = 0 i=1 sum = sum + i i= i+1 If i <= x No Print sum End Yes 36 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 37 Control Structure Sequence Selection If (else) switch (case) Iteration or loop DO FOR WHILE 38 Control Structures Selection (condition) Repetition (Loop) If (score > 90) { for (i=1; i<x; 1) { sum = sum + i; grade = “A”; } elseif (score > 80) { grade = “B”; } while (i<x) { } else { sum = sum +1; i = i + 1; grade = “C”; } } 39 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. 40 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) 41 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 42 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) 43 Implementation and Maintenance Implementation to run the program on the information systems Installation and compatibility tests Maintenance (updating) 44 Documentation Description of the program development Data dictionary Documentation for users Documentation for operators Documentation for programmers Documentation in source programs 45 Conclusion Software development is not the same as coding (programming). Importance of software test . Documentation in all stages. 46 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