Syllabus for the CSULA C++ for Java Programmers Class

This is not the final syllabus, if you are a student taking this class, please feel free to give feedback by end of week.

 

Book (If you want to use it, there are a lot of online resources that you can use instead, your choice):

In general I am using the following book for the non-XAML components in C++:

Beginning C++ Through Game Programming, Third Edition

Michael Dawson

eISBN-10: 1-4354-5743-9

Online Resources:

PluralSight, you receive a free subscription through your Dreamspark/MSDNAA subscription:

Other useful resources can be seen at my blog:

Another professor who teaches C++ for Windows 8

Grading

To receive an A grade in the class, the student will have demonstrated the ability to build deployable apps.  The student will demonstrate that they are capable of managing deployments by building at least 9 apps that are certified in the Windows Apps Store, with least one of the 9 app built using C++.

All students are required to gain store certification with at least five Windows 8 app. Certification is defined as the app is in the Windows Store. This process is fairly easy to work through, but the first time is hard so the student is advised to use Construct 2 to implement a simple game and get it posted.

Grades are given with the following standard

  • 92-100

    A with 9 store certified apps in the Windows 8 Store

    81-91

    B

    71-80

    C

    60-70

    D

    00-59

    F

Classwork:

  1. Teamwork enforcement:
    1. Two teams will present their work each week, teams will be selected at random, they will be required to demonstrate their work in front of the class. All team members will receive the same grade. One team member will give the presentation
    2. All work submitted will be for the team
    3. Teams will enforce work efforts of the team members

Class outcomes:

Student will be able to utilize C++ to build software that are marketable in application stores. At the end of class the students will design, manage and deploy software in teams using professional grade tools. Finally they will be able to demonstrate their knowledge by pointing to their software in app stores.

Syllabus:

Week 1: Teamwork in Software Development, What is C++, why to use C++ and tools that will be used in this class

  • Teamwork in Software
    • Students will select teams that will be used for the remainder of the term

What is C++ and why to use C++

  • In this class the student will gain insight into C++ importance to the software technology.
  • ISO Standard, what is it, where to get it and what you as a student have to do with it
  • Tools used in this class

By the end of class the student will demonstrate the tools to be used in the class for learning C++:

  • Utilization of Azure VM and Visual Studio in the Azure VM to build Windows 8 Apps
  • Team Foundation Server
  • Construct 2 (for the interim design process)
  • Demos:
    • Simple Application in C++
    • A boring and useless console application
    • XAML app using C++
    • If/switch/While Do
  • Apps in a Store
    • How to get an app in the store
  • Windows RT
  • Lab:
    • Build your Azure VM and start the Visual Studio Express or Ultimate installation
    • Write a program that gets three game scores from the user and displays the average
  • Practice Assessment

Week 2:

  • Team Presentations
  • Variables: Fundamentals Types
    • Variables
    • Fundamental Types
    • Demo: Casting
  • Variables: User Defined Types
    • Classes and Objects
    • Scope
    • Inheritance
    • Namespaces
    • Enumerations
    • Preprocessor
    • XAML and C++
    • HTML and C++
  • Lab: Building Game Apps
    • Using Construct 2, experience the use of a tool and touch considerations
    • Implement a Windows RT sample that uses C++ with HTML 5
    • Build the useless console app that all C++ developers have to do
    • Build a simple XAML app/Hello World
  • Assessment
  • Apps in a Store
    • Review of progress

Week 3: (MLK Celebration)

  • Team Presentation (Teams have to do their presentation in video on line)
  • Pointers (students are expected to go to the Pluralsight and watch the Video)
    • Pointers and References
    • Const
    • Const and Pointers
    • Free Store (Heap, sort of)
    • Manual Memory Management
    • Smart Pointers and using Smart Pointers
  • Lab: Building game apps

Week 4:

  • Team Presentations
  • Lecture: Flow control and impact on Variables
    • If
    • Immediate If
    • While
    • For
    • Switch
    • Functions
      • Free Functions
      • Member Functions
      • Understanding Error Messages
  • Lab:
    • Windows 8 Apps with C++/XAML, testing your apps
  • App Builds Status
  • Assessment

Week 5:

  • Team Presentations
  • Lecture: Operators
    • Arithmetic
    • Comparison
  • Lab:
  • App Builds

Week 6 :

  • Team Presentations
  • Lecture: Operators
    • Bitwise Operators
    • Writing an Overload
  • Lab:
  • App Builds
  • Assessment

Week 7:

  • Team Presentations
  • Lecture: The Standard Template
  • Lab:
    • Using Vectors (formally)
    • Hero's Inventory
  • App Build Status

Week 8:

  • Team Presentations
  • Lecture: Pointers and more pointers
    • Declaring Pointers
    • Initializing Pointers
    • Assigning addresses to pointers
    • Dereferencing pointers
    • Using Pointers to Objects
  • Lab:
    • Tic
  • App Builds
  • Assessment

Week 9:

  • Team Presentations
  • Lecture: Functions and more functions
  • Lab:
    • Mad Libs, HAVE FUN!
  • App Builds
  • Assessment

Week 10:

  • Team Presentations
  • Lecture: Pointers, References, Functions, Deployment, Windows 8 Store App
  • Lab:
    • Finalization of Windows 8 Apps
  • App Builds
  • Assessment

Final evaluations:

  • Students Teams will demo their best Store App (All teams must have certified store apps using any tool like Construct 2 AND at least one C++ based app in the Windows 8 Store, Windows Phone 8 would nice, but does count as an app count)
  • Individual workers will demo their best Store App
  • Note: All teams and individuals must have certified store apps using any tool like Construct 2 AND at least one C++ app in the Windows 8 Store.  Note: All certified store apps could be C++ based app, but not all apps can be a Construct 2 app.