Welcome to the course CS-A1120 Programming 2!
- Lectures and online reading material
- Exercises and working on the course
- Weekly exercise sessions
- Passing the course and grading
The online material for the course can be found from the following address:
The course will have 12 lectures according to the following schedule. The lecturer will be the responsible teacher of the course Mikko Kivelä.
Lectures are in the lecture hall T1 (T-building, Konemiehentie 2).
|1. Starting lecture||Mon 25.2. from 10 to 12|
|2. Bits and data||Wed 27.2. from 14 to 16|
|3. Combinational logic||Mon 4.3. from 10 to 12|
|4. Sequential logic||Wed 6.3. from 14 to 16|
|5. Programmable computer||Mon 11.3. from 10 to 12|
|6. Collections and functions||Wed 27.3. from 14 to 16|
|7. Efficiency||Mon 1.4. from 10 to 12|
|8. Recursion||Wed 3.4. from 14 to 16|
|9. Algorithms and representations of information||Mon 15.4. from 10 to 12|
|10. Concurrency and parallelism||Wed 17.4. from 14 to 16|
|11. Virtualization and scalability||Wed 24.4. from 14 to 16|
|12. Machines that learn?||Mon 6.5. from 10 to 12|
Remember to sign up for the course in Oodi.
The course consists of 12 rounds of exercises. The first round is a warmup round, and the rest 11 rounds are diveded to three modules (4, 4, and 3 rounds per module). The exercises are distributed and returned in the A+ system, where the content will be opened in the first lecture.
Hints. Reserve 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. Going regularly to the weekly exercise help sessions is an excellent way of scheduling your work.
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
Round Main deadline Extended deadline (70% of points) 1. Warmup round Fri 1.3. at 20:00 Tue 12.3. at 20:00 2. Bits and data Fri 8.3. at 20:00 Tue 19.3. at 20:00 3. Combinational logic Fri 15.3. at 20:00 Tue 26.3. at 20:00 4. Sequential logic Fri 22.3. at 20:00 Tue 2.4. at 20:00 5. Programmable computer Fri 29.3. at 20:00 Thu 18.4. at 20:00 6. Collections and functions Fri 5.4. at 20:00 Fri 26.4. at 20:00 7. Efficiency Tue 16.4. at 20:00 Thu 2.5. at 20:00 8. Recursion Tue 23.4. at 20:00 Tue 7.5. at 20:00 9. Algorithms and representations of information Fri 3.5. at 20:00 Tue 14.5. at 20:00 10. Concurrency and parallelism Fri 10.5. at 20:00 Fri 31.5. at 20:00 11. Virtualization and scalability Fri 17.5. at 20:00 Fri 31.5. at 20:00 12. Machines that learn? Fri 24.5. at 20:00 Fri 31.5. at 20:00
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:
- It is recommended to use Eclipse Scala IDE (4.6.1, 4.7, or later version) programming environment. It can be downloaded from here. You will also need Java (JDK8), which can be downloaded from here.
- Linux classrooms (especially Maari A and T7) have both Eclipse (4.6 and 4.7) integrated development environment (IDE) installed. After signing in to one of the computers in these classrooms, choose from the upper left menu "Applications" (the top icon, write "Eclipse" to the search field) -> "Eclipse 4.6 (Scala IDE)". Open the Scala perspective by choosing from the top meny ("Window" tai "Eclipse") -> "Open Perspective" ( -> "Other") -> "Scala".
- The course uses Scala version 2.12, which is included in the IDEs. If you want, you can download the installation packages from here. In addition you need Java (JDK8), which can be downloaded from here.
- Detailed instruction can be found from the course reading material here.
The course can be passed by solving enough exercises so that there is enough points for grade 1. The spring 2019 instance of the course does not have an exam.
The course is graded as follows. It is possible to get 200 points from the warmup round and at least 400 points from the other 11 rounds. In addition, solving challenge problem allows for more points. The course grade is determined by summing up the points from all of the rounds and reading the grade from the following table:
- 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.
The exercises are diveded 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.
The weekly exercise sessions are the main means of getting help and instructions in the course when solving the exercises. You do not need to sign up for the exercise sessions separately. You can go to any session or multiple sessions each week if you want.
The exercise session are held partly in Maarintalo (room Maari A) and partly in the T-building (room T7). The exercise sessions start when course begins on Monday 25.2.
Communications and changes
Possible exceptions and changes to the weekly exercise sessions and other matters related to the course organization are announced in the MyCourses pages. Remember to sign up for the course in Oodi to get these announcements to your email.
Exception to the weekly exercise session scheduleExercise sessions are not organized in the following times:
- Easter (Fri 19 April to Mon 22 April)
- Evaluation week of the period IV (Mon 8 April to Fri 12 April)
- Wappu (Tue 30 April to Wed 1 May)
- Week 22 (Mon 27 May to 31 May)
Questions related to solving problems. The teaching assistants will answer questions in the weekly exercise sessions. These sessions are the main channel for getting help in the course. Course also has a Slack workspace for discussions related to the course.
Meeting the responsible teacher. You can see the responsible teacher of the course during the lectures and during the office hours. The office hours are every Wednesday during the course at 16-17 in the room B204 at the T-building. Exceptions to office hours: there are no office hours on the evaluation week, 13th March, 17 April or 29 May. Welcome to discuss anything related to the course!
Contacting the responsible teachers. Unfortunately the responsible teacher cannot in most cases answer to queries made using electronic channels. This is because of using these channels is time intensive and would use the already scarce faculty resourses assigned to this course. Note that special arrangements are only made for exceptionally serious grounds, for example with well-justified medical reasons proven with original doctor's certificate.