This course will start on Monday September 5th, 2022, welcome!
This course is shared between the Bachelor's programme "Teknistieteellinen kandidaattiohjelma" (in Finnish) and the several majors of the "Aalto Bachelor's Programme in Science and Technology" (in English). Therefore, the language of the course is English and all the communication in MyCourses, the study material, the exercise sessions, as well as the obligatory online exercises will be in English.
This course is mainly targeted for the Bachelor students of the School of Science, several majors of "Aalto Bachelor's Programme in Science and Technology", and the "advanced study path" of the Computer Science minor. Thus it has the course "CS-A1120 Programming 2" as a prerequisite. However, this prerequite is
not strictly enforced, meaning that one can take this course even if one has not taken CS-A1120. But fluent programming skills in Scala (or ability to learn Scala quickly independently), as well as knowledge of the concepts of recursion, O-notation etc introduced in CS-A1120, are assumed. If unsure, one can recap the rounds 2, 6, 7 and 8 of the CS-A1120 notes before the course starts.
The course "CS-A1141/1143 Data structures and algorithms Y" is in Python, has less prerequisites, and is primarily targeted for the students not from the above mentioned groups.
Important: if you are unsure whether you should take this Scala-based course CS-A1140 or the Python version CS-A1141/1143, please consult your study guide or a planning coordinator of your study programme as soon as possible!
In order to access the home assignments. get the course announcements made in MyCourses, and receive the credits at the end, please remember to register to the course in Sisu.
The lectures are on Mondays in the lecture hall T1 of the Computer Science building. Attending the lectures is voluntary. The lectures will not be recorded or streamed.
The course material consists of:
- The lecture notes. The notes are loosely based on selected chapters of the classic MIT book Introduction to Algorithms (an online version for Aalto students is available through this Aalto library link). References to the book chapters as well as to some selected extra material are provided in the notes.
- The online exercises available in the A+ system at https://plus.cs.aalto.fi/CS-A1140/2022/.
Online exercisesIn order to pass the course, one must obtain certain amount of points in the online execises of the course. These obligatory online exercises are provided in the A+ system at https://plus.cs.aalto.fi/CS-A1140/2022/. There are exercises from three categories,
- quizzes and visual exercises (no programming),
- programming assignments, and
The main online exercises are divided in ten rounds and each round has two deadlines:
- Full points deadline: completing an exercise correctly before this deadline provides full points for the exercise.
- Late submission deadline is after the full points deadline but before the course instance ends in December. Only 70 percent of the full points will be awarded for correct solutions submitted after the full points deadline but before the late submission deadline of the round.
In addition, there is an extra assignments round that contains some amount of voluntary assignments on various topics. These are not the easiest assignments in the course.
Validity of the exercise points and personal extensions:
- The exercise points obtained during Autumn 2022 are only valid during this course instance.
- The exercise points from the previous course instance(s) are not valid anymore.
- Personalized arrangements, including deadline extensions etc, can only be considered on the basis of non-short-term medical reasons (a certificate will be required). In such a case, please contact the responsible teacher but do not send any documents before being asked to do so.
The online exercises are personal assignments and thus, for instance, producing code together, copying code from others, and making one's own solutions available to others (either privately or by posting to some shared or public forum) is not allowed.
GradingThe grade of the online exercises, and the whole course, will be determined by the following point limits:
- grade 0 (failed): 0 - 999 points
- grade 1: 1000 - 1674 points
- grade 2: 1675 - 2349 points
- grade 3: 2350 - 3024 points
- grade 4: 3025 - 3699 points
- grade 5: 3700 or more points
In case you need any help with the assignments, please visit an exercise session as soon as possible. Please read these instructions for attending the exercise sessions and using the course chat forum.
The weekly exercise session schedule is as follows. The campus exercise sessions will be in the classroom T8 of the Computer Science building (except Oct 11-13 elsewhere on campus, please see the MyCourses calendar).
- Mondays 14:15-16:00 online in Zoom by Dawid and Juho P.
- Mondays 16:15-18:00 online in Zoom by Dawid and Erald
- Tuesdays 12:15-14:00 on campus by Pyry, Shreyas and Veikka
- Tuesdays 14:15-16:00 on campus by Anselmi, Juho K. and Linh
- Tuesdays 16:15-18:00 on campus by Long, Pyry and Xuan
- Wednesdays 10:15-12:00 on campus by Linus and Niilo
- Wednesdays 12:15-14:00 on campus by Anselmi, Erald and Hanne
- Wednesdays 14:15-16:00 on campus by Juho P., Linus and Xuan
- Wednesdays 16:15-18:00 on campus by Long, Niilo and Sebastian
- Thursdays 14:15-16:00 on campus by Juho K, Linh and Shreyas
- Thursdays 16:15-18:00 on campus by Hanne, Sebastian and Veikka
The exercise sessions are organized between September 5 and November 24. Exceptions:
- No exercise sessions from October 17 to October 21 due to the evaluation week. Naturally, you can continue solving and submitting the online exercises during this period as well if you wish, but there will be no exercise sessions or deadlines then.
- Week 36: round 1
- Week 37: rounds 1 and 2
- Week 38: rounds 2 and 3
- Week 49: rounds 3 and 4
- Week 40: rounds 4 and 5
- Week 41: rounds 5 and 6
- Week 42: No exercise sessions (evaluation week)
- Week 43: rounds 6 and 7
- Week 44: rounds 7 and 8
- Week 45: rounds 8 and 9
- Week 46: rounds 9 and 10
- Week 47: round 10
The final results will be posted here after the course ends.