Skip to main content

Introduction to ProgrammingLaajuus (5 cr)

Code: TE00CS88

Credits

5 op

Objective

After completing the course, the student will be able to:
describe the program flow on a diagram
discuss the choice of an applicable solution model
define basic concepts related to programming such as source code, compiler, variable and type
read and understand the finished program code
utilize selection and loop structures
use exception handling mechanisms
design and implement simple application programs, and document and test them

Content

structure of software application
different development environments
reception of input data required in the program
processing of data on the program in order to solve the given problem
presentation of result
data variables and data types, simple data structures
functions and parameters
conditional clauses and loops
exceptions
file handling
testing and documentation of the program

Enrollment

01.12.2024 - 13.01.2025

Timing

13.01.2025 - 30.04.2025

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Campus

Kupittaa Campus

Teaching languages
  • English
Seats

0 - 60

Degree programmes
  • Degree Programme in Business Information Technology
  • Degree Programme in Information and Communications Technology
Teachers
  • Noora Maritta Nieminen
Groups
  • PINFOS24C
    PINFOS24C
  • PINFOS24A
    PINFOS24A
  • PINFOS24B
    PINFOS24B

Objective

After completing the course, the student will be able to:
describe the program flow on a diagram
discuss the choice of an applicable solution model
define basic concepts related to programming such as source code, compiler, variable and type
read and understand the finished program code
utilize selection and loop structures
use exception handling mechanisms
design and implement simple application programs, and document and test them

Content

structure of software application
different development environments
reception of input data required in the program
processing of data on the program in order to solve the given problem
presentation of result
data variables and data types, simple data structures
functions and parameters
conditional clauses and loops
exceptions
file handling
testing and documentation of the program

Materials

Recommended literature:
Python Basics: A Practical Introduction to Python3 4th edition by David Amos,Dan Bader,Joanna Jablonski, Fletcher Heisler, ISBN:9781775093329 (paperback), ISBN:9781775093336 (electronic)

AI-Assisted Programming by Tom Taulli, Released April 2024, Publisher(s): O'Reilly Media, Inc., ISBN: 9781098164560

Programming tools
- Python 3.12.x
- Visual Studio Code (with Extensions)
- Git / Github
- Github Copilot or other AI programming assistants

Teaching methods

Learning by programming
Learning efficient and responsible use of AI programming copilots
Theory and practical examples shared during lectures
Practical understanding gained in practice sessions

Exam schedules

No exam

International connections

Students will learn theoretical concepts and gain programming good practices in lectures.
Students will put their understanding into practice in weekly assignments.

Course material will be entirely digital.

Student workload

Contact hours 14x2h (theory) + 12x2h (practice) = 52h
Independent study continuously throughout the course 80h

TOTAL approx. 130h

Theory lectures are held onsite.
Programming labs in subgroups A, B and C are also onsite.

Content scheduling

TOPICS / CONTENTS
week 3: Introduction
week 4: Built-in functions print and input, variables and types
week 5: Arithmetic and bitwise operators
week 6: Branching
week 7: Loops
week 8: Winter Break - no teaching
week 9: Breaking loops
week 10: Collections
week 11: Collections and loops
week 12: Functions
week 13: Function parameters and return values
week 14: Modularity and unit testing
week 15: GUI, events and callback functions
week 16: File IO (text and binary files)
week 17-: Basics of exception handling, try-except-finally, with

Further information

ItsLearning
Email

Evaluation scale

H-5

Assessment methods and criteria

The course consists of 10 weekly assignment series, which include studying programming theory and completing related programming tasks. Students earn points by demonstrating their work to the instructor.

During the course, students complete a project in which they create a more extensive application (applying the knowledge they have gained during the course and innovatively utilizing AI programming copilots). This project allows students to apply what they have learned and demonstrate their skills.

Each weekly assignment can earn a maximum of 10 points. The overall assessment of the weekly assignment series follows the following scale:

40 points -> grade 1
55 points -> grade 2
70 points -> grade 3
80 points -> grade 4
90 points -> grade 5
The project is assessed separately on a scale of 1-5.

The student's course grade is the average of the weekly assignments and the project. Both components must be passed.

If, during the course, it appears that a student will not achieve the required points to pass, they will be given the opportunity to complete missing assignments retroactively. For these assignments, they can earn up to half of the available points. The student must collect the required points before the course end date.

Assessment criteria, fail (0)

Student
• does not know the basic concepts of programming
• cannot read or write simple programs

Assessment criteria, satisfactory (1-2)

Student
• knows such basic concepts of programming as variables, control structures and functions
• understands how the program flow is going
• can read or write simple programs

Assessment criteria, good (3-4)

Student
• knows such basic concepts of programming as variables, control structures, functions, classes, objects and arrays
• understands how the program flow is going and can find easy errors
• can make simple programs

Assessment criteria, excellent (5)

Student
• knows such basic concepts of programming as variables, control structures and functions, classes and objects
• utilizes some data Structures such as arrays, lists and hash tables.
• understands how the program flow is going and can use debugger and error-handling
• can make programs that include aforesaid concepts.

Enrollment

01.12.2024 - 13.01.2025

Timing

13.01.2025 - 30.04.2025

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Campus

Kupittaa Campus

Teaching languages
  • Finnish
Seats

25 - 40

Degree programmes
  • Degree Programme in Business Information Technology
Teachers
  • Noora Maritta Nieminen
Groups
  • PTIVIS24B
    PTIVIS24B
  • PTIVIS24C
    PTIVIS24C
  • PTIVIS24A
    PTIVIS24A

Objective

After completing the course, the student will be able to:
describe the program flow on a diagram
discuss the choice of an applicable solution model
define basic concepts related to programming such as source code, compiler, variable and type
read and understand the finished program code
utilize selection and loop structures
use exception handling mechanisms
design and implement simple application programs, and document and test them

Content

structure of software application
different development environments
reception of input data required in the program
processing of data on the program in order to solve the given problem
presentation of result
data variables and data types, simple data structures
functions and parameters
conditional clauses and loops
exceptions
file handling
testing and documentation of the program

Materials

Suositeltu kirjallisuus:
"Python Basics: A Practical Introduction to Python3", 4. painos, David Amos, Dan Bader, Joanna Jablonski, Fletcher Heisler, ISBN:9781775093329 (paperback), ISBN:9781775093336 (sähköinen)

"AI-Assisted Programming" by Tom Taulli, Julkaistu huhtikuussa 2024, Kustantaja: O'Reilly Media, Inc., ISBN: 9781098164560

Ohjelmointityökalut:
Python 3.12.x
Visual Studio Code (laajennuksilla)
Git / Github
Github Copilot tai muu AI-ohjelmointiassistentti

Teaching methods

Oppiminen ohjelmoimalla
Tehokkaan ja vastuullisen AI-ohjelmointiassistenttien käytön oppiminen
Teoriaa ja käytännön esimerkkejä jaetaan luentojen aikana
Käytännön ymmärrystä hankitaan harjoitustunneilla

Exam schedules

Ei tenttiä

International connections

Opiskelijat oppivat teoreettisia käsitteitä ja saavat ohjelmoinnin parhaita käytäntöjä luennoilla.
Opiskelijat soveltavat ymmärrystään käytäntöön viikkotehtävissä.

Kurssimateriaali on täysin digitaalinen.

Student workload

Kontaktiopetustunnit 14x2h (teoria) + 12x2h (harjoitukset) = 52h
Itseopiskelu jatkuvasti kurssin ajan 80h

YHTEENSÄ noin 130h

Teorialuennot pidetään lähiopetuksena.
Ohjelmointiharjoitukset alaryhmissä A, B ja C ovat myös lähiopetuksena.

Content scheduling

AIHEET / SISÄLLÖT
viikko 3: Johdanto
viikko 4: Sisäänrakennetut funktiot print ja input, muuttujat ja tyypit
viikko 5: Aritmeettiset ja bittitason operaattorit
viikko 6: Haarautuminen
viikko 7: Toistorakenteet
viikko 8: Talviloma - ei opetusta
viikko 9: Toistorakenteiden katkaisu
viikko 10: Kokoelmat
viikko 11: Kokoelmat ja toistorakenteet
viikko 12: Funktiot
viikko 13: Funktion parametrit ja paluuarvot
viikko 14: Modularisuus ja yksikkötestaus
viikko 15: Käyttöliittymä, tapahtumat ja callback-funktiot
viikko 16: Tiedostojen käsittely (teksti- ja binääritiedostot)
viikko 17-: Poikkeusten käsittelyn perusteet, try-except-finally, with

Further information

ItsLearning
Sähköposti

Evaluation scale

H-5

Assessment methods and criteria

urssi sisältää 10 viikkotehtäväsarjaa, joihin sisältyy ohjelmoinnin teorian opiskelua ja aiheeseen liittyvien ohjelmointitehtävien suorittamista. Opiskelija saa pisteitä opettajalle demonstroimalla tehtäviä.

Kurssilla tehdään harjoitustyö, jossa opiskelija luo laajemman sovelluksen (soveltaen kurssin aikana opittuja tietoja ja hyödyntäen innovatiivisesti AI-ohjelmointiassistentteja). Tämä harjoitustyö antaa opiskelijalle mahdollisuuden soveltaa oppimaansa ja osoittaa osaamisensa.

Jokaisesta viikkotehtävästä voi saada maksimissaan 10 pistettä. Viikkotehtäväsarjan kokonaisarviointi noudattaa seuraavaa kaavaa:

40 pistettä -> arvosana 1
55 pistettä -> arvosana 2
70 pistettä -> arvosana 3
80 pistettä -> arvosana 4
90 pistettä -> arvosana 5
Harjoitustyö arvioidaan erikseen asteikolla 1-5.

Opiskelijan kurssiarvosana muodostuu viikkotehtävien ja harjoitustyön keskiarvosta. Molemmat osiot täytyy olla hyväksyttyjä.

Jos kurssin edetessä näyttää siltä, että opiskelija ei saavuta läpäisyyn vaadittavaa pistemäärää, hänelle annetaan mahdollisuus suorittaa puuttuvat tehtävät takautuvasti. Näistä tehtävistä hän voi saada maksimissaan puolet tarjolla olevista pisteistä. Opiskelijan tulee kerätä vaadittavat pisteet ennen kurssin päättymispäivää.

Assessment criteria, fail (0)

Opiskelija
• ei tunne ohjelmoinnin peruskäsitteitä
• ei pysty lukemaan tai kirjoittamaan yksinkertaisia ohjelmia

Assessment criteria, satisfactory (1-2)

Opiskelija
• tuntee ohjelmoinnin peruskäsitteet, kuten muuttujat, kontrollirakenteet ja funktiot
• ymmärtää ohjelman kulun
• osaa lukea ja kirjoittaa yksinkertaisia ohjelmia

Assessment criteria, good (3-4)

Opiskelija
• tuntee ohjelmoinnin peruskäsitteet, kuten muuttujat, kontrollirakenteet, funktiot, luokat, oliot ja taulukot
• ymmärtää ohjelman kulun ja löytää yksinkertaiset virheet
• osaa tehdä yksinkertaisia ohjelmia

Assessment criteria, excellent (5)

Opiskelija
• tuntee ohjelmoinnin peruskäsitteet, kuten muuttujat, kontrollirakenteet, funktiot, luokat ja oliot
• hyödyntää joitain tietorakenteita, kuten taulukot, listat ja hajautustaulut
• ymmärtää ohjelman kulun ja osaa käyttää debuggeria ja virheenkäsittelyä
• osaa tehdä ohjelmia, jotka sisältävät edellä mainittuja käsitteitä.

Enrollment

01.12.2024 - 13.01.2025

Timing

13.01.2025 - 30.04.2025

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Campus

Kupittaa Campus

Teaching languages
  • Finnish
Seats

35 - 80

Degree programmes
  • Degree Programme in Business Information Technology
Teachers
  • Anne Jumppanen
  • Annukka Kinnari
Groups
  • PTIETS24A
    PTIETS24A
  • PTIETS24B
    PTIETS24B

Objective

After completing the course, the student will be able to:
describe the program flow on a diagram
discuss the choice of an applicable solution model
define basic concepts related to programming such as source code, compiler, variable and type
read and understand the finished program code
utilize selection and loop structures
use exception handling mechanisms
design and implement simple application programs, and document and test them

Content

structure of software application
different development environments
reception of input data required in the program
processing of data on the program in order to solve the given problem
presentation of result
data variables and data types, simple data structures
functions and parameters
conditional clauses and loops
exceptions
file handling
testing and documentation of the program

Materials

Kaikki oppimateriaali ilmoitetaan itslearningissä.

Teaching methods

Materiaalin lukeminen ja ohjelmointiharjoitusten tekeminen ohjatusti sekä itsenäisesti.

Harjoitustyö opettaa soveltamaan opittuja asioita laajemman sovelluksen näkökulmasta.

Materiaali pitää sisällään olio-ohjelmoinnin teoriaa sekä teoriaa valaisevia kuvia ja esimerkkikoodeja.

Exam schedules

Opintojaksolla ei ole tenttiä.

International connections

Itsearviointi
Opiskelijan tulee kiinnittää säännöllisesti huomiota omaan opiskeluunsa ja oppimiseensa.
Opiskelijaa pyydetään tekemään muistiinpanoja jokaisen viikkotehtäväsarjan kohdalla pohtien omaa oppimistaan ja edistymistään.

Toteutuksella noudatetaan jatkuvan tekemisen ja arvioinnin mallia siten, että opiskelijan tulee tehdä, palauttaa ja demota kurssin tehtäviä säännöllisesti noudattaen kurssin tehtäville annettuja aikatauluja. Tällä tähdätään opiskelijan mahdollisuuteen seurata itsenäisesti omaa edistymistään ja oppimistaan kurssin aikana.

Jatkuva aktiivinen työskentely ja oppiminen tukevat ohjelmoinnissa esiintyvää spiraalioppimisen mallia.

Completion alternatives

1) Antamalla näytön esim. tekemästään työelämän projektista, jolla opiskelija osoittaa hallitsevansa opintojakson sisällön.
2) Sivustolla mooc.fi kuvataan ohjelmoinnin MOOC, joka vastaa sisällöltään Helsingin yliopiston tietojenkäsittelytieteen laitoksen kursseja Ohjelmoinnin perusteet ja Ohjelmoinnin jatkokurssi. Kurssit vastaavat yhteensä kymmentä opintopistettä (5+5).
Ohjelmoinnin perusteet voi suorittaa tekemällä ohjelmoinnin MOOCin alkuosan.

Student workload

Opiskelijan työn mitoitus

5 opintopistettä: 27 * 5 = 135 tuntia

Opintojakson kesto: 13.1. - 30.4.2025 (14 viikkoa + opetukseton viikko 8)

Viikkotyömäärä: 135 tuntia / 14 viikkoa = 9,5 tuntia viikossa

Content scheduling

Opintojaksolla opiskellaan ohjelmoinnin ajattelutapaa sekä tutustutaan ohjelmistokehityksen pääpiirteisiin.

Opintojakson harjoitukset tehdään Pythonilla.

Tulostaminen näytölle ja tiedostoon.
Tiedon lukeminen näppäimistöltä ja tiedostosta.
Ohjelmoinnin valintarakenteet.
Ohjelmoinnin toistorakenteet.
Aliohjelmat ja niiden käyttö.
Poikkeukset.
Listat ja merkkijonot.
Ohjelman dokumentointi.
Ohjelman testaus.

Further information

Kurssin viestintä tapahtuu pääsääntöisesti itslearningissä.

Evaluation scale

H-5

Assessment methods and criteria

Opintojakso pitää sisällään 10 viikkotehtäväsarjaa, joihin sisältyy ohjelmoinnin teorian opiskelua sekä aiheeseen liittyviä ohjelmointitehtäviä. Opiskelija saa pisteitä opettajalle demoamistaan tehtävistä.

Kurssilla tehdään harjoitustyö, jossa opiskelija tekee laajemman sovelluksen. Harjoitustyössä opiskelija pääsee soveltamaan oppimiaan asioita ja osoittamaan osaamistaan. Harjoitustyön tuotos demotaan opiskelijaryhmälle.

Viikkotehtävistä saa kustakin maksimissaan 10 pistettä. Kotitehtäväsarjan kokonaisarviointi noudattaa seuraavaa kaavaa:
40 pistettä -> 1
55 pistettä -> 2
70 pistettä -> 3
80 pistettä -> 4
90 pistettä -> 5

Harjoitustyö arvioidaan erikseen skaalalla 1-5.

Opiskelijan opintojakson arvosana muodostuu kotitehtäväsarjan ja harjoitustyön keskiarvosta. Molempien osioiden pitää olla hyväksyttyjä.

Jos kurssin edetessä näyttää siltä, että opiskelija ei saavuta kurssin läpäisyyn tarvittavaa pistemäärää, niin hänen kanssaan sovitaan puuttuvien tehtävien tekemisestä takautuvasti. Näistä tehtävistä hän voi saada maksimissaan puolet tarjolla olevasta pistemäärästä. Opiskelijan tulee kerätä läpäisyyn vaadittava pistemäärä ennen kurssin loppumispäivämäärää.

Assessment criteria, fail (0)

Hyväksytysti suoritettuja harjoituksia puuttuu ja/tai harjoitustyö puuttuu.

Assessment criteria, satisfactory (1-2)

Suomeksi
Hyväksytysti suoritettuja harjoituksia on tehty minimimäärä tai niiden laatu on tyydyttävä ja/tai harjoitustyön laatu on tyydyttävää tasoa.

Assessment criteria, good (3-4)

Hyväksytysti suoritettuja harjoituksia on tehty riittävästi ja niiden laatu on hyvää ja harjoitustyön laatu on hyvää tasoa.

Assessment criteria, excellent (5)

Hyväksytysti suoritettuja harjoituksia on tehty 90 % ja niiden laatu on kiitettävää ja harjoitustyön laatu on kiitettävää tasoa.

Enrollment

01.06.2024 - 02.09.2024

Timing

02.09.2024 - 18.12.2024

Number of ECTS credits allocated

5 op

Mode of delivery

Contact teaching

Unit

Engineering and Business

Campus

Kupittaa Campus

Teaching languages
  • English
Seats

0 - 60

Degree programmes
  • Degree Programme in Information and Communications Technology
Teachers
  • Tiina Ferm
Scheduling groups
  • Pienryhmä A (Size: 25. Open UAS: 0.)
  • Pienryhmä B (Size: 25. Open UAS: 0.)
Groups
  • PINFOK24B
    PINFOK24B
  • PINFOK24A
    PINFOK24A
  • PINFOK24C
    PINFOK24C
Small groups
  • subgroup A
  • subgroup B

Objective

After completing the course, the student will be able to:
describe the program flow on a diagram
discuss the choice of an applicable solution model
define basic concepts related to programming such as source code, compiler, variable and type
read and understand the finished program code
utilize selection and loop structures
use exception handling mechanisms
design and implement simple application programs, and document and test them

Content

structure of software application
different development environments
reception of input data required in the program
processing of data on the program in order to solve the given problem
presentation of result
data variables and data types, simple data structures
functions and parameters
conditional clauses and loops
exceptions
file handling
testing and documentation of the program

Materials

Python Basics: A Practical Introduction to Python3 4th edition by David Amos,Dan Bader,Joanna Jablonski, Fletcher Heisler, ISBN:9781775093329 (paperback), ISBN:9781775093336 (electronic)
Programming tools
- Python 3.12.x
- IDLE

Teaching methods

Learning by programming

Exam schedules

Assessment is based on exercises and three mid-term exams. The complete course can be compensated with one exam completed within the one month from the beginning.
There is no retake option for midterm exams nor for the compensating exam.

Completion alternatives

The course can be compensated with an e-exam within the first month after the beginning of the course. More instructions on how to enroll is given in itslearning.
The exam can be done using a programming language e.g. C/C++/#, java, javascript a student states when enrolling.
The compensating exam can only be taken if a student is enrolled to the course.


24 Coding challenges – classroom activity. Each passed challenge is worth 0,25 p, a total of 6 p, that is added to the total points of the course. No minimum.

Student workload

Contact hours 77 h
Independent study continuously throughout the course, preparation for the exam 58 h

Theory lections are held onsite, programming labs in subgroups A or B are virtual.

Content scheduling

The course consists of eight topics with rehearsal questions, quizzes and labs for each.
week 36: Introduction
week 37: Built-in functions print and input, variables and types
week 38: Arithmetic and bitwise operators
week 39: Branching
Mid-term Exam I: 30.9.2024
week 40: Loops
week 41: Breaking loops
week 43: Collections
week 44: Collections and loops
Mid-term Exam II: 4.11.2024
week 45: Functions
week 46: Function parameters and return values
week 47: GUI, events and callback functions
week 48: File IO (text and binary files)
Mid-term Exam III: 2.12.2024
week 49-50: try-except-finally, with

Evaluation scale

H-5

Assessment methods and criteria

7 Quizzes – online, evaluated, minimum 14, maximum 35
7 Labs – classroom activity, evaluated, plagiarism check result must be < 50%, minimum 14, maximum 35
3 Exams – classroom activity, evaluated, 10 points each, minimum 12, maximum 30


To pass the course a student has to reach a minimum in all categories (quizzes, labs and exams). If the minimum is reached all the points are added and a scale of 1 – 5 is calculated.

Attendance to theory lections is mandatory, challenge points are accepted only if a person is attending the class.

Assessment criteria, fail (0)

Student
• does not know the basic concepts of programming
• cannot read or write simple programs

< 40 points or failed the exam

Assessment criteria, satisfactory (1-2)

Student
• knows such basic concepts of programming as variables, control structures and functions
• understands how the program flow is going
• can read or write simple programs

40 - 59 points and the minimum is reached in all categories (quizzes, labs and exams)

Assessment criteria, good (3-4)

Student
• knows such basic concepts of programming as variables, control structures, functions, classes, objects and arrays
• understands how the program flow is going and can find easy errors
• can make simple programs

40 - 79 points and the minimum is reached in all categories (quizzes, labs and exams)

Assessment criteria, excellent (5)

Student
• knows such basic concepts of programming as variables, control structures and functions, classes and objects
• utilizes some data Structures such as arrays, lists and hash tables.
• understands how the program flow is going and can use debugger and error-handling
• can make programs that include aforesaid concepts.

> 80 points and the minimum is reached in all categories (quizzes, labs and exams)

> 90 points, 1 additional credit (total of 6 credits)