Siirry suoraan sisältöön

Concurrent ProgrammingLaajuus (5 cr)

Code: TTC8820

Credits

5 op

Teaching language

  • English

Responsible person

  • Jani Immonen,

Objective

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.

Content

The course covers concurrent programming concepts and methods. The 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.

Qualifications

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

Assessment criteria, satisfactory (1)

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, they struggle 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.

Assessment criteria, good (3)

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.

Assessment criteria, excellent (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.

Enrollment

01.08.2024 - 22.08.2024

Timing

26.08.2024 - 18.12.2024

Number of ECTS credits allocated

5 op

Virtual portion

5 op

Mode of delivery

Online learning

Unit

Teknologiayksikkö

Teaching languages
  • English
Seats

0 - 35

Degree programmes
  • Bachelor's Degree Programme in Information and Communications Technology
  • Tieto- ja viestintätekniikka (AMK)
Teachers
  • Jani Immonen
Groups
  • TTV22S5
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S2
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S3
    Tieto- ja viestintätekniikka (AMK)
  • TIC22S1
    Bachelor's Degree Programme in Information and Communications Technology
  • TTV22S1
    Tieto- ja viestintätekniikka (AMK)
  • TTV22SM
    Tieto- ja viestintätekniikka (AMK)
  • TTV22S4
    Tieto- ja viestintätekniikka (AMK)
  • TTV22SM2
    Tieto- ja viestintätekniikka (AMK)

Objective

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.

Content

The course covers concurrent programming concepts and methods. The 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

Materials in the e-learning environment.

Teaching methods

- lectures
- independent study
- distance learning
- small group learning
- exercises
- learning tasks

Employer connections

- projects

Exam schedules

The possible date and method of the exam will be announced in the course opening.

Vaihtoehtoiset suoritustavat

The admission procedures are described in the degree rule and the study guide. The teacher of the course will give you more information on possible specific course practices.

Student workload

One credit (1 Cr) corresponds to an average of 27 hours of work.

- lectures 50 h
- exercises 15 h
- assignment 40 h
- independent study 30 h
Total 135 h

Evaluation scale

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, they struggle 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.

Assessment criteria, excellent (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.

Qualifications

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

Enrollment

20.11.2023 - 04.01.2024

Timing

08.01.2024 - 30.04.2024

Number of ECTS credits allocated

5 op

Mode of delivery

Face-to-face

Unit

Teknologiayksikkö

Teaching languages
  • English
Seats

0 - 35

Degree programmes
  • Bachelor's Degree Programme in Information and Communications Technology
  • Tieto- ja viestintätekniikka (AMK)
Teachers
  • Jani Immonen
Groups
  • TTV21S3
    Tieto- ja viestintätekniikka (AMK)
  • TTV21S5
    Tieto- ja viestintätekniikka (AMK)
  • TIC21S1
    Bachelor's Degree Programme in Information and Communications Technology
  • TTV21S2
    Tieto- ja viestintätekniikka (AMK)
  • TTV21S1
    Tieto- ja viestintätekniikka (AMK)

Objective

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.

Content

The course covers concurrent programming concepts and methods. The 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

Materials in the e-learning environment.

Teaching methods

- lectures
- independent study
- distance learning
- small group learning
- exercises
- learning tasks

Employer connections

- projects

Exam schedules

The possible date and method of the exam will be announced in the course opening.

Vaihtoehtoiset suoritustavat

The admission procedures are described in the degree rule and the study guide. The teacher of the course will give you more information on possible specific course practices.

Student workload

One credit (1 Cr) corresponds to an average of 27 hours of work.

- lectures 50 h
- exercises 15 h
- assignment 40 h
- independent study 30 h
Total 135 h

Further information

Compulsory attendance to the lessons. Part of the assessment is based on attendance.

Helping other students with their assignments earns extra points for the grade.

Evaluation scale

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, they struggle 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.

Assessment criteria, excellent (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.

Qualifications

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

Enrollment

01.08.2023 - 24.08.2023

Timing

28.08.2023 - 19.12.2023

Number of ECTS credits allocated

5 op

Virtual portion

5 op

Mode of delivery

Online learning

Unit

Teknologiayksikkö

Teaching languages
  • English
Seats

0 - 35

Degree programmes
  • Tieto- ja viestintätekniikka (AMK)
Teachers
  • Jani Immonen
Groups
  • TTV21S3
    Tieto- ja viestintätekniikka (AMK)
  • TTV21S5
    Tieto- ja viestintätekniikka (AMK)
  • TTV21SM
    Tieto- ja viestintätekniikka (AMK)
  • TTV21S2
    Tieto- ja viestintätekniikka (AMK)
  • TTV21S1
    Tieto- ja viestintätekniikka (AMK)

Objective

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.

Content

The course covers concurrent programming concepts and methods. The 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

Materials in the e-learning environment.

Teaching methods

- lectures
- independent study
- distance learning
- small group learning
- exercises
- learning tasks

Employer connections

- projects

Exam schedules

The possible date and method of the exam will be announced in the course opening.

Vaihtoehtoiset suoritustavat

The admission procedures are described in the degree rule and the study guide. The teacher of the course will give you more information on possible specific course practices.

Student workload

One credit (1 Cr) corresponds to an average of 27 hours of work.

- lectures 50 h
- exercises 15 h
- assignment 40 h
- independent study 30 h
Total 135 h

Evaluation scale

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, they struggle 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.

Assessment criteria, excellent (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.

Qualifications

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

Enrollment

01.11.2022 - 05.01.2023

Timing

09.01.2023 - 28.04.2023

Number of ECTS credits allocated

5 op

Mode of delivery

Face-to-face

Unit

Teknologiayksikkö

Campus

Lutakon kampus

Teaching languages
  • English
Seats

0 - 30

Degree programmes
  • Tieto- ja viestintätekniikka (AMK)
Teachers
  • Jani Immonen

Objective

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.

Content

The course covers concurrent programming concepts and methods. The 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

Materials in the e-learning environment.

Teaching methods

- lectures
- independent study
- distance learning
- small group learning
- exercises
- learning tasks

Employer connections

- projects

Exam schedules

The possible date and method of the exam will be announced in the course opening.

Vaihtoehtoiset suoritustavat

The admission procedures are described in the degree rule and the study guide. The teacher of the course will give you more information on possible specific course practices.

Student workload

One credit (1 Cr) corresponds to an average of 27 hours of work.

- lectures 50 h
- exercises 15 h
- assignment 40 h
- independent study 30 h
Total 135 h

Evaluation scale

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, they struggle 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.

Assessment criteria, excellent (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.

Qualifications

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

Enrollment

01.08.2022 - 25.08.2022

Timing

29.08.2022 - 16.12.2022

Number of ECTS credits allocated

5 op

Virtual portion

5 op

Mode of delivery

Online learning

Unit

Teknologiayksikkö

Campus

Lutakon kampus

Teaching languages
  • English
Seats

0 - 70

Degree programmes
  • Tieto- ja viestintätekniikka (AMK)
Teachers
  • Jani Immonen

Objective

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.

Content

The course covers concurrent programming concepts and methods. The 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

Materials in the e-learning environment.

Teaching methods

- lectures
- independent study
- distance learning
- small group learning
- exercises
- learning tasks

Employer connections

- projects

Exam schedules

The possible date and method of the exam will be announced in the course opening.

Vaihtoehtoiset suoritustavat

The admission procedures are described in the degree rule and the study guide. The teacher of the course will give you more information on possible specific course practices.

Student workload

One credit (1 Cr) corresponds to an average of 27 hours of work.

- lectures 50 h
- exercises 15 h
- assignment 40 h
- independent study 30 h
Total 135 h

Evaluation scale

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, they struggle 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.

Assessment criteria, excellent (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.

Qualifications

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