This repository contains all the code I wrote while learning the Coding Blocks Java Crux course.
The Java Crux course by Coding Blocks is designed to provide a comprehensive understanding of Java programming. This repository includes various code examples, assignments, and projects that were part of the course curriculum. The primary objective of this course is to build a strong foundation in Java and object-oriented programming (OOP) concepts.
The course is divided into several modules, each focusing on different aspects of Java programming. Below is an outline of the main topics covered:
-
Introduction to Java
- History and features of Java
- Setting up the development environment
- Writing your first Java program
-
Basic Syntax and Control Structures
- Variables and data types
- Operators and expressions
- Conditional statements (if-else, switch)
- Loops (for, while, do-while)
-
Object-Oriented Programming (OOP)
- Classes and objects
- Constructors and methods
- Inheritance and polymorphism
- Encapsulation and abstraction
-
Data Structures and Algorithms
- Arrays and strings
- Linked lists and stacks
- Queues and hash maps
- Sorting and searching algorithms
-
Exception Handling and File I/O
- Handling exceptions
- Working with files
- Serialization and deserialization
-
Advanced Topics
- Multithreading and concurrency
- Networking and socket programming
- GUI development with Swing
- Introduction to JavaFX
Throughout the course, various projects and assignments were given to reinforce the concepts learned. Some of the key projects include:
-
Project 1: Basic Calculator
- A simple calculator application that performs basic arithmetic operations.
-
Project 2: Student Management System
- A system to manage student records, including adding, updating, and deleting student information.
-
Project 3: Library Management System
- A system to manage library resources, track issued books, and manage user accounts.
-
Project 4: Chat Application
- A basic chat application using socket programming for real-time communication between users.
Each project is located in its own directory within this repository and includes a README.md file with detailed instructions on how to run and use the project.
-
.idea/
- Contains project configuration files for IntelliJ IDEA.
-
Lecture7_Time_and_Space_Complexity/
- Code examples and notes on understanding time and space complexity in algorithms.
-
Lecture8_Recursion_get/
- Code examples and exercises on recursion, including basic to advanced recursive algorithms.
-
Lecture9_R_Print_and_BackTracking/
- Examples and problems on recursion with print statements and backtracking techniques.
-
Lecture_10_OOPS_and_Stacks/
- Notes and code on object-oriented programming and stack data structures.
-
Lecture_11_Queue/
- Implementation and usage of queue data structures in Java.
-
Lecture_12_Linked_List/
- Code examples on linked lists, including single and doubly linked lists.
-
Lecture_13_Generic_And_Binary_Tree/
- Concepts and code on generic programming and binary tree data structures.
-
Lecture_14_Interface_and_Generic/
- Examples on interfaces and generics in Java.
-
Lecture_15_HashMap/
- Implementation and usage of hash maps for efficient data storage and retrieval.
-
Lecture_16_Heap/
- Notes and examples on heap data structures and their applications.
-
Lecture_17_Text_Processing/
- Code on text processing techniques and algorithms.
-
Lecture_18_DP/
- Dynamic programming concepts and problem-solving examples.
-
Lecture_19_Graph/
- Introduction to graph theory and related algorithms.
-
Lecture_20_Segment_Tree/
- Segment tree data structures and their applications in range queries.
-
Lecture_21_Game_TicTacToe/
- Implementation of the TicTacToe game in Java.
-
Lecture_22_Bit_Masking/
- Concepts and examples of bit masking techniques.
-
Lecture_23_AVL_Tree/
- Implementation of AVL trees, a type of self-balancing binary search tree.
-
Lecture_24_Live_Sessions_Questions/
- Solutions to questions discussed during live sessions.
-
README.md
- This documentation file.
-
out/
- Output directory for compiled Java classes and other generated files.
For more detailed content, you can view each directory and file directly in the GitHub repository.
If you have any questions or suggestions, feel free to reach out:
- GitHub: Yanendrajha
Happy coding!