Notes on Project Management, Databases, and Programming Languages

Chapter 9: Critical Path and Project Management

  • Critical Path: Sequence of activities that determines the shortest time to complete a project.
  • Colocation Center: A facility where multiple corporations lease space and equipment.
  • Data Center: Specialized facility to protect computer systems and data.
  • Application Development Tool:
    • ERP (Enterprise Resource Planning): Suite of software modules integrating major business activities.
    • Benefits: Improved performance, minimized overhead, increased productivity, better access, enhanced customer satisfaction, reduced costs/errors, increased profitability, reduced inventory costs.

Software Development Life Cycle (SDLC)

  1. Planning Phase:
    • Assemble project team, justify project, choose methodology, develop schedule, produce development plan.
    • Goal: Create a development plan to improve, innovate, or create products.
  2. Analysis Phase:
    • Study current system, determine requirements, write requirements report.
    • Goal: Produce list of requirements for new/revised system.
  3. Design Phase:
    • Identify solutions, evaluate and select best solutions, select hardware/software, develop specifications, obtain approval.
    • Goal: Create detailed specifications for the system.
  4. Implementation Phase:
    • Supervise tasks for constructing the system, purchasing hardware/software, creating/testing applications, training users, converting data, initiating the system.
    • Goal: Ensure comprehensive documentation for effective use and modification.
  5. Maintenance Phase:
    • Daily operation, modifications for improvement, correcting problems.
    • Goal: Continue until system is obsolete or not cost-effective.
  • Feature Creep: Projects fail due to unmanaged demand for changes.
  • JAD (Joint Application Design): Technique where end users and analysts collaborate as equal partners in system design.
  • BI (Business Intelligence): Process to collect and analyze business data for decision making.

Chapter 10: Databases and Models

  • Database Models:
    • Hierarchical: One-to-one and one-to-many relationships in a tree structure.
    • Network: Data represented as a graph with nodes and connections.
    • Relational: Data stored in related tables.
    • O-O: Object-oriented programming organizing design around objects.
  • DBMS: Software that manages data in a database.
  • Data Independence: Separation of data from the manipulating programs.
  • Normalization: Minimizes redundancy and maximizes efficiency.
  • Operational Database: Used for daily data tasks.
  • Data Warehouse: Large stores of data used for management decisions.
  • Big Data: Huge datasets that are hard to process with conventional tools.
  • Hadoop: Open-source software for storing and processing large datasets.
  • MapReduce: Programming model for accessing big data in Hadoop.
  • Data Mining: Algorithms analyzing information for useful knowledge.

Chapter 11: Programming Languages and Structures

  • High-Level Languages: Based on human languages, abstracting low-level instruction details.
  • Low-Level Languages: Specific to CPU commands; includes 1st, 2nd, 3rd, 4th, and 5th generation languages.
    • 1st Gen: Machine language.
    • 2nd Gen: Assembly languages with symbolic instructions.
    • 3rd Gen: Languages like C, involving easier command words.
    • 4th Gen: More closely resemble human languages.
    • 5th Gen: Declarative languages like Prolog.
  • Programming Paradigms: Conceptualizing tasks; includes procedural, object-oriented, declarative.
  • Variables: Represent changeable values.
  • Constants: Unchangeable values throughout the program.
  • Syntax Error: Occurs when instructions violate language rules.
  • Source Code: Human-readable program representation; Object Code: Output of the compiler.

Algorithms and Functionality

  • API (Application Programming Interface): Set of routines for building software.
  • Algorithm: Ordered steps for tasks.
  • Pseudocode: Notational system for algorithms, less formal than actual programming.
  • Control Structures:
    • Selection: Based on true or false conditions.
    • Repetition: Repeating instructions until a condition is met.
    • Sequence: Changing order of execution.
  • Class: Template for object groups sharing characteristics.
  • Object: Represents a real-world entity.
  • Inheritance: Passing traits from one class to others.
  • Polymorphism: Allows methods to be redefined in subclasses.
  • Encapsulation: Hiding details of objects for simpler use.