5.14. Platform Based Development (Mandatory)

5.14. Platform Based Development (Mandatory)

Figure 5.14: Connection Map. CS2B1 Platform Based Development

5.14.1. Justification ↑ Back to top

Platform-based development focuses on the design and implementation of applications within specific computing environments. This course utilizes the Software Process and Design (SPD) framework to explore the unique constraints and capabilities of Web, Mobile, and Interactive platforms. Students will learn to apply shared architectural concerns and platform-specific APIs to build robust, scalable, and user-centric software solutions.

5.14.2. Generales Goals ↑ Back to top

  1. Understand the shared aspects and unique constraints of modern platforms.
  2. Develop professional applications for Web and Mobile environments.
  3. Apply interactive computing principles to enhance user experience.
  4. Design software architectures that leverage platform-specific services.

5.14.3. Contribution to Outcomes ↑ Back to top

AG-C09) Design and Development of Solutions: Designs, implements, and evaluates solutions for complex computing problems. (Usage)
AG-C04) Communication: Communicates effectively in complex computing activities. (Usage)

5.14.4. Content ↑ Back to top

5.14.4.1. Common Aspects: Platforms, APIs and Constraints (5 hours) [Skills AG-C04,AG-C09] ↑ Back to top

Bibliography: (Fielding, 2000; Gasca, 2021)

Topics

  1. Overview of development platforms (i.e., web, mobile, game, robotics, embedded, and interactive).
    1. Input/sensors/control devices/haptic devices
    2. Resource constraints
      1. Computational
      2. Data storage
      3. Memory
      4. Communication enumerate
      5. Requirements - security, uptime availability, fault tolerance Reliability Concepts , Reliability Engineering , Security Design and Controls Engineering , Threat Analysis and Security Engineering , Trusted Computing and Privacy Engineering
      6. Output/actuators/haptic devices enumerate
      7. Programming via platform-specific Application Programming Interface (API) vs traditional application construction
      8. Programming under platform constraints and requirements (e.g., available development tools, development, security considerations) AI and Hardware Security , Access Control and Applications , Security Mindset and Principles

      Learning Outcomes

      1. List the constraints of mobile programming [List]
      5.14.4.2. Common Aspects: Platform Languages and Web Programming Patterns (3 hours) [Skills AG-C04,AG-C09] ↑ Back to top

      Bibliography: (Fielding, 2000; Gasca, 2021)

      Topics

      1. Overview of platform Languages (e.g., Python, Swift, Lua, Kotlin)
      2. Techniques for learning and mastering a platform-specific programming language

      Learning Outcomes

      1. List the characteristics of scripting languages [List]
      2. Describe the three-tier model of web programming [Describe]
      3. Describe how the state is maintained in web programming [Describe]
      5.14.4.3. Frontend, Frameworks and Web Standards (12 hours) [Skills AG-C04,AG-C09] ↑ Back to top

      Bibliography: (Flanagan, 2020; Duckett, 2014; Fielding, 2000)

      Topics

      1. Web programming languages (e.g., HTML5, JavaScript, Typescript, CSS)
      2. Web platforms, frameworks, or meta-frameworks
        1. Cloud services
        2. API, Web Components enumerate
        3. Software as a Service (SaaS)
        4. Web standards such as document object model, accessibility Accessibility and Inclusive Design
        5. Security and Privacy Considerations Computer Crimes and Attacks , Security Laws, Policies and Responsibility

        Learning Outcomes

        1. Compare and contrast web programming with general-purpose programming [Compare]
        2. Describe the differences between Software-as-a-Service (SaaS) and traditional software products [Describe]
        3. Discuss how web standards impact software development [Debate]
        4. Evaluate an existing web application against current web standards [Evaluate]
        5.14.4.4. Mobile Platforms: Development Fundamentals (6 hours) [Skills AG-C04,AG-C09] ↑ Back to top

        Bibliography: (Deitel and Deitel, 2017; Hellman, 2013)

        Topics

        1. Development with
          1. Mobile programming languages
          2. Mobile programming environments enumerate
          3. Mobile platform constraints
            1. User interface design Understanding the User: Individual goals and interactions with others
            2. Security enumerate
            3. Access
              1. Accessing data through APIs Query Construction
              2. Designing API endpoints for mobile apps: pitfalls and design considerations
              3. Network and web interfaces Data Modeling , Fundamentals of Networks and Communications enumerate

              Learning Outcomes

              1. Compare mobile programming with general-purpose programming [Compare]
              2. Evaluate the pros and cons of native and cross-platform mobile application development [Evaluate]
              5.14.4.5. Mobile Platforms: Architecture and Constraints (3 hours) [Skills AG-C04,AG-C09] ↑ Back to top

              Bibliography: (Deitel and Deitel, 2017; Hellman, 2013)

              Topics

              1. Development
                1. Native versus cross-platform development
                2. Software design/architecture patterns for mobile applications API Design and Modeling , Principles and Software Architecture , Software Design Quality and Evaluation enumerate
                3. Mobile platform constraints
                  1. Responsive user interface design Accessibility and Inclusive Design
                  2. Heterogeneity and mobility of devices
                  3. Differences in user experiences (e.g., between mobile and web-based applications)
                  4. Power and performance tradeoff enumerate
                  5. Specification and testing Software Development Practices , Performance Testing and Benchmarking , Testing Tools and Analysis , Verification and validation Concepts , Test Planning and Types , Advanced Testing Practices

                  Learning Outcomes

                  1. Develop a location-aware mobile application with data API integration [Create]
                  2. Build a sensor-driven mobile application capable of logging data on a remote server [Create]
                  3. Create a communication app incorporating telephony and instant messaging [Create]
                  5.14.4.6. Mobile Platforms: Capabilities and Asynchronous Computing (3 hours) [Skills AG-C04,AG-C09] ↑ Back to top

                  Bibliography: (Deitel and Deitel, 2017; Hellman, 2013)

                  Topics

                  1. Mobile computing affordances
                    1. Location-aware applications
                    2. Sensor-driven computing (e.g., gyroscope, accelerometer, health data from a watch)
                    3. Telephony and instant messaging
                    4. Augmented reality Immersion enumerate
                    5. Asynchronous computing Algorithms
                      1. Difference from traditional synchronous programming
                      2. Handling success via callbacks
                      3. Handling errors asynchronously
                      4. Testing asynchronous code and typical problems in testing enumerate

                      Learning Outcomes

                      1. Develop a location-aware mobile application with data API integration [Create]
                      2. Build a sensor-driven mobile application capable of logging data on a remote server [Create]
                      3. Create a communication app incorporating telephony and instant messaging [Create]
                      5.14.4.7. SPD-SEP/Interactive (10 hours) [Skills AG-C04,AG-C09] ↑ Back to top

                      Bibliography: (Duckett, 2014; Deitel and Deitel, 2017)

                      Topics

                      1. Ethical guidelines when using AI models to assist in journalism and content creation
                      2. Accountability for AI-generated outputs
                      3. Behavior among prompt programmers and AI developers
                      4. Trust with the public when using AI models

                      Learning Outcomes

                      1. Indicate a framework for accountability in AI model deployment, including clear documentation and attribution [Evaluate]
                      2. Discuss ethical codes of conduct and professional standards relevant to prompt programming and AI development [Debate]
                      3. Create communication plans and materials to educate the public about AI capabilities, limitations, and ethical safeguards [Create]
                      5.14.4.8. Interactive Data and Analytics Platforms (6 hours) [Skills AG-C04,AG-C09] ↑ Back to top

                      Bibliography: (Flanagan, 2020)

                      Topics

                      1. Computational Notebook Platforms (e.g., Jupyter notebooks; Google Colab; R; SPSS; Observable)
                      2. Cloud SQL and Data Analysis Platforms (e.g., BigQuery) Query Construction
                        1. Apache Spark
                        2. Data Visualizations Visualization enumerate
                        3. Interactive Presentations Backed by Data
                        4. Design Tools Requiring Low-Latency Feedback Loops
                          1. Rendering tools
                          2. Graphic design tools enumerate

                          Learning Outcomes

                          1. Analyze large datasets interactively [Analyze]
                          2. Create a backing track for a musical performance, such as live coding [Create]
                          3. Create compelling computational notebooks that construct a narrative for a given journalistic goal/story [Create]
                          4. Implement interactive code that uses a dataset and generates exploratory graphics [Implement]
                          5. Contextualize the attributes of different data analysis styles, such as interactive vs engineered pipeline [Contextualize]
                          6. Write a program using a notebook computing platform (e.g., searching, sorting, or graph manipulation) [Write]

                          5.14.5. Bibliography ↑ Back to top

                          Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine.

                          Gasca, J. (2021). Web Security for Developers. No Starch Press.

                          Flanagan, D. (2020). JavaScript: The Definitive Guide. O'Reilly Media, 7th edition.

                          Duckett, J. (2014). JavaScript and JQuery: Interactive Front-End Web Development. Wiley.

                          Deitel, H. and Deitel, P. (2017). C++17: The Complete Guide. Pearson, Boston, MA, 10th edition.

                          Hellman, E. (2013). Android Programming: Pushing the Limits. Wiley.

                          Spotted a typo, an outdated course, a broken link, or have a suggestion? Let us know.

                          Scan to open on your phone