1. Course name and code: Distributed Programming with Java - 2101558 2. Total no. of credits: 3 Theoretical: 2 Practical: 1 Self-study: 5 3. Instructor’s or course coordinator’s name MSc. Vo Van Hai MSc. Nguyen Thi Hoang Khanh MSc. Pham Thanh Hung MSc. Tran Thi Anh Thi MSc. Dang Thi Thu Ha 4. Learning materials Main textbooks [1] Schildt, H., & Coward, D, Java: The Complete Reference, 13th ed, McGraw-Hill, 2024. [ISBN 13: 978- 1265058432] [FIT_SE_012] Other supplemental materials [1] Richard M Reese, Learning Network Programming with Java, Packt Publishing, 2015. [ISBN 13: 9781785885471] [FIT_SE_012_01] [2] Bogdan Ciubotaru & Gabriel-Miro Muntean, Advanced Network Programming Principles and techniques, Springer, 2013. [ISBN 13: 978-1447160366] [FIT_SE_012_03] [3] Nathan Marz, James Warren., Big Data: Principles and best practices of scalable realtime data systems 1st Edition, Manning Publications, 2015. [ISBN 13: 978-1617290343] [FIT_SE_012_02] [4] Hibernate, https://hibernate.org/ [5] Java API for JSON Processing, https://www.oracle.com/technical-resources/articles/java/json.html 5. Specific course information a. Objectives for the course The course provides students with: - The knowledge and skills to work with the Java programming language - In-depth knowledge of object-oriented programming to develop big data applications - Programming techniques for mapping object model to relational data model (ORM) - Programming techniques for mapping object model to big data model (OGM) - The knowledge of multithreaded programming, network programming and distributed programming. b. Brief description of the content of the course Provide students with advanced knowledge about object-oriented programming (Thread, Network programming, RMI, JPA, JSON ...), implementing big data applications. At the same time, improve students' programming knowledge and skills with the Java object-oriented programming language. c. Prerequisites or co-requisitesuisites Prerequisites: Event-Driven Programming in Java – 2101556 Co-requisites: none d. Other requirements - Demonstrate a serious and active learning attitude in seeking knowledge. - Be honest in studying and taking tests. - Be united and help friends and junior students in their studies. 6. Specific goals for the course a. Course learning outcomes Upon successful completion of this course, students should be able to: No. Course Learning Outcomes (CLOs) ELOs Bloom level 1 Implement an application using Java programming language c - PI2 3 that connects to big data. 2 Write clear report documents according to regulations d - PI1 2 (correct structure, complete content, citations, references) 3 Using efficient resources to solve problems in distributed b - PI2 2 applications 4 Present knowledge about new technologies in distributed b - PI1 2 programming in the Java environment 5 Select a solution for distributed application with specific c - PI1 3 technology 6 Apply distributed programming techniques in the Java c - PI2 3 environment b. Mapping the course learning outcomes and the expected learning outcomes ELOs a b c d e f CLOs 1 R 2 R 3 R 4 R 5 R 6 R c. Mapping CLOs, teaching and learning approach Teaching and learning approach
CLOs Explicit Case
Discussion Practice Project-based learning (PBL) Teaching Studies 1 X X X 2 X X 3 X X 4 X X X X 5 X X X X 6 X X X
d. Mapping CLOs and assessment methods
Assessment methods CLOs Regular tests Midterm test Final test Group project 1 X X X 2 X 3 X 4 X X 5 X X 6 X X X 7. Contents and plan Teaching and Self- learning methods study Lesson Learning Hours What content No. Learning Contents Outcomes Lecture / CLOs What and [LLO] Practice students lecture instruct do does ions
Chapter 1: LLO1. Understand Explicit Take [1]
Multithreaded the purpose of teaching notes; Schildt, Programming multithreading ; Raises Discussi H., & 1.1Overview of multithreading LLO2. Describe some on; Ask Coward, 1.2 Thread Concepts Java's situation or D, Java: al answer The 1.3 Creating Tasks and multithreading Threads mechanism question the Complet 1.4 Callables and Futures s; Give question e LLO3. Outline 1.5 Thread class and synchronized students s; Do Referen 1 6/3 2, 3 thread methods instructi exercise ce, 13th access to shared 1.6 Thread Pools on to do s; ed, resources 1.7 Thread the Practice McGra Synchronization exercise s; Create w-Hill, 1.8 Concurrency Utilities s; the lab 2024. 1.9 Deadlocks Observe report Chapter: 1.10 Thread và GUI and Multithr guide eaded students to program practice. ming
Chapter 2: Parallel LLO4. Explain Explicit Take Schildt,
Programming concurrency issues teaching notes; H., & 2.1 Introduction caused by ; Give Discussi Coward, 2.2 Task parallelism multithreading students on; Ask D, Java: 2.3 Functional LL05. Implement instructi or The parallelism on to do answer Complet task parallelism 2.4 Loop parallelism the the e 2.5 Pipeline exercise question Referen Parallelism s; s; Do ce, 13th 2 3/3 2, 3 Observe exercise ed, and s; McGra guide Practice w-Hill, students s; Create 2024, to the lab Chapter: practice. report The Concurr ency Utilities
Chapter 3: JSON LLO5. Perform to Explicit Take
Processing process (parse, teaching notes; 3.1 Overview generate, ; Raises Discussi transform, and 3.2 JSON Syntax some on; Ask query) JSON text 3.3 JSON Data Types situation or 3.4 Java API for JSON al answer [5] Processing question relevant Java 3.5 Jackson API s; Give question API for students s; Do JSON instructi exercise Processi 3 2/3 1 on to do s; ng, the Practice https://w exercise s; Create ww.orac s; the lab le.com/t Observe report echnical and - guide resource students s/article to s/java/js practice on.html Chapter 4: Big Data LLO6. Explain the Explicit Take 4.1 Introduction to Big role of Big Data in teaching notes; [3] Data modern business ; Raises Ask or Nathan 4.2 Introduction to LLO7. Describe some answer NoSQL Marz, the primary situation relevant 4.3 Modeling Big Data James characteristics of al question Warren. 4.4 NoSQL Query question s; Do Language Big Data Big s; Give exercise 4.5 Big Data Tools and LLO8. Summarize Data: Techniques students s; the four major Principl 4.6 Developing Big Data approaches of the instructi Practice es and Applications on to do s; Create NoSQL data best 4.7 CRUD Operations model and how the the lab practice exercise report theydiffer from the s of s; relational model scalable Observe 4 LLO9. Describe 6/6 1 realtime and the characteristics data guide of NoSQL systems students databases 1st to Edition, LLO10. practice 2015 Understand how to work with document databases using the specific Big Data system LLO11. Develop Java application using the specific Big Data
Chapter 5: Jakarta LLO12. Explain Explicit Take
Persistence API the purpose of teaching notes; 5.1.Introduction to JPA ; Raises Ask or Jakarta Persistence API [4] LLO13. Explain some answer 5.2.Entities Hibernat the architecture of situation relevant 5.2.1.Entity Classes e ORM, JPA 4, 5, al question 5 5.2.2.Persistent Fields 6/6 https://d 6 question s; Do and Properties LLO14. ocs.jbos s; Give exercise 5.2.3.Access Type Understand Object s.org/hi students s; 5.2.4.Primary Keys and Relational bernate/ Entity Identity instructi Practice Mapping stable/or 5.2.5.Basic Data Types on to do s; Create m/userg the uide/ht 5.2.6.Element LLO15. exercise the lab ml_singl Collections Understand Object s; report e/Hibern 5.2.7.Entity Associations Grid Mapping Observe ate_Use 5.2.8.Inheritance and r_Guide Relationship Mapping LLO16. Develop Strategies Java application guide .html 5.3.CRUD Operations with ORM students [4] 5.4.Query Language to Hibernat LLO17. Develop (JPQL) practice e OGM, Java application 5.5.Criteria API with OGM https://d 5.6.Entity Managers and ocs.jbos Persistence Contexts s.org/hi 5.7.JPA Exceptions bernate/ 5.8.Performance stable/o Issues gm/refer ence/en- US/html _single/
Chapter 6: Network LLO18. Explicit Take [1]
Programming Comprehend teaching notes; Richard 6.1.Introduction socket-based ; Raises Discussi M 6.2.Networking Classes communication in some on; Ask Reese. and Interfaces Java situation or Learnin 6.2.1.URL Class LLO19. al answer g 6.2.2.URLConnection question relevant Network class Understand client/server s; Give question Progra 6.2.3.HttpURLConnecti on class computing students s; Do mming 6.2.4.InetAddress Class instructi exercise with LLO20. 6.3.Client/Server Implement Java on to do s; Java, Architecture the Practice Packt networking 4, 5, 6 6.4.Sockets 7/9 exercise s; Create Publishi programs using 6 6.4.1.UDP sockets s; the lab ng, stream sockets 6.4.2.TCP sockets Observe report 2015, LLO21. Develop 6.5.Client/Server and 168-277 servers for Development guide multiple clients 6.5.1.Client–Server students [2] Application LLO22. Develop to Bogdan 6.5.2.Multi-threaded Java application practice Server Applications Ciubotar that communicate 6.5.3.Unicast, Multicast, with the server u& and Broadcast Gabriel- Communications LLO23. Miro 6.6.NIO Support for Implement Java Networking Muntea networking n. 6.7.Security programs using Advance 6.8.Java Remote Method datagram sockets d Invocation LLO24. Network 6.8.1.RMI Introduction Progra Understand how 6.8.2.RMI Architecture mming RMI works 6.8.3.Application Principl LLO25. Learn the Implementation es and process of techniqu developing RMI es, applications Springe, LLO26. Know the 2013, differences Chapter between RMI and 7 socket-level programming LLO27. Develop three-tier applications using RMI LLO28. Use callbacks to develop interactive applications 8. Assessment a. Description of the assessment methods used based on the Course’s Learning Outcomes Target of students (CLOs) When data collected Assessment Methods Assessment Tools achieving CLOs (%) Group project Continuous Rubrics 65 (Presentation) 1 Mid-term Summative Rubrics 65 (Practical exam) Group project 2 Summative Rubrics 65 (Presentation) Group project 3 Summative Rubrics 65 (Presentation) Group project Continuous Rubrics 65 (Presentation) 4 Regular test Summative Rubrics 65 (Writing test) Group project Continuous Rubrics 65 (Presentation) 5 Regular test Summative Rubrics 65 (Writing test) Group project Continuous Rubrics 65 (Presentation) Regular test 6 Continuous Rubrics 65 (Practical test) Final-term Summative Rubrics 65 (Practical exam) b. Assessments weighting Assessment Methods Weight %