Back close

Course Detail

Course Name Concurrent Programming
Course Code 23CSE454
Program B. Tech. in Computer Science and Engineering (CSE)
Credits 3
Campus Amritapuri ,Coimbatore,Bengaluru, Amaravati, Chennai

Syllabus

Unit I

Basic concurrency concepts, problems with concurrent applications – data races, deadlocks, live-locks, resource starvation, priority inversion, Designing concurrent applications – analysis-design-implementation-testing-tuning, Java concurrency API – Threads in Java.

Unit II

Managing lots of threads – basic components of executor framework, serial vs. coarse grained vs. fine grained concurrency with examples, Concurrency in a client/server environment, Callable and Future interfaces, Running tasks divided into phases using Phaser class.

Unit III

Fork-Join parallel programming framework – Divide-and-conquer, Recursive Action Task, ForkJoinPool, and ExecutorService, Work stealing. Processing massive dataset with Parallel Streams – Concurrent Loader, Concurrent Statistics, Concurrent data structures and synchronization utilities. Overview of testing and monitoring concurrent applications.

Objectives and Outcomes

Course Objectives

  • The course aims to provide fundamentals of concurrency and expose students to the various concurrent frameworks that includes multi-threaded and parallel frameworks.
  • Although, the content of the course is centred around Java, the underlying concepts are general and applicable irrespective of the languages.
  • The course will provide hands-on exposure to various subtleties in concurrent programming which are key for software developers.

Course Outcomes

CO1: Understand and appreciate the associated with concurrent programming.

CO2: Apply the multi-threaded programming framework of Java on different scenarios.

CO3: Design parallel programming frameworks using Java.

CO4: Understand the use of concurrent data structures and synchronization utilities.

CO-PO Mapping

PO/PSO

PO1

PO2

PO3

PO4

PO5

PO6

PO7

PO8

PO9

PO10

PO11

PO12

PSO1

PSO2

CO

CO1

1

1

2

2

   

3

2

2

2

3

CO2

1

1

 –

3

2

   

3

2

2

2

3

CO3

1

2

2

 –

2

   

3

2

2

2

3

CO4

1

2

2

2

   

3

2

2

2

3

Evaluation Pattern

Evaluation Pattern: 70:30

Assessment

Internal

End Semester

MidTerm Exam

20

 

Continuous Assessment – Theory (*CAT)

10

 

Continuous Assessment – Lab (*CAL)

40

 

**End Semester

 

30 (50 Marks; 2 hours exam)

*CAT – Can be Quizzes, Assignments, and Reports

*CAL – Can be Lab Assessments, Project, and Report

**End Semester can be theory examination/ lab-based examination/ project presentation

Text Books / References

Textbook(s)

Javier Fernández González, “Mastering Concurrency with Java 9”, Second Edition, Pakt Publishing, 2017.

Reference(s)

Brian Goetz, “Java Concurrency in Practice”. Addison Wesley, 2010.

Herbert Schidlt, “Java Complete Reference”, Eleventh Edition, Paperback, 2020.

DISCLAIMER: The appearance of external links on this web site does not constitute endorsement by the School of Biotechnology/Amrita Vishwa Vidyapeetham or the information, products or services contained therein. For other than authorized activities, the Amrita Vishwa Vidyapeetham does not exercise any editorial control over the information you may find at these locations. These links are provided consistent with the stated purpose of this web site.

Admissions Apply Now