Basics in
Programming Y2
CS-A1123 Spring 2021
Course information
Learning goals and Prerequisites
• The course continues from the prerquisite CS-A1113 Basics in
Programming Y1
• Main learning goals for this course are:
• Learning knowledge and skills for developing software • Practice those skills via a personal software project
• In other words, besides writing the program code, to gain
acquaintance with the tools of trade (IDE, version management, libraries), phases of a software project from planning to testing, using documentation and finding information from various
sources on the Internet
• And to reach the prerequisite level for studying a minor in
Staff and communications
• Responsible teacher for the course is D.Sc. Timo Kiravuo
• This course mirrors the Finnish language CS-A1121, taught by D.Sc. Sanna Suoranta
• ~20 teaching assistants
• Provide guidance for the assignments
• Each student's project will be advised by one assistant • Course information
• MyCourses for basic information, video lectures and announcements • Questions and contact information
• Questions about the assignments an in general to GIT: • https://version.aalto.fi/gitlab/sos/y2-2021qa/issues
Course Materials
• Course material is on A+ platform (plus.cs.aalto.fi) • Reading material, assignments and links
• No course book, video lectures cover the topic • A+ does not contain all you need!
• Python manuals and tutorials on the Internet are needed • Various discussion forums on the Internet often help with
problems (your problems likely are not unique)
• Course material contains links to known good sources, but not to all. Use search engines for more
• Disclaimer: you learn programming by doing, not just by
Lectures (Videos in MyCourses)
• Lectures give a comprehensive overview on software production • Just reaging the course materials and doing assignments do not
provide the bigger picture
• Lectures cover three main themes
• Programming, software projects and general role of software (environments, external aspects)
• Video lectures will be published on Mondays at MyCourses during
the III period
• MyCourses has a weekly assignment for feedback, please use it to ask questions on the week's topics
Exercises (online at Zoom)
• Attend course onlie exercises to get help on your assignments • Schedule at MyCourses (at Oodi)
• No signup required, attend any exercise session
• In practise the Zoom session will be a queue, where you add
your own Zoom link and the teaching assistants will visit you
Passing the Course
The course has two mandatory parts, both of which must be completed and accepted
1. Assignments (at the A+-system) – DL Fridays 14:00
• Individual work, TAs will give guidance at exercise sessions • Six mandatory assignments and a make up round
• During III period and beginning of IV period (first DL 22.1.2021 14:00)
2. Personal software project
• Create a complete small software application by yourself • Guidance from your TA (no exercise sessions for this) • Several topics available to request your preference from • This course has no exam
Assignment time table
• Rounds 1-6 mandatory, no minimum score required • All rounds are in preparation for the project
• Assignment schedule, deadlines and topics:
• The make up round can be used to gain missing points
round topic weeks deadline
Software Project
• Assignments prepare you for the software project
Programming is more than just writing code
• Project topic selection favours good assignment performance • The project is the more demanding part of the course
• Schedule enough time (80 h estimated) and start early • Schedule:
• Topics will be published 1.2. and assigned by 12.2.2021 at 14:00 • Deadline for the plan is 26.2., including a class diagram
• Midpoint return of work at 26.3. to Git
Course Grading
• The course grade is a weighted average of the two parts: • round(0.4*assignments + 0.6*project)
• Where both assignments and project > 0 • Grades for assignments (points at A+):
• Project grade:
• Three levels of project challenge available:
• Easy: default grade 2
• Medium : default grade 3
• Hard : default grade 4
• Final degree depends on implementation, range is 0-5
grade 0 1 2 3 4 5
What next?
• Sign up at OODI, CS-A1123 (Finnish speakers: CS-A1121) • Visit A+ and sign up for the course
• Install Python and PyQt, make sure Git works • Start the first assignment immediately
• Programming (problem solving) requires idle time and sleep • Best way to learn is by doing
• Schedule time for the project in the IV and V periods • Ask if you have problems
• About lecture related things MyCourses (dl Thursday at 13) • Assignments: exercise periods or Git issue tracker