Siirry suoraan sisältöön

Concurrent Programming (5 op)

Toteutuksen tunnus: TTC8820-3001

Toteutuksen perustiedot


Ilmoittautumisaika

01.11.2022 - 05.01.2023

Ajoitus

09.01.2023 - 28.04.2023

Opintopistemäärä

5 op

Toteutustapa

Lähiopetus

Yksikkö

Teknologiayksikkö

Toimipiste

Lutakon kampus

Opetuskielet

  • Englanti

Paikat

0 - 30

Koulutus

  • Tieto- ja viestintätekniikka (AMK)

Opettaja

  • Jani Immonen
  • 20.04.2023 08:45 - 11:15, Concurrent Programming TTC8820-3001
  • 27.04.2023 08:45 - 11:15, Concurrent Programming TTC8820-3001

Tavoitteet

Purpose:
In the concurrent programming course, you will learn about topics such as threads, synchronization, inter-process communication, parallel programming, and distributed systems. You will develop skills in designing, implementing, and debugging concurrent programs, and discover techniques for improving performance and avoiding common pitfalls. Additionally, you will gain knowledge about concurrency models, locking, scheduling, message passing, and concurrency testing. The course will also offer hands-on programming assignments, which will allow you to develop and analyze concurrent programs using various programming languages and tools.

EUR-ACE Competences:
Knowledge and Understanding
Engineering practice
Communication and team-working
Multidisciplinary competences
Engineering practice
Investigations and information retrieval

Learning outcomes:
Upon completion of the concurrent programming course, you will be able to:
- Design, implement, and debug concurrent programs that make efficient use of modern computer hardware.
- Understand and apply concepts related to threads, synchronization, inter-process communication, parallel programming, and distributed systems.
- Identify and avoid common pitfalls of concurrent programming, such as race conditions and deadlocks.
- Evaluate and compare different concurrency models, locking mechanisms, scheduling strategies, and message passing techniques.
- Keep up-to-date with the latest trends and developments in the field of concurrent programming, and continue to learn and experiment with new tools and techniques.

Sisältö

The course will cover concurrent programming concepts and methods. Covered topics are modern threading API, synchronization, mutexes, dead locks, race conditions and best practices in concurrent and parallel programming. The student is aware of the varying parallelization mechanisms.

Oppimateriaali ja suositeltava kirjallisuus

Verkko-oppimisympäristössä julkaistava sähköinen materiaali.

Opetusmenetelmät

- luennot
- itseopiskelu
- verkko-opinnot
- pienryhmätyöskentely
- harjoitustyöt
- oppimistehtävät

Harjoittelu- ja työelämäyhteistyö

- projektit

Tenttien ajankohdat ja uusintamahdollisuudet

Mahdollinen tentin ajankohta ja toteutustapa ilmoitetaan opintojakson ensimmäisellä kerralla.

Vaihtoehtoiset suoritustavat

Hyväksilukemisen menettelytavat kuvataan tutkintosäännössä ja opinto-oppaassa. Opintojakson opettaja antaa lisätietoa mahdollisista opintojakson erityiskäytänteistä.

Opiskelijan ajankäyttö ja kuormitus

Yksi opintopiste (1 op) tarkoittaa keskimäärin 27 tunnin työtä.

- luennot 50 h
- harjoitustyöt 15 h
- tehtävät 40 h
- itsenäinen työskentely 30 h
Yhteensä 135 h

Arviointiasteikko

0-5

Arviointikriteerit, tyydyttävä (1-2)

Fail 0: The student does not meet the minimum criteria set for the course.

Sufficient (1): The student is familiar with the basic topics discussed during the course. The student is able write only the most basic multithreaded programs with assistance.

Satisfactory (2): The student understands the most basic topics discussed during the course, however, he/she struggles to utilize this knowledge. The student is not able to search for relevant information independently. The student is able to write simple multithreaded programs with assistance.

Arviointikriteerit, hyvä (3-4)

Good (3): The student understands the most important topics discussed during the course and is able to utilize this knowledge in the most basic cases. The student is able to utilize information about the discussed topics. The student is able to write simple multithreaded programs.

Very good (4): The student understands the most important topics discussed during the course and is able to utilize this knowledge in most common cases. The student is able to search and understand information about discussed topics. The student is able to write multithreaded programs.

Arviointikriteerit, kiitettävä (5)

Excellent (5): The student understands all topics discussed during the course and is able to use them in an innovative manner even in challenging situations. The student is able to search and utilize information about discussed topics independently. The student is able to write complex multithreaded programs.

Esitietovaatimukset

Basics in programming, Operating systems, Data structures and algorithms, Introduction to Internet technology.