50-152-704Advanced Programming for IT: Software Apprentices
Course Information
Description
Examines advanced programming skills for apprentices.  Focus is placed on design patterns, algorithms, data structures, and delegates.  Apprentices utilize a database with an application.
Total Credits
3

Course Competencies
  1. Utilize a database with an application
    Assessment Strategies
    Oral, Written and/or Skill Assessment
    Criteria
    apprentice implements a database backend
    apprentice creates an editing framework
    apprentice queries the database and presents results
    apprentice generates reports from the database

  2. Define design patterns
    Assessment Strategies
    Oral, Written and/or Skill Assessment
    Criteria
    apprentice identifies design patterns
    apprentice explains how modularity is achieved using design patterns

  3. Apply design patterns to the application
    Assessment Strategies
    Oral, Written and/or Skill Assessment
    Criteria
    apprentice selects the appropriate pattern for a given situation
    apprentice designs a class using the Singleton design pattern
    apprentice writes code to implement the Data Access Object (DAO) pattern
    apprentice designs and creates objects using a Factory pattern

  4. Utilize delegates
    Assessment Strategies
    Oral, Written and/or Skill Assessment
    Criteria
    apprentice defines a delegate
    apprentice invokes the delegate

  5. Explore algorithms and data structures
    Assessment Strategies
    Oral, Written and/or Skill Assessment
    Criteria
    apprentice explores various search algorithms
    apprentice explores sorting algorithms
    apprentice compares various sorting algorithms
    apprentice compares various searching algorithms
    apprentice explores collections (i.e. lists, stacks, queues, and dictionaries)
    apprentice compares collections (i.e. lists, stacks, queues, and dictionaries)
    apprentice explores additional data structures (i.e. trees, linked lists)
    apprentice compares additional data structures (i.e. trees, linked lists)
    apprentice selects appropriate algorithm considering Big O ramifications