Topic outline

  • Basics in programming Y2, spring 2021

    The course continues from where CS-A1113 Basics in Programming Y1 ended at. The main learning goals for this course are to learn skills and knowledge needed to develop one's on programs and to practice them via a personal software project. In addition, this course prepares the student for computer science as a minor subject. This course is the English language equivalent of CS-A1121 and only one of them can be included in a degree.

    The course uses the A+-system for course work, using CS-A1121 course workspace (direct link will be here), select English from the language symbol at upper left corner using button that looks about like XA. Enroll using button on top of the page that have light blue background. The system will be available in January.

    Staff and contact information

    Responsible teachers of the course are university lecturer Sanna Suoranta and D.Sc (Tech) Timo Kiravuo. 

    In the exercises, assistants Bai-Bai Bairoh, Otso Brummer, Antero Eloranta, Jesse Hämäläinen, Jimmy Ihalainen, Touko Nurminen, Maria Pöllä, Eevi Rimmi and Stas Tatun help students in the programming assignments, and in addition, Matias Ahonen, Olivia Jaakkola, Aku Karhinen, Joel Laitila, Samath Lenaduwa Lokuge, Olaus Lintinen, Tuomas Rislakki, Tuuli Savolainen, Markus Säynevirta and Joel Tiitinen guide students in the projects

    We use Git's Issue tracker as questions & answers (example and instruction: (We are not allowed to use Piazza anymore). For personal problems (e.g. long sick leave) please send email to (to Sanna and Timo).

    Signing Up, Attending and Grading

    You must sign up for the course at Oodi.

    The course has two mandatory tasks:

    Assignments that are individual work. There will be six rounds, spaced about a week apart, during period III and beginning of period IV. In order to pass each assignment, the student must receive at least half of the available points for that assignment. More information is available at the A+ system.

    The personal software project includes individual online meetings with the teaching assistants according to a schedule (details at A+). The topic for the project will be chosen mid-period III, a plan will be returned at the end of period III and the final software with its documentation at the beginning of May (period V). Both the program code and documentation will be returned using the Git version management system and demonstrated to the teaching assistant.

    Both parts of the course work are individual work. You may ask for assistance (including your friends), but the work must be your own, and not copied from or dictated by somebody else. Also, if somebody asks for help, do not give them the complete answer, but guide them to learn and to figure it out themselves. This course uses an automated homework grading system and also an automated plagiarism identifier.

    More information on both parts will be at A+. The final grade on the course is a weighted average of both: round(0.4 * exercises + 0.6 * project), and both tasks must be completed. There is no exam on this course.

    Materials and course information

    Instructions and course news will mainly be in the A+ system, including related reading material course exercises. Assignments with their materials will cover the basic contents of the course, but the student should be prepared to search for additional information themselves, during the assignments and especially the project. The programming language for this course will be Python.

    There will be also be feedback on the MyCourses pages on issues raised during the exercises. Please enter your questions on the forms on A+.

    There will be a discussion forum for asking help on the exercises and other relevant discussion, for cost reasons we are not yet quite sure what this will be.

    Lectures and Exercise Sessions

    Lectures will be delivered in video format, to be viewed at the student's pleasure. The publication schedule of the lectures will follow the timetable of the exercises and the project. Lecture videos and slides will be available at the MyCourses course page. Besides programming in Python the lectures will cover the broader topics of software production, environments and management.

    Lectures are intended to assist in understanding the broader scope of software work and to give a comprehensive picture. Practical programming, which can be learned through the exercises, project and their add on material, can be learned by doing, but there is more to software production than just the programming phase.

    If it has been a while since you passed the Basics in Programming Y1 course, you might want to refresh yourself by watching the videos of Y1 course. We recommend especially a refresher on debugging, as this will something you quite likely will need on your project.

    There will be online exercise sessions, with teaching assistants available to answer questions and give advice on the assignments. Attendance is not mandatory. Link to the exercise session queue is in the side bar of A+.
    Exercise sessions (11.1-29.3.2021)
    Date and time"place"Assistants
    mon 14:15-16:00onlineBai-Bai Bairoh, Jimmy Ihalainen, Stas Tatun
    mon 16:15-18:00onlineJesse Hämäläinen, Stas Tatun
    tue 10:15-12:00onlineBai-Bai Bairoh, Touko Nurminen
    wed 16:15-18:00onlineAntero Eloranta, Jesse Hämäläinen, Jimmy Ihalainen 
    thu 8:15-10:00onlineMaria Pöllä, Eevi Rimmi
    thu 14:15-16:00onlineOtso Brummer, Antero Eloranta, Touko Nurminen
    thu 16:15-18:00onlineOtso Brummer, Maria Pöllä, Eevi Rimmi

    Partial Coursework

    The whole course must be completed within the course period, partial work from earlier years con not be combined with current work. (We have allowed this occasionally in the past, however the course is being revised and thus this policy.)

    Tentative Schedule (may change, official one is in A+
    Date Task Notes
    22.1.2021 at 14:00 assignment 1 refresher + GIT
    29.1.2021 at 14:00 assignment 2 objects in programming
    5.2.2021 at 14:00 assignment 3 UML
    12.2.2021 at 14:00 select your project topic
    19.2.2021 at 14:00 assignment 4 testing in programming
    26.2.2021 at 14:00 project plan
    1.3.-5.3.2021 demonstrating the project plan
    according to teaching assistants' schedule
    5.3.2021 at 14:00
    assignment 5 block based file formats
    8.3.-12.3. (demonstrating the project plan) (if remaining from previous week)
    19.3.2021 at 14:00 assignment 6 user interfaces
    26.3.2021 at 14:00 extra assignment,
    project checkpoint
    7.5.2021 at 14:00 project code, project final report and demo time reservation the program and documentation must be finalized and returned, no more changes allowed
    10.5.-21.5.2021 project demonstrations according to teaching assistants' schedule
    14.5.2021 last chance to demo
    according to teaching assistants' schedule


    Jos haluat tehdä kurssin suomeksi, ilmoittaudu Oodissa vastaavalle suomenkieliselle kurssille CS-A1121 Ohjelmoinnin peruskurssi Y2. A+n materiaali löytyy suomeksi ja englanniksi, mutta vain osa projektiaiheista on käännetty englanniksi.