Course Code: | SWE002 | ||||
Course Name: | Concurrent and Real-Time Programming in Java | ||||
Semester: |
Fall |
||||
Course Credits: |
|
||||
Language of instruction: | English | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Departmental Elective | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Dr. Öğr. Üy. MUHAMMED DAVUD | ||||
Course Lecturer(s): | Assist. Prof. Dr. Muhammed Davud | ||||
Course Assistants: |
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. |
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. |
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. |
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 Learning Outcomes | 1 |
2 |
3 |
4 |
5 |
---|---|---|---|---|---|
Program Outcomes |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution |
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 |
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 |