Programming Fundamentals

Slides:



Advertisements
Similar presentations
Languages for IT & CS Pseudo-code What HTML isn’t Early history Compiling & interpreting Classifying languages The process of programming.
Advertisements

Computers Are Your Future
Understanding the Three Basic Structures
زبانهای برنامه سازی برنامه سازی پیشرفته ارائه دهنده دکتر سيد امين حسيني E.mail: Home page:
Programming Logic and Design Seventh Edition
CS105 INTRODUCTION TO COMPUTER CONCEPTS INTRO TO PROGRAMMING Instructor: Cuong (Charlie) Pham.
Programming Logic and Design Seventh Edition
Programming Creating programs that run on your PC
1 Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
1 Copyright © 2010 Pearson Education, Inc. Publishing as Prentice Hall.
Tuesday, January 25, Management of Information Systems: Mini-3 Spring 2000.
Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc. Developing Business Information Systems Chapter 11.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Computer Programming How Can You Create Your Own Software? Chapter 13.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Building Applications.
© Paradigm Publishing Inc Chapter 12 Programming Concepts and Languages.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
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 CPS120: Introduction to Computer Science Lecture 5.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
High-level Languages.
Copyright Prentice Hall, Inc. 1 Computers: Information Technology in Perspective, 11e Larry Long and Nancy Long Chapter 11 Developing Business Information.
1 3. Computing System Fundamentals 3.1 Language Translators.
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
INTRODUCTION TO COMPUTING CHAPTER NO. 04. Programming Languages Program Algorithms and Pseudo Code Properties and Advantages of Algorithms Flowchart (Symbols.
Computing System Fundamentals 3.1 Language Translators.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall 1.
 Programming - the process of creating computer programs.
Programming Logic and Design, Introductory, Fourth Edition1 Understanding the Three Basic Structures Structure: a basic unit of programming logic Any program.
Programming Languages
Programming Logic and Design Fifth Edition, Comprehensive
P ROGRAMMING L OGIC GWDA123 Sharon Kaitner, M.Ed. Winter 2015: Week 2.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Programming Logic and Design Fourth Edition, Introductory Chapter 2 Understanding Structure.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
IS220 Computer Programming
Programming Logic and Design Seventh Edition
CMIT100 Chapter 14 - Programming.
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.
Chapter 1 – Introduction to Computers, the Internet, and the Web
Lecture 1 Introduction Richard Gesick.
Sections Basic Concepts of Programming
CSCI-235 Micro-Computer Applications
Computer Programming.
Chapter 1 The Systems Development Environment
Programming Logic and Design Eighth Edition
Programming Concepts and Languages
Chapter 1 The Systems Development Environment
Objectives Overview Differentiate between machine and assembly languages Identify and discuss the purpose of procedural programming languages, and describe.
Chapter 4 Computer Software.
An Introduction to Visual Basic .NET and Program Design
Program Development and Programming Languages
Developing Applications
A Beginner’s Guide to Programming Logic, Introductory
Computer Programming.
Chapter 12 Programming Concepts and Languages.
Programming Languages and Program Development
Software Programming J. Holvikivi 2014.
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Ada – 1983 History’s largest design effort
Understanding the Three Basic Structures
CS105 Introduction to Computer Concepts Intro to programming
and Program Development
Principles of Programming Languages
Introduction to Computers, Internet and the World Wide Web
CS105 Introduction to Computer Concepts Intro to programming
Presentation transcript:

Programming Fundamentals Session I ww.profburnett.com Master a Skill / Learn for Life

Session Outline Getting Started Chapter 1. Getting Started Programming a Computer Chapter 2. Different Methods for Writing Programs Chapter 3. Types of Programming Languages Chapter 4. Programming Tools Chapter 5. Managing Large Projects with Software Engineering 9/21/2018 Copyright © Carl M. Burnett

Chapter 1 - Programming a Computer Understanding How a Computer Works History of Programming Discovering Programming 9/21/2018 Copyright © Carl M. Burnett

Understanding How a Computer Works Problem Solving Identify the Problem Define the Steps to Solve the Problem 9/21/2018 Copyright © Carl M. Burnett

History of Programming How Do Computers Talk? Binary Language = Machine Language Computer Processor talks Machine Language Assembly Language Machine Language Hardware 9/21/2018 Copyright © Carl M. Burnett

Number Base 9/21/2018 Copyright © Carl M. Burnett Hexadecimal (Base 16) Decimal (Base 10) Binary (Base 2) 0hex  0000 1hex 1  0001 2hex 2  0010 3hex 3  0011 4hex 4 0100 5hex 5 0101 6hex 6 0110 7hex 7 0111 8hex 8 1000 9hex 9 1001 Ahex 10 1010 Bhex 11 1011 Chex 12 1100 Dhex 13 1101 Ehex 14 1110 Fhex 15 1111 9/21/2018 Copyright © Carl M. Burnett

Assembly Language Make Programming Easier Assembly Language address CPU Registers 9/21/2018 Copyright © Carl M. Burnett

Higher Level Languages Makes Programming Easier C Programming Compromise OO & Visual Language Fortran C Pascal High Level Language Assembly Language Machine Language Hardware 9/21/2018 Copyright © Carl M. Burnett

Language Conversion Translates Source Code to Machine Code Assembly Language converted by “Assembler” High Language converted by “Compiler” OO & Visual Language Fortran C Pascal High Level Language Assembly Language Machine Language Hardware 9/21/2018 Copyright © Carl M. Burnett

OS & Programming Windows Mac OS X Visual Basic C Visual C++ C++ Visual J++ Turbo C++ Turbo C# RealBasic Mac OS X C C++ Objective C Java RealBasic 9/21/2018 Copyright © Carl M. Burnett

OS & Programming Linix Java C NetBeans C++ BlueJ Objective C Eclipse FORTRAN Java Ada RealBasic Java NetBeans BlueJ Eclipse 9/21/2018 Copyright © Carl M. Burnett

Discovering Programming Programming is about Solving a Problem Programming Principles Programming Languages Change 9/21/2018 Copyright © Carl M. Burnett

Chapter 2 - Methods for Writing Programs Spaghetti Programming Structured Programming Object-Oriented Programming 9/21/2018 Copyright © Carl M. Burnett

Unstructured Spaghetti Code Spaghetti code – logically snarled program statements Can be the result of poor program design Example: college admissions criteria

Unstructured Spaghetti Code

Structured Programming Three Basic Program Structures Structure: a basic unit of programming logic Any program can be constructed from only three basic types of structures Sequence Selection (Branches) Loop

Three Basic Program Structures Sequence structure A set of instructions, performed sequentially with no branching

Three Basic Program Structures Selection structure Asks a question, then takes one of two possible courses of action based on the answer Also called a decision structure or an if-then-else

Three Basic Program Structures Dual-alternative if: contains two alternatives

Three Basic Program Structures Single-alternative if: contains one alternative

Three Basic Program Structures Single-alternative if Else clause is not required Null case: situation where nothing is done

Three Basic Program Structures Loop structure Repeats a set of actions based on the answer to a question Also called repetition or iteration Question is asked first in the most common form of loop

Three Basic Program Structures Loop structure

Three Basic Program Structures All logic problems can be solved using only these three structures Structures can be combined in an infinite number of ways Stacking: attaching structures end-to-end End-structure statements Indicate the end of a structure endif: ends an if-then-else structure endwhile: ends a loop structure

Three Basic Program Structures

Three Basic Program Structures Any individual task or step in a structure can be replaced by a structure Nesting: placing one structure within another Indent the nested structure’s statements Block: group of statements that execute as a single unit

Three Basic Program Structures

Three Basic Program Structures

Three Basic Program Structures

Three Basic Program Structures Each structure has one entry and one exit point Structures attach to others only at entry or exit points

Object-Oriented Programming (OOP) Objects Isolate Data Objects Simplify Modification Code Reusability 9/21/2018 Copyright © Carl M. Burnett

Object Oriented Concepts Data Encapsulation Inheritance Polymorphism Class Objects Metadata

Object Characteristics A particular instance of a class. State Properties or Attributes Methods or Behaviors

Chapter 3 - Types of Programming Languages Compiled Curly-bracket Data-Oriented Embeddable Fourth-Generation Interpreted Object-Oriented Scripting XML 9/21/2018 Copyright © Carl M. Burnett

Compiled Programming Languages COBOL Fortran Objective C Pascal Smalltalk Visual Basic Visual FoxPro Visual Prolog 9/21/2018 Copyright © Carl M. Burnett

Curly-Bracket Programming Languages COBOL ECMAScript ActionScript JavaScript Jscript Java Perl PHP Windows PoweShell (.NET) 9/21/2018 Copyright © Carl M. Burnett

Data-Oriented dBase SQL Visual FoxPro 9/21/2018 Copyright © Carl M. Burnett

Embeddable Server Side Client Side PHP ActionScript VBScript Java WebDNA Perl Scala Python Ruby Client Side ActionScript Java JavaScript ECMAScript JScript 9/21/2018 Copyright © Carl M. Burnett

Fourth-Generation IBM Informix 4GL Oracle Express 4GL Progress 4GL SAS Visual FoxPro 9/21/2018 Copyright © Carl M. Burnett

Interpreted J JavaScript Pascal Perl PHO Python Ruby VBScript Windows PowerShell (.NET) 9/21/2018 Copyright © Carl M. Burnett

Object-Oriented ActionScript C++ C# ColdFusion Delphi ECMAScript J Perl 5 PHP Python RealBasic Ruby Smalltalk VBScript Visual FoxPro 9/21/2018 Copyright © Carl M. Burnett

Scripting AppleScript Python ColdFusion Ruby ECMAScript Smalltalk Perl PHP Python Ruby Smalltalk VBScript Windows PowerShell 9/21/2018 Copyright © Carl M. Burnett

XML XAML Xpath Xquery XSLT 9/21/2018 Copyright © Carl M. Burnett

.NET Framework Visual Basic C# C++ J++ .NET Framework (pcode similar to the bytecode intermmediate format of Java) Executable File 9/21/2018 Copyright © Carl M. Burnett

Programming Tools Flowcharting Unified Modeling Language (UML) Compilers Other Tools 9/21/2018 Copyright © Carl M. Burnett

Programming Flowcharts Symbol Purpose Description Flow line Used to indicate the flow of logic by connecting symbols. Terminal (Stop /Start) Used to represent start and end of flowchart. Process Used for arithmetic operations and data-manipulations. Decision Used to represent the operation in which there are two alternatives, true and false. Document Used to represent output to a document or device. Data Used to represent data used in a process. Predefined Process Used to represent a group of statements performing one processing task. 9/21/2018 Copyright © Carl M. Burnett

Programming Flowcharts Symbol Purpose Description On-page Connector Used to join different flow line. Off-page Connector Used to connect flowchart portion on different page. Database Used to represent output or input from a database. Multipage Document Used to represent multiple output to a document or device. External Data Used to represent data received from external sources. 9/21/2018 Copyright © Carl M. Burnett

Unified Modeling Language (UML) Use Case Chart Activity Chart Sequence Chart State Chart Collaboration Chart Component Chart 9/21/2018 Copyright © Carl M. Burnett

Unified Modeling Language (UML) Use Case Chart Activity Chart Sequence Chart State Chart Collaboration Chart Component Chart 9/21/2018 Copyright © Carl M. Burnett

Unified Modeling Language (UML) Symbols Symbol Purpose Description Use Case Represents a textual specification that is created independently from the diagram. Actor An actor is a person, group, or system that interacts with the use case. System Boundary Define the extent of a system, which can include one or more use cases. Class Object Class represents set of objects having similar responsibilities. Object Objects are entities that have properties and methods defined. 9/21/2018 Copyright © Carl M. Burnett

Chapter 4 - Programming Tools Source Code Machine Code Compiler Compiler Operations VM Linux Source Code Bytecode Compiler Virtual Machine VM Windows VM Mac OS X Scripting Interpreters 9/21/2018 Copyright © Carl M. Burnett

Choosing a Compiler OS Programming Language Stability Longevity 9/21/2018 Copyright © Carl M. Burnett

Compilers Windows – Table 4-1, page 89 Mac OS X – Table 4-2, page 90 Linux – Table 4-3, page 90 9/21/2018 Copyright © Carl M. Burnett

Other Programming Tools Editor Integrated Development Environment Debugger File Management Profiler GUI Designer Help File Creator Installer Disassembler 9/21/2018 Copyright © Carl M. Burnett

Chapter 5 - Managing Large Projects with Software Engineering System Development Life Cycle (SDLC) Rapid Application Development (RAD) Joint Application Development (JAD) Extreme Programming (EP) (Agile Software Development) Computer Aided Software Engineering (CASE) 9/21/2018 Copyright © Carl M. Burnett

System Development Life Cycle (SDLC) 9/21/2018 Copyright © Carl M. Burnett

System Development Life Cycle (SDLC) 9/21/2018 Copyright © Carl M. Burnett

Rapid Application Development (RAD) 9/21/2018 Copyright © Carl M. Burnett

Joint Application Development (JAD) Dynamic Systems Development Method 9/21/2018 Copyright © Carl M. Burnett

Extreme Programming (EP) (Agile Software Development) 9/21/2018 Copyright © Carl M. Burnett

Computer Aided Software Engineering (CASE) CASE tool index - Unl.csi.cuny.edu Unified Modeling Language (UML) 9/21/2018 Copyright © Carl M. Burnett

Computer Aided Software Engineering (CASE) Testbed Setup ASP / ISP Amazon Web Service Amazon EC2 Amazon S3 Version Control Private CodePlex Bitbucket Open Source github SourceForge Launchpad 9/21/2018 Copyright © Carl M. Burnett

Student Exercise I Using a diagramming tool develop a programming flowchart that depicts your process of getting dressed for the day. 9/21/2018 Copyright 2017 © Carl M. Burnett

Session Review Next – Programming Basics Getting Started Chapter 1. Getting Started Programming a Computer Chapter 2. Different Methods for Writing Programs Chapter 3. Types of Programming Languages Chapter 4. Programming Tools Chapter 5. Managing Large Projects with Software Engineering Next – Programming Basics 9/21/2018 Copyright © Carl M. Burnett