Skip to content

Latest commit

 

History

History
190 lines (154 loc) · 12.1 KB

module_handbook.md

File metadata and controls

190 lines (154 loc) · 12.1 KB

Programming Frameworks and Languages - Handbook

Date and validity September 2023, Academic year 2023–2024

Study hours for the module

  • Total 200 hours
  • Number of contact hour and pattern of delivery: 50 hours
  • Number of hours when students are expected to study independently or amongst peers, with no direct academic contact: 150 hours of Practice learning and independent study

Module aims

To develop the student’s understanding of the fundamental concepts of Programming Frameworks and Languages. This module supports the Implement and Operate elements of the CDIO model.

Module learning outcomes

By the end of the module students should be able to:

  1. Demonstrate an understanding of the concept of a Framework in general, a Framework used for Programming, and a Framework used for software Testing
  2. Critically evaluate the effectiveness of a particular framework for an application and platform
  3. Synthesise a small digital artefact using a well-formed programming framework

Overview of learning and teaching activities on the module

  • This module will use the CDIO educational framework within the context of developing a full-stack web service to a formal business specification using professional software engineering tools.
  • Making use of active learning tools such as project work and self directed problem-based learning, thus equipping computing students with improved technical knowledge of using an engineering tool-chain.
  • The module will be taught using a combination of lectures, computer laboratory based practical workshops and computer laboratory-based seminars.
  • Lectures will be used to cover the background theoretical aspects of the module and will, whenever appropriate, make explicit the relationships between theory and practice; and will use practical demonstrations to reinforce fundamental concepts.
  • Students will be involved in regular discussions that focus on dissecting and justifying the use of a range of software tooling.
  • Students will be expected to self-managed their learning and self select tools to implement a working solution that meets a predefined specification.
  • In addition, time will be spent exploring a range of web frameworks. Each framework was created to solve a specific problem.
  • Supervised support sessions will provide guidance on the progress of individual projects, commend good work and to identify areas that need improvement.
  • Ongoing feedback will be provided throughout the module by a range of automated tests.
  • Blackboard and GitHub will be the repository’s for all learning materials.

Equipment you need to bring to class

  • We will be using linux containers to develop and test software
  • A Cloud Based IDEs (GitPod/GitHubCodeSpaces) will be used to support your work both on and off campus
    • Cloud based development environments are becoming common practice for industry development.
  • Some students may wish to setup their own equipment for native development environment (e.g. DockerDesktop)

Assessments

  • You will be working in own public GitHub forked repository of https://github.com/calaldees/frameworks_and_languages_module
  • At the datetime of the deadline a snapshot of your fork will automatically be taken from GitHub.
  • In addition, You need to formally submit a zip file with the contents of your repository to TurnitIn for a formal audit trail. (see individual assignment descriptions)

Digital Artefact 60%

  • Due: 14:00 Monday 11th December 2023, Turnitin and GitHub
  • Return: 14:00 Monday 15th January 2024, Turnitin

Written Report 40%

  • Due: 14:00 Monday 9th January 2023, Turnitin and GitHub
  • Return: 14:00 Monday 29th January 2023, Turnitin

Assessment Overview

Assignment Section Marks
Digital Artifact Server framework implementation 25
Digital Artifact Client framework implementation 25
Digital Artifact Visual framework implementation 10
Technical Report Server/Client framework/language features 40
100

Table 1: Marks overview for all assignments

Formative Assessment

  • The objective is not to submit work that meets the assessment criteria.
  • The objective is to meet the leaning objectives of the module.

"Student understanding" is the objective of the course/module. The digital artifact and written report on their own are are poor proxies for student understanding. It is expected that students have continually demonstrated their understanding throughout the formative assessment process of this modules delivery.

All students should be able to demo their solution, describe aspects of it’s functionality, show their workflow or engage in discussion about framework/language features. All students will be given the opportunity to verbally express their understanding of their submissions. This will be evidenced by formative assessment and engagement with sessions throughout the module delivery. If students have been unable to demonstrate understanding of their work incrementally in sessions, it is equitable that they be given the opportunity to demo their submissions to academic staff after submission.

Examples:

  • A student commits multiple times a week (20+ commits over the module). Each commit message has an accurate technical description of what was added/attempted/changed. The student can demonstrate in sessions, an understanding of their functionality to a tutor or peer. It is evident that the student understands the module leaning outcomes.
  • If a student commits to their repository, with a total of 2 or 3 commits with non descriptive messages like added stuff, and these commits were made few days before the assignment deadline. They will be asked to demonstrate their solutions after submission so they have had the same equitable opportunity to demonstrate their understanding of their submission.

Citing sources of information

It is expected that students openly share and discuss code; these are traits/skills of a professional developers. Some sharing of solutions is acceptable and normal, but are almost always supported by referencing the developer conversations. Please refer to individual assignment descriptions for examples.

Indicative schedule of delivery

The course will consist of 44 hours of workshops with direct tuition and an additional 44 hours of supervised support. Totalling of 88 hours of tutor support. The module will be broken into 11 workshops with 4 hours tuition and an additional 4 hours supervised support. It is expected (but not compulsory) that students use the additional supervised support time to apply the concepts conveys in the morning workshops.

It is expected that the first 3 session, the 'supervised support' is utilised to by giving a complete worked example of a server and client in ExpressJS and VueJS. This front loading of material give students a foundation to talke the upcoming assignments. Student are reminded that this is a full time course. In full time employment you will be expected to work 09:00 till 17:30 to fulfil your contractual obligations.

From https://www.canterbury.ac.uk/our-students/ug-current/academic-services/timetable-and-dates/university-dates-2023-24

  • Monday 25th September
  • Monday 2nd October
  • Monday 9th October
  • Monday 16th October
  • ACW
  • Monday 30st October
  • Monday 6th November
  • Monday 13th November
  • Monday 20th November
  • Monday 27th November
  • Monday 4th December
  • Monday 11th December

Reminder: 4 hours a week of lectures alone is insufficient to develop the skills necessary to pass this module. Student are reminded again that they should be contributing 150 hours of independent study per module.

Session Content Overview

  • Session 1
    • Remote Cloud VSCode IDE (CodeSpaces/GitPod)
    • Containers
    • Afternoon: OpenAPI, WebService (curl, json, cors), SinglePage WebApp
  • Session 2
    • Server Frameworks 1
    • Afternoon: ExpressJS Worked Example - RSPV App Server
  • Session 3
    • Client Frameworks 1
    • Afternoon: VueJS Worked Example - RSPV App Client
  • Session 4
    • Test Frameworks
  • Alternative Curriculum Week
  • Session 5
    • Client Layout Frameworks
  • Session 6
    • Language Features
  • Session 7
    • Full webapp case study example - investigation
  • Session 8
    • Prototype 'Without a Framework' - code review
    • Containers (implementation understanding)
    • CI/CD (github actions)
  • Session 9
    • Other Frameworks/Tech/Approaches
  • Session 10
    • Engineering stories
  • Session 11
    • Assignment Workshop

Guidance on how to use independent study time

  • You are expected to self-select the languages and frameworks for your assessment implementation.
  • At Level 6; The use of the frameworks are your responsibility. You will not be directly instructed how to use one particular framework.
  • It is expected that you follow the online tutorials for a range of frameworks to enable to you to compare and contrast language/framework features.
  • You should be independently reading, exploring, and experimenting with a range of frameworks throughout the module duration.
  • You should be discussing the merits and features of a different frameworks with your peers and citing/references these discussions in code.
  • You should be sharing your code and progress openly. This is good practice for all professional and personal projects.

Employable skills

  • The majority of software engineering jobs require understanding and use of frameworks. Many software-engineering job are web technology focused as this is the current standard practice for interfacing and distributing content. Many of these jobs refer to frameworks such as React Native (client framework), Django (server framework), Full-Stack (client and server understanding) deploying to the cloud (containers), use of API’s (understanding how to build one, microservices). Many cite DevOps understanding (automated testing). Working with others (version-control/git/github). Developer tooling (CloudBasedIDE/Linux)
  • Look at the jobs offered below and count how many cite frameworks/languages/topics covered in this module
  • What Skills Do CS Grads Need?: Colleges And Employers Disagree Video/Poster presentation 10min
    • Employers focus on:
      • working without knowing the answers
      • collaboration
      • Manage oneself
      • experiment
  • You will have the opportunity to understand the use and purpose of a range of web based frameworks. You will be given the opportunity to "working without knowing the answers" and "experiment" with professional tooling
  • This module prepares you with the knowledge needed for interviewing for a professional role using web based technologies

Referencing system

Your work must be adequately referenced throughout. In program code; It is good practice to reference code patterns/snippets with url’s within code comments. This is useful for future maintainers to follow your thought process. It is always important to acknowledge sources of information. It is acceptable to use snippets of other code if referenced and justified correctly. Examples of referencing examples are described for each assignment.

Learning Materials/Resources

Reassessment information

Some students may be required to take reassessment for the module, following a decision from a Board of Examiner. Do check the Your Guide to Assessment and Award Processes and seek advice from your Personal Academic Tutor if this is the case for you. Support from the module team will be available in preparation for the reassessments.

Additional Information

This handbook should be read in conjunction with other sources:

  • Student Handbook: for programme academic information applying to all modules