CS 10051-003/004 Introduction to Computer Science - Spring 2008

Final Exam Study Guide - Exam is on Tuesday, May 6, 2008 from 10:15 a.m. -12:30 p.m.

Chapters 1-7: select questions from Exams 1, 2 and 3

Chapter 8:

High-level Programming Languages and C++

  • Compilation process and Figure 8.1

C++ Syntax

  • Comments
  • Include directive
  • Using directive
  • Free-format language

Virtual data storage

  • constants
  • case-sensitive
  • free-format language
  • memory location
  • declarations and data types
    • identifiers
    • constants
    • int
    • float
    • char

Statement Types

  • Input / output statements
    • cout <<
    • cin >>, user prompts
  • Assignment statements & Operators
    • =, +, - , *, /, %
  • Control statements
    • Conditional statements (Boolean conditions)
      • if
      • if / else
      • Conditional operators (==, <, <=, >, >=, !=)
    • Looping statements
      • while (condition) {}
        • 1. initialization of variables; 2. use in conditional 3. update inside loop
      • for loops
        • for(init / declare loop control variable; loop while condition true; update loop control var at end of each loop)
      • Infinite loops

Complete Programs & Managing Complexity

  • Divide and conquer problem-solving approach
  • Structure chart / diagram

Object-Oriented Programming (high-level only)

  • Encapsulation, Interface and Inheritance
  • Software reuse
  • More natural "world view"

Graphical Programming (high-level only)

  • Graphics library
  • Text book's example

Software Engineering

  • Software life cycle
  • Figure 8.35
    • Before Implementation
      • Feasibility study -> Feasibility document
      • Problem specification -> problem specification document
      • Program design phase -> program design document
      • Algorithm selection or development and analysis
    • Implementation
      • Coding / Debugging
    • After Implementation
      • Testing, verification, and benchmarking
      • Documentation (internal and external)
      • Maintenance
  • Integrated Development Environments (IDEs)

Chapter 9:

Procedural (Imperative) Languages

  • external libraries
  • legacy code
  • FORTRAN
  • COBOL
  • C
    • pointers
    • system programming
  • Ada
  • Java
    • applications
    • applets
  • C# and .NET
    • .NET Framework
    • Microsoft Intermediate Language (MSIL)
    • Just In Time (JIT) compiler

Special Purpose Languages

  • SQL
    • Databases
    • Queries
  • HTML
    • tags
    • web pages
  • JavaScript

Alternative Programming Paradigms

  • Paradigm -> model or framework
  • Functional programming & LISP
    • Applicative language
    • Atoms - most basic "thing" in LISP
    • Prefix notation
    • List handling
      • car
      • cdr
    • Functions
      • function definition: defun
      • base case
      • recursive functions (calls itself until reaches base case)

Logic Programming

  • Declarative languages
  • Query
  • Expert systems
  • PROLOG
    • knowledge base
      • facts
      • rules
    • inference engine / query interpreter

Parallel Programming

  • SIMD programming
    • Single parallel instruction creates multiple results
    • Cn language example
  • MIMD programming
    • Divide and Conquer approach to programming
  • GPGPU programming (General Purpose Graphical Processing Unit)
    • Uses video card technology to create programs
    • NVIDIA is one card that does this

 

Last Updated: Tuesday, April 29, 2008