SPD – CS2013 Version

Platform-Based Development (PBD)

Platform-based development is concerned with the design and development of software applications that reside on specific software platforms.  In contrast to general purpose programming, platform-based development takes into account platform-specific constraints.  For instance web programming, multimedia development, mobile computing, app development, and robotics are examples of relevant platforms that provide specific services/APIs/hardware that constrain development.  Such platforms are characterized by the use of specialized APIs, distinct delivery/update mechanisms, and being abstracted away from the machine level. Platform-based development may be applied over a wide breadth of ecosystems.

While we recognize that some platforms (e.g., web development) are prominent, we are also cognizant of the fact that no particular platform should be specified as a requirement in the CS2013 curricular guidelines.  Consequently, this Knowledge Area highlights many of the platforms that have become popular, without including any such platform in the core curriculum.  We note that the general skill of developing with respect to an API or a constrained environment is covered in other Knowledge Areas, such as SDF-Software Development Fundamentals.  Platform-based development further emphasizes such general skills within the context of particular platforms.

 

PBD. Platform-Based Development (Elective)

  Core-Tier1 hours Core-Tier2 hours Includes Electives
PBD/Introduction     Y
PBD/Web Platforms     Y
PBD/Mobile Platforms     Y
PBD/Industrial Platforms     Y
PBD/Game Platforms     Y

 

 

PBD/Introduction

[Elective]

This unit describes the fundamental differences that Platform-Based Development has over traditional software development.

Topics:

  • Overview of platforms (e.g., Web, Mobile, Game, Industrial)
  • Programming via platform-specific APIs
  • Overview of Platform Languages (e.g., Objective C, HTML5)
  • Programming under platform constraints

 

Learning Outcomes:

  1. Describe how platform-based development differs from general purpose programming. [Familiarity]
  2. List characteristics of platform languages. [Familiarity]
  3. Write and execute a simple platform-based program. [Usage]
  4. List the advantages and disadvantages of programming with platform constraints. [Familiarity]

 

PBD/Web Platforms

[Elective]

Topics:

  • Web programming languages (e.g., HTML5, Java Script, PHP, CSS)
  • Web platform constraints
  • Software as a Service (SaaS)
  • Web standards

 

Learning Outcomes:

  1. Design and Implement a simple web application. [Usage]
  2. Describe the constraints that the web puts on developers. [Familiarity]
  3. Compare and contrast web programming with general purpose programming. [Assessment]
  4. Describe the differences between Software-as-a-Service and traditional software products. [Familiarity]
  5. Discuss how web standards impact software development. [Familiarity]
  6. Review an existing web application against a current web standard. [Assessment]

 

PBD/Mobile Platforms

[Elective]

Topics:

  • Mobile Programming Languages
  • Challenges with mobility and wireless communication
  • Location-aware applications
  • Performance / power tradeoffs
  • Mobile platform constraints
  • Emerging Technologies

 

Learning Outcomes:

  1. Design and implement a mobile application for a given mobile platform. [Usage]
  2. Discuss the constraints that mobile platforms put on developers. [Familiarity]
  3. Discuss the performance vs. power tradeoff. [Familiarity]
  4. Compare and Contrast mobile programming with general purpose programming. [Assessment]

 

PBD/Industrial Platforms

[Elective]

This knowledge unit is related to IS/Robotics.

Topics:

  • Types of Industrial Platforms (e.g., Mathematic, Robotics, Industrial Controls)
  • Robotic Software and its Architecture
  • Domain Specific Languages
  • Industrial Platform Constraints

 

Learning Outcomes:

  1. Design and implement an industrial application on a given platform (e.g., using Lego Mindstorms or Matlab). [Usage]
  2. Compare and contrast domain specific languages with general purpose programming languages. [Assessment]
  3. Discuss the constraints that a given industrial platforms impose on developers. [Familiarity]

 

PBD/Game Platforms

[Elective]

Topics:

  • Types of Game Platforms (e.g., XBox, Wii, PlayStation)
  • Game Platform Languages (e.g., C++, Java, Lua, Python)
  • Game Platform Constraints

 

Learning Outcomes:

  1. Design and Implement a simple application on a game platform. [Usage]
  2. Describe the constraints that game platforms impose on developers. [Familiarity]
  3. Compare and contrast game programming with general purpose programming. [Assessment]