Programming Stream

From CDOT Wiki
Revision as of 17:28, 10 June 2012 by Chris Szalwinski (talk | contribs) (To Be Done)
Jump to: navigation, search


Programming Stream | Market Demand | Course Content | Work in Progress | Members | Issues


Welcome to the Programming Stream Group at the School of Information and Communications Technology

Introduction

This wiki describes curriculum developments within the programming stream at the School of Information and Communications Technology

  • The scope of the currently active projects is driven by
    • the general need to train professional programmers for direct entry into the workplace
    • the growing knowledge-based industries
      • digital game programming industry
      • open source communities for software developers
      • emergence of parallel computing
  • The information reported here is being provided to
    • inform members of the status quo
    • solicit member comments and criticisms

What can I do right now?

  • add your name to the list of active members and identify your interest here
  • add your project(s) to the list of projects under development here
    • create your own project page describing your own contributions
    • add descriptions of your project(s) in detail to this wiki along with current status
    • list the work that remains to be done
  • add any testimonials you have received here
  • add information to any section of this wiki - quotes, data, testimonials, suggestions


Curriculum Development Sessions (2012)

The principal objectives of these sessions are

to align the programming stream courses with the C11 and C++11 standards
to address the success rate of first semester students in the CPA program

Resolved Allocation Issues

  • Data Representation needs to be taught in first semester in another stream
binary - hex | hex - decimal
  • IPC144/BTP100
add variable length arrays
add const
add pointer - array equivalence
trivial additions to align with standard (see detail page)
remove gets()
assign a problem that requires the application of integer data rep knowledge taught in another course in the first half
  • OOP244/BTP200
move namespace definition to start
add inline functions
add parameter defaults
add simple file objects
move type safe casting nearer start
add simple function templates to polymorphism
add abstract base classes
trivial additions to align with standard (see detail page)
  • OOP344/BTP300
add multi-threading
add rvalues and move constructors
trivial additions to align with standard (see detail page)
  • Beyond OOP344/BTP300
trivial additions to align with standard (see detail page)

Delivery Issues

  • Committee for IPC144 has been struck - held first meeting - will reconvene
  • Danny, Sunny, and Mark will try applying Chris' timeline over the summer 2012 to enable the introduction of inheritance earlier in the semester

To Be Done

  • update learning outcomes to suit
[ OOP244 Draft Subject Outline]
[ BTP200 Draft Subject Outline]
  • update 244/200 course notes to reflect these changes
  • prepare 144/100 course notes to reflect these changes
  • decide which sections to make optional and which to relegate to appendices


Ongoing Issues

marketing

  • what is the market saying
  • what do we market now and how
  • how do we attract the best and the brightest to our programs

employability

faculty education

impact of social media

  • how will we interface with social media
  • personal learning environments

delivery

techniques and tools

  • which platforms should we be using
    gnu - which version
    visual studio
  • how early should students be exposed to open source tools
    using open source, instead of teaching open source? (repos, wikis, blogging, online collaboration tools)
  • how early should students work with repositories
    1. in early semesters, using repos as individual drop box, and versioning and then move to collaboration features in later semesters
    2. which repositories should be introduced?

collaboration

  • should students work in teams in OOP344, BTP300
    teamwork requires significantly more effort on the part of the instructor


Deferred Issues


Archives

should CPD include a professional option

  • for example, to take introductory game programming GAM666/DPS901
    • brings together programming and systems for the first time
    • top CPD students who enroll often do well in this course
  • faculty decided to keep the professional option