Credits: 5

Schedule: 01.06.2020 - 31.08.2020

Contact information for the course (applies in this implementation): 

We will use Slack as the main communication channel during the course for all technical and exercise related questions. If you have an email address, you can join the Slack here. Communication happens on #summer2020 channel. If you do not have an aalto email, send email to the address below, and we will invite you.

For questions about the course arrangements, the course personnel can be reached by email at

We will also use MyCourses for course announcements.

Available communication languages on the course are English and Finnish. Course material is available in English and Finnish.

Teaching Period (valid 01.08.2018-31.07.2020): 

III - V 2018 - 2019 (spring), III - V 2019 - 2020 (spring)

Learning Outcomes (valid 01.08.2018-31.07.2020): 

The student knows the basics of C programming language and can independently write short programs using the C language.

Content (valid 01.08.2018-31.07.2020): 

Basic concepts of systems-level programming. Basics of the C programming language. Dynamic memory management and its application in common data structures. Basic use of programming and debugging tools for C. Small programming exercises in C.

Details on the course content (applies in this implementation): 

Course is divided into 10 modules that will take place from early June to early August. There will be weekly deadlines. In addition, there will be a small programming project and exam in August. The exam will be done using computer that has programming tools available.

The ten modules are:

  1. Basics
  2. Input and Output
  3. Pointers and Arrays
  4. Strings
  5. Dynamic memory
  6. Structured data types
  7. Multidimensional arrays
  8. Binary operations
  9. I/O streams
  10. Advanced features

Assessment Methods and Criteria (valid 01.08.2018-31.07.2020): 

Exercises and examination.

Elaboration of the evaluation criteria and methods, and acquainting students with the evaluation (applies in this implementation): 

The course grade will be a weighed average from the following:

  • Exercises (40%): max. 1000 points out of the ten modules (max. 100 points each), min. 500 points, at least seven modules must have 50 points or more
  • Programming project (30%): Graded on a scale from 0 to 10. At least 5 points required.
  • Exam (30%): Maximum points yet undecided, at least 50% of maximum points are required to pass.

All three of the above components need to be passed at acceptable level. When computing the grade, a normalised sub grade between 0 and 5.5 will be calculated from each of the above three categories. The final grade will be weighed average of the three sub grades, rounded to nearest integer. The exact equation for calculating the grade is

((PointsE - 500) / 500 * 5 + 0,5) * 0,4 + ((PointsP - 5) / 5 * 5 + 0.5) * 0,3 + ((PointsT - MinT) / (MaxT-MinT) * 5 + 0,5) * 0,3

(where PointsE is exercise score, PointsP is the project score and PointsT is the result from programming test. The final grade is the above result rounded to nearest integer. MaxT is the maximum number of points from programming test (yet undecided) and MinT is the minimum points for acceptable test (50% of maximum).

Workload (valid 01.08.2018-31.07.2020): 

19 h contact hours
115 h individual study

Details on calculating the workload (applies in this implementation): 

There will be two 2-hour lectures.

Each exercise round is estimated to require about 10 hours of work, based on online material and exercises.

Programming project is estimated to require about 10 - 15 hours of work.

Exam takes 3 hours + preparation. If you have done exercises actively, not much additional preparation is needed.

Details on the course materials (applies in this implementation): 

Course materials and exercises are available in TIM system. Materials are available in English and Finnish.

Grading Scale (valid 01.08.2018-31.07.2020): 


Registration for Courses (valid 01.08.2018-31.07.2020): 


Further Information (valid 01.08.2018-31.07.2020): 

Language class 4: English, may be completed in Finnish or Swedish upon request

Details on the schedule (applies in this implementation): 

Modules and deadlines

  1. Basics, deadline 12.6.2020
  2. Input and Output, deadline 12.6.2020
  3. Pointers and Arrays, deadline 26.6.2020
  4. Strings, deadline 26.6.2020
  5. Dynamic memory, 3.7.2020
  6. Structured data types, 10.7.2020
  7. Multidimensional arrays, 17.7.2020
  8. Binary operations, 24.7.2020
  9. I/O streams, 31.7.2020
  10. Advanced features, 7.8.2020

There will be no activity during the midsummer week (15.6. - 19.6.)

Kickoff session for programming project: Tue 4.8.2020 at 14:15

Deadline for programming project: Fri 21.8.2020

Programming test is on the last week of August (dates to be confirmed).


Registration and further information