Programming and Languages

A. Programs and programming

   1. What is a program?
      a. a list of instructions (application vs. system)
   2. What is programming?
      a. also called software development
      b. a six step process

B. Program Development Life Cycle

   1. Analyze Problem
      a. Determining program objectives
      b. Determining the desired output
      c. Determining the input data
      d. Determining the processing requirements
      e. Documenting the programs specifications
   2. Design Program
      a. Top-down program design - hierarchy charts
      b. Pseudocode
      c. Flow-charts
      d. Logic structures
         i. sequential
         ii. selection (IF and CASE)
         iii. repetition (loops)
      e. Object-oriented programming
         i. reusable, self-contained modules
      f. CASE tools
   3. Code the Program
      a. The good program:
         i. robust (reliable in all circumstances)
         ii. structured
         iii. documented
      b. Which language? (see below)
   4. Test the Program
      a. Syntax errors
      b. Logic errors
      c. The testing process
   5. Formalize the Solution
      a. Review code
      b. Document code
         i. users
         ii. operators - system managers
         iii. programmers
   6. Maintain Program
      a. Daily operations
      b. Changing needs

C. Five generations of programming languages

   1. Machine language: the first generation
   2. Assembly language: the second generation
   3. High level procedural languages: the third generation
      a. programs express logical procedures 
         i. good for general problem solving
      b. compilers and interpreters
      c. BASIC
      d. Pascal
      e. C
      f. COBOL
      g. Fortran
      h. Ada
      i. RPG
   4. Problem oriented languages: the fourth generation
      a. require very little training - good for specific situations
      b. SQL for databases
      c. Object Oriented Program (OOP) Development
         i. classes, objects
         ii. encapsulation
         iii. inheritance
   5. Natural languages: the fifth generation
      a. very English like (Hypertext for Hypercard)
   6. Other languages
      a. Java (3/4GL) - for applets
      b. Javascript
      c. Perl - scripting language (like C, for system administrators)
      d. DHTML - dynamic HTML