Professional Programming
2015-2016 - IMT3602 - 5 ECTS

Prerequisite(s)

IMT2021 Algorithms

IMT2243 Software Engineering

On the basis of

Working on a large full semester project in another course, for example the Bachelor Oppgave or Masters Thesis. 

Expected learning outcomes

The students will learn skills and knowledge related to developing a project using the principles of professional software development.

Knowledge:

  • Understanding the strenghts and weaknesses of different programming languages
  • Understanding the need for process control, and communication systems for software development

Skills:

  • Use of version control systems in large development projects, including ticket tracking, branching, SKUs and deployment
  • Ability to comment code in accordance with an agreed standard and in a professional manner
  • The ability to program for clarity
  • Develop and build library components for larger systems
  • Integration of multiple libraries into a large project

General Competence:

  • Professionalism in approach to software development
  • Give and receive critisim of coding practices and decisions

Topic(s)

The topics include but are not limited to:

  • Using version control in teams.
  • Coding styles
  • Comparitive languages
  • Bug tracking and solving
  • Commenting styles
  • Deployment of applications
  • Integrating libraries
  • Developing library modules.

Teaching Methods

Group works
Project work

Teaching Methods (additional text)

The main teaching method for this course will be group meetings with code reviews. Students will present their work and have that worked review in front of the group.  This allows students to learn from each other, and helps students learn to present their code and defend their coding decisions

Form(s) of Assessment

Portfolio Assessment

Form(s) of Assessment (additional text)

The assessment of this course is based on:

  • Quality of code written
  • Quality of comments and coding style
  • Quality and relevance of comment comments in version control
  • Quality of involvement in code reviews and refactoring of code

Grading Scale

Alphabetical Scale, A(best) – F (fail)

External/internal examiner

The course will use internals and intermitent external examiners. The externals will participate every 3 years starting in 2015-2016.

Re-sit examination

No resit. The course must be retaken.

Examination support

None

Teaching Materials

Web based resources, based on the language and processes chosen for the project.