Skip to content

Latest commit

 

History

History
76 lines (59 loc) · 2.13 KB

learning-outcomes.md

File metadata and controls

76 lines (59 loc) · 2.13 KB
title authors
Learning Outcomes
Daniel Bosk <dbosk@kth.se>

Existing learning outcomes

The students should be able to

  • use programming to solve problems,
  • apply the problem solving methodology also within other fields than programming,
  • assess existing programs.

To be able to do this the students must learn to

Lo01: design programs without code repetitions, Lo02: divide a larger problem in manageable parts, Lo03: divide a program Lo04: apply control structures Lo05: design and present user friendly output Lo06: create flexible applications Lo07: choose appropriate names of identifiers Lo08: design interactive programs Lo09: use and design composite data types (classes) Lo10: transfer data between file and program, Lo11: review others' programs.

Revised learning outcomes

The students should be able to

  • [algorithmic thinking] divide a problem into suitable sub-problems [Lo02], reassemble the solutions to the sub-problems into a solution for the original problem;

    • thread of execution
    • distinguish sub-problems/minimize redundancy (discover suitable functions):
      • determine prerequisites (suitable parameters/arguments) and results ("return values").
      • distinguish iterations and recursion
      • distinguish data structures
  • [programming language] write functions that solves the sub-problems and compose them into a function that solves the original problem [Lo{01,03,06}, implicitly Lo{04,09,10}];

    • variables
    • functions
      • thread of execution
      • scope: arguments and return values
      • order of arguments
      • order of return values (tuples)
    • iterations: recursion, for, while
      • when to use recursion,
      • when to use for,
      • when to use while.
    • containers
    • classes
    • files
  • [usability] design usable text-based interfaces [Lo{05,08}];

    • usable output
    • usable input
  • [usability] write source code readable for humans [Lo07];

    • good identifier names
    • divide program into functions
    • PEP8
  • [evaluation] review source code written by others [Lo11].