Course Introduction and Application Information

Course Code: SWE002
Course Name: Concurrent and Real-Time Programming in Java
Semester: Fall
Course Credits:
ECTS
5
Language of instruction: English
Course Condition:
Does the Course Require Work Experience?: No
Type of course: Departmental Elective
Course Level:
Bachelor TR-NQF-HE:6. Master`s Degree QF-EHEA:First Cycle EQF-LLL:6. Master`s Degree
Mode of Delivery: Face to face
Course Coordinator: Dr. Öğr. Üy. MUHAMMED DAVUD
Course Lecturer(s): Assist. Prof. Dr. Muhammed Davud
Course Assistants:

Course Objective and Content

Course Objectives: This course introduces students to the fundamental problems, concepts, and approaches in the design and analysis of real-time systems. Real-time applications typically involve safety or mission-critical systems that require the maintenance of timing guarantees. Real-time task design, dependability, communication, timing, and real-time control are some of the topics that will be addressed. This course will be taught using the Java programming language, with a focus on its application in real-time systems.
Course Content: Topics covered in this course include programming languages for real-time systems, real-time operating systems (RTOS), timing, resource utilization, design and analysis of real-time system software, modeling and verification of real-time systems, reliability and fault tolerance, interrupts, error recovery, distributed real-time systems, real-time communication, and real-time systems for multiprocessor systems.

Learning Outcomes

The students who have succeeded in this course;
1) Understand the fundamental problems, concepts, and approaches in the design and analysis of real-time systems.
2) Apply real-time task design principles, including considerations of dependability, communication, timing, and real-time control.
3) Utilize the Java programming language to develop real-time systems and demonstrate proficiency in its application.
4) Design and analyze real-time system software, considering factors such as timing constraints, resource allocation, and reliability.
5) Understand and apply techniques for interrupt handling, error recovery, and fault tolerance in real-time systems.

Course Flow Plan

Week Subject Related Preparation
1) Introduction to real-time systems.
2) Real-Time Systems and Programming Languages.
3) Reliability and Fault Tolerance.
4) Reliability and Fault Tolerance.
5) Exceptions and Exception Handling.
6) Concurrent Programming.
7) Shared Variable-Based Synchronization and Communication.
8) Midterm Exam
9) Message-based Synchronization and Communication.
10) Atomic Actions, Concurrent Tasks and Reliability.
11) Timing in real-time systems.
12) Java Swing.
13) Java Swing.
14) Java Swing.

Sources

Course Notes / Textbooks: Concurrent and Real-Time Programming in Java, by Andrew Wellings.
References: Real-Time Systems and Programming Languages: Ada, Real-Time Java and C/Real-Time POSIX (4th Edition), by Alan Burns and Andy Wellings.

Course - Program Learning Outcome Relationship

Course Learning Outcomes

1

2

3

4

5

Program Outcomes

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Average 3 Highest
       
Program Outcomes Level of Contribution

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
Midterms 1 % 40
Final 1 % 60
total % 100
PERCENTAGE OF SEMESTER WORK % 40
PERCENTAGE OF FINAL WORK % 60
total % 100

Workload and ECTS Credit Calculation

Activities Number of Activities Workload
Course Hours 13 39
Study Hours Out of Class 15 101
Midterms 1 2
Final 1 2
Total Workload 144