Herat University
Computer Science Faculty
Software Engineering Department
Introduction to Course
Course Policy Plan
Seyyed Kamran Hosseini
3/10/2025
Table Content
• Lecturer Info
• Course Organization
• Teaching Methods/Strategies
• Grading
• Prerequisite
• Course Learning Outcome
• Student Responsibilities
• Instructor's Classroom Policy
• Instructor’s Expectations from Students
• Course Content
• References
3/10/2025 Introduction to Course Policy Plan 2
Lecturer Info
• Lecturer:
• Associate Prof. Seyyed Kamran Hosseini
• Mail:
• seyyedkamranhosseini@gmail.com
3/10/2025 Introduction to Course Policy Plan 3
Course Organization
• Course Name : Practical Computer Science 2
• Course Code: CS309
• Subtitle: Advanced Java Programming
• Number of Credits: 5 CP
3/10/2025 Introduction to Course Policy Plan 4
Teaching Methods/Strategies
• Lecture Presentation
• Exercises
• Assignments to be carried out in groups at home
• Quizzing
• Q&A
3/10/2025 Introduction to Course Policy Plan 5
Grading
• Exercises and class Activity 20 %
• Mid – Term Exam 20%
• Project 20%
• Final Exam 40%
• Min. 75% attendance required to attend in final exam
3/10/2025 Introduction to Course Policy Plan 6
Prerequisite
• Introduction to Java Programming I & II
• Fundamental of DBMS
3/10/2025 Introduction to Course Policy Plan 7
Course Learning Outcome
• After completing the course, students will be able to:
• Understand advanced Java concepts and apply them in software
development.
• Professionally design and implement object-oriented programs (OOP).
• Handle exceptions and process data using modern techniques such as Stream
API and NIO.
• Develop multi-threaded and concurrent applications to optimize software
performance.
• Design modern graphical user interfaces using JavaFX and FXML.
3/10/2025 Introduction to Course Policy Plan 8
Course Learning Outcome
• After completing the course, students will be able to:
• Implement Java applications' database connectivity using JDBC, JPA, and
Hibernate.
• Develop RESTful web services with Spring Boot and connect Java clients to
them.
• Test and optimize their software using testing tools (JUnit 5, Mockito) and
debugging tools (IntelliJ Debugger).
• Deploy and manage Java applications in cloud environments using Docker and
Microservices.
• Design and implement a comprehensive practical project using JavaFX,
databases, and REST API.
3/10/2025 Introduction to Course Policy Plan 9
Student Responsibilities
• Punctual attendance in class.
• Observing discipline and respect in the classroom.
• Reviewing previous lessons.
• Asking the instructor questions if any concept is unclear.
• Paying attention during lectures.
• Studying reference books related to the subject.
• Active participation in class.
3/10/2025 Introduction to Course Policy Plan 10
Instructor's Classroom Policy
• Attendance will be recorded 5 minutes after the start of the class.
• Students must submit class projects on time, and late submissions
may not be accepted.
• Mutual respect and discipline must be maintained at all times.
• Constructive feedback and suggestions from students are welcomed
and encouraged.
• The instructor will provide guidance and consultation to students as
needed.
3/10/2025 Introduction to Course Policy Plan 11
Instructor’s Expectations from Students
• Review taught lessons regularly.
• Show mutual respect toward the instructor and classmates.
• Arrive on time for class.
• Avoid talking during lectures.
• Submit class projects on time.
• Engage in class activities and demonstrate creativity.
3/10/2025 Introduction to Course Policy Plan 12
Course Content
• Module 1: Introduction to Java Programming
• Module 2: Exception Handling and File Operations
• Module 3: Data Structures and Streams
• Module 4: Concurrency, JavaFX, and UI Development
• Module 5: Advanced JavaFX, Database, and Web Development
3/10/2025 Introduction to Course Policy Plan 13
Module 1: Introduction to Java Programming
1. Introduction to the Course
a. Course Overview
b. Class Rules and Grouping
c. Importance of Java in the Job Market
2. OOP Concepts in Java
a. Inheritance
b. Polymorphism
c. Encapsulation
d. Abstraction
3/10/2025 Introduction to Course Policy Plan 14
Module 2: Exception Handling and File
Operations
1. Exception Handling in Java
a. Introduction to Exceptions
b. Try, Catch, Throw, and Throws
c. Handling Errors in Java
2. Working with Files and Streams
a. Input/Output Operations in Java
b. File Handling with NIO and Streams API
c. Try-with-Resources and Finally
3/10/2025 Introduction to Course Policy Plan 15
Module 3: Data Structures and Streams
1. Working with Data Collections
a. Introduction to Collections Framework
b. ArrayList, HashSet, HashMap
c. Using Iterator for Traversal
2. Stream API for Data Processing
a. What is Stream API?
b. Operations on Streams (map, filter, reduce)
c. Collecting Results Using Collectors
3/10/2025 Introduction to Course Policy Plan 16
Module 4: Concurrency, JavaFX, and UI
Development
1. Concurrency and Multithreading in Java
a. Introduction to Threads and Concurrency
b. Managing Threads with Executors
c. Virtual Threads with Project Loom
2. Introduction to JavaFX for UI Development
a. Overview of JavaFX
b. Scene Graph, Stage, and Scene
c. FXML and its Role in UI Design
3/10/2025 Introduction to Course Policy Plan 17
Module 4: Concurrency, JavaFX, and UI
Development
3. Event Handling in JavaFX
a. Event Handling Mechanism in JavaFX
b. Using Event Listeners and Lambda Expressions
c. Managing User Interactions in JavaFX
4. Layout Management in JavaFX
a. BorderPane, GridPane, VBox, HBox
b. Responsive UI Design Principles
3/10/2025 Introduction to Course Policy Plan 18
Module 5: Advanced JavaFX, Database, and
Web Development
1. Advanced JavaFX: Building Dynamic Applications
a. Styling JavaFX with CSS
b. Adding Animations and Effects
c. Binding and Observable Properties
2. Working with Databases in Java
a. Introduction to JDBC and JPA
b. Connecting Java to Databases with JDBC
c. Using Hibernate for Object-Relational Mapping
3. Developing REST APIs in Java
a. Introduction to RESTful APIs
b. Creating REST APIs with Spring Boot
c. Connecting JavaFX to REST APIs
3/10/2025 Introduction to Course Policy Plan 19
Practical Work and Final Evaluation
1. Project: JavaFX Application with Database
a. Designing a JavaFX Application Connected to a Database
b. Implementing CRUD Operations
c. Deploying the Application
2. Final Review and Troubleshooting
a. Reviewing Key Concepts
b. Addressing Common Issues and Questions
3. Final Exam
a. Comprehensive Assessment on All Topics
3/10/2025 Introduction to Course Policy Plan 20
Module 5: Advanced JavaFX, Database, and
Web Development
4. Testing and Debugging Java Applications
a. Unit Testing with JUnit 5 and Mockito
b. Debugging Java Code with IntelliJ Debugger
5. Java in Cloud Environments
a. Introduction to Docker and Microservices
b. Running Java Applications in Cloud Environments
3/10/2025 Introduction to Course Policy Plan 21
References
• Java: The Complete Reference (12th Edition) – Herbert Schildt
• Core Java Volume I & II (11th Edition) – Cay S. Horstmann
3/10/2025 Introduction to Course Policy Plan 22
Any Question?
3/10/2025 Introduction to Course Policy Plan 23