Productive Programming

Do you just want results but programming is getting in the way?

Struggling to adapt your code to constant requirement changes?

Trouble making your software run on different computers?

Productive Programming can help!


Cheat sheet

Target audience

The course is mainly aimed at beginner programmers, as well as scientists, researchers, or engineers who write programs as part of their work, but have an informal computational background (outside of computer science or software engineering).

Productive Programming is designed to address typical frustrations that make coding a huge time and energy drain: long error-fixing cycles, difficulty in managing complex programs, scripts breaking on the smallest of changes, huge effort to change functionality, and so on.

These skills taught in the course are generic, so welcome if the content sounds useful, regardless of your professional track, whether you’re developing games or software as a hobby, or if you’re consider different career options and want to expand your qualifications.

Hesitant? You can attend the first day (out of 3) and get a full refund if you decide it’s not for you.

Aim

You will learn software design patterns that help:
  • increase productivity and flexibility
  • avoid mistakes
  • achieve reproducibility and reliability
  • share useful software with your community

The course provides the core know-how of good software architecture, which is normally picked up gradually along professional software development career paths.

Practical use is emphasized through hands-on instruction and exercises. You also get individual feedback from an experienced teacher. The aim is for you to start applying these patterns to your work immediately.

See the course brochure!

Contents

Topics

  • Agile development and iterative design
  • Modular design and interoperability
  • Testing effectively on a tight schedule
  • Documenting on a tight schedule
  • Distributing and deploying software
  • Tooling: setting up a good work environment

There is some flexibility in terms of exact contents, especially exercises.

A pre-course survey will be sent to assess student levels and adapt the material.

The aim is to accommodate all students, so the content won’t disfavor a minority in terms of their skill level. The instructor will prepare extra material to match student experience.

You can bring your own code! Besides the course exercises, you can apply what you learn to your own project and get feedback on it. Your code will of course be kept private and you will only receive feedback from the instructor.

Breakdown by day

Day 1

  • Introduction
  • Core Principles
  • Agile Development

Day 2

  • Testing
  • Design by Contract
  • Documentation

Day 3

  • Agile Ways of Working
  • Tooling
  • Packaging
  • Deployment



Is this course for you?

You will benefit most from the course if:

  • you are rather comfortable using a programming language
  • you are comfortable with loops and functions

The course covers patterns of writing software but does not consist of “advanced” topics in terms of programming knowledge.

The language of instruction is Python, though the principles are very general. Also, Python code is easy to read and translate. Examples and material (including exercises) in R are also available for students that use it. The instructor is familiar with multiple programming languages and can adapt examples for you.

The student groups are kept small to allow for more individual feedback.

If in doubt whether you would benefit from the course, get in touch!


Specs

  • Course length: 3 days (7 hours/day, including exercises, no homework)
  • Course form: Live online classes and exercises (using Google Meet)
  • Language: English
  • Exercise requirements: Only a browser is needed
  • Daily course schedule: 09:00 - 12:00 and 13:00 - 17:00, Swedish time (UTC +1 / UTC +2 summer DST)
  • Price: 5,000 SEK
  • Capacity per session: 6 students

See also our cancellation policy


Sign up

Please use the schedule page to sign up for the Productive Programming session you want.




Page last updated November 1, 2023