Welcome to CS-A1120 Programming 2 - 2021
- Don't forget to sign up for the course at oodi
- The course lectures are delivered as recorded videos
- All course notes are available online (please read them; there is no course book)
- Exercises are delivered via A+
Passing the course is done by accumulating a sufficient number of exercise points for grade 1. (There is no exam in this edition of the course.)
Course contentsIn this course we will introduce you to many of the central principles of computing and programming; to the computer as a machine, and to programming paradigms that enable you to virtualize and scale up your computations all the way to industrial-scale infrastructure.
Rounds and deadlines Round Material Main exercise deadline (100%) Extended deadline (70%) 1. Warmup (video, slides, notes, exercises) March 5, 2021March 10, 2021 March 16, 2021 2. Bits and data (video, slides, notes, exercises) March 12, 2021 March 23, 2021 3. Combinational logic (video, slides, notes, exercises) March 19, 2021 March 30, 2021 4. Sequential logic (video, slides, notes, exercises) March 26, 2021 April 6, 2021 5. A programmable computer (video, slides, notes, exercises) April 7, 2021 April 27, 2021 6. Collections and functions (video, slides, notes, exercises) April 21, 2021 May 4, 2021 7. Efficiency (video, slides, notes, exercises) April 28, 2021 May 11, 2021 8. Recursion (video, slides, notes, exercises) May 7, 2021 May 18, 2021 9. Concurrency and parallelism (video, slides, notes, exercises) May 14, 2021 May 25, 2021 10. Virtualization and scalability (video, slides, notes, exercises) May 21, 2021 June 1, 2021 11. Machines that learn? (video, slides, notes, exercises) May 28, 2021 June 4, 2021
Course information and exercisesThe exercises are distributed and returned in the A+ system, where the content will be opened in the first lecture.
WorkloadReserve around 9 hours to work on the exercises of each round. It is recommended that you start working on the exercises in good time before the deadline.Course staff will hold exercise sessions online most workdays during the course where you will be able to recieve help. Attending these is an excellent way to schedule your studies.
The exercises on each round have two deadlines per round:
- a main deadline, and
- an extended deadline.
- Exercises returned within the main deadline are graded with full points
- After the main deadline is reached, there is an extended deadline
- Exercises returned after the main deadline but before the extended deadline are graded and given 70% of the full points
- It is not possible to return the exercises for grading after the extended deadline
The exercises in each round are divided into normal exercises and challenge exercises. The challenge exercises are meant to be programming puzzles, which you can use to challenge yourself. Note that some of the challenge exercises are intentionally made to be much more laborious than the normal exercises, and that the course can be passed with the grade 5 by only solving normal exercises. Only try to solve the challenge problems if you feel you need more challenge from this course and you have the enthusiasm and time to work on them! Note also, that the teaching assistants will mainly only help with the normal exercises.
Working on the exercises
- Programming is both an individual and group activity, where sufficient individual skills lays the basis for productive group work. The idea of the course CS-A1120 Programming 2 is to work individually to achieve sufficient individual programming skills. Because writing code independently is a compulsory skill for a programmer, writing code together with someone is forbidden in this course.
- Each students solves and returns the exercises for grading by themselves as confidential and individual solutions. Confidentiality here means that you are not allowed to share your solutions individually or publicly so that the other students independent programming skills suffer or that they cannot be evaluated based on the returned solutions, for example because the program code was copied
- More information:
Please note that because this is a very large course, the course staff will not be able to provide help on solving exercises via email or direct messages.
If you need help, please come to our remote exercise sessions on Zulip! where you can request one-on-one help in our lab queue.
SoftwareWe use Visual Studio Code (with the Scala Metals extension). Please see the notes for more information on how to get started using it and the course material on your own computer or Aalto VDI (please note that VDI can be really busy).If you need help we encourage you to join our course Zulip discussion, where you can ask questions and request one-on-one help over zoom from course staff using our lab queue.Detailed instructions are available in the course notes.The Zulip lab queue is open the following times throughout the week, with at least two TAs present:
The course is graded as follows. It is possible to get 200 points (including bonus for providing feedback) from the warmup round and at least 400 points from each of the the other 10 rounds. In addition, solving challenge problems allows for more points. The course grade is determined by summing up the points from all of the rounds. The sum includes all point including the ones from normal exercises, challenge exercises, and feedback. After the sum is computed the grade is determined by reading it from the following scale:
- less than 1200 points -- failed,
- at least 1200 points -- grade 1,
- at least 1900 points -- grade 2,
- at least 2600 points -- grade 3,
- at least 3300 points -- grade 4,
- at least 4000 points -- grade 5.
- Responsible teacher for the course is Assistant Professor Shaofeng Jiang (firstname.lastname@example.org)
- Exercise sessions are led by University Teacher Lukas Ahrenberg (email@example.com)
Please note that because this is a very large course, the course staff will not be able to provide help on solving exercises via email or DMs.