SIX WEEK SUMMER TRAINING
REPORT
ON
JAVA PROGRAMMING
(CODETANTRA)
Submitted by: KODE DHANUSH SAI
Registration number: 12114392
Programme Name: B.Tech. (CSE - Data Science (ML and AI))
School of Computer Science & Engineering Lovely
Professional University, Phagwara.
DECLARATION
I hereby declare that I have completed my six weeks summer training at
Codetantra platform from June 5-06-2023 to July 17-07-2023. I have declared
that I have worked with full dedication during the 6weeks of training and my
learning outcomes fulfil the requirements of training for the award of degree of
B.TECH. CSE, Lovely Professional University Phagwara.
Signature of student
Name of the Student – Kode Dhanush Sai
Registration no: 12114392
Date: 20-07-2023
ACKNOWLEDGMENT
I would like to express my gratitude towards my university as well as TSV
Ramana CEO of Codetantra for providing me the golden opportunity to do this
wonderful summer training regarding JAVA course, which is also helped me in
doing a lot of programming and learning of new concepts.
So, I am really thankfull to them.
I really liked the Codetantra platform the way coding exercises are conducted,
instead of video it made us directly do code by ourself. It really helped me to do
my course sincerely. I am really thankfull to them.
I have taken efforts in this project. However, it would not have
been possible without the kind support and help of many individuals and
organizations. I would like to extend my sincere thanks to all of them.
CERTIFICATE
Link for certificate
https://lpu.codetantra.com/cert/certificate.jsp?certId=CT487-tE2vLv2-cj5
S.No Title Page.No
.
1. Introduction For Java 6
2. Topics Learnt 9
3. Reason for choosing 16
Codetantra platform
4. PROJECT 20
5. GANTT CHART 26
6. BIBLOGRAPHY 27
7. CONCLUSION 28
1. Introduction For Java
For example, in this learning program, we are using English as the language to
communicate or provide instructions to the learner.
Similarly, there are certain languages which can be used to provide instructions
to computers. These are called computer programming languages.
These languages provide a way to represent data (like numbers, text or images,
etc) and also provide a way to represent instructions which manipulate or work
with that data.
There are different types of programming languages. In our current course we
will be learning a computer programming language called Java.
Java is an Object-oriented programming language. An Object-oriented
programming language models data into Objects and instructions to manipulate
data as Methods. We will learn in detail about Objects, Methods and other
aspects of Object-oriented programming language in later sections.
Other popular examples of Object-oriented programming languages are C++
and C#.
A Java program consists of one or more classes. A class is the top most building
block which is given a name, we will learn more about it later.
A class usually consists of data (i.e encapsulates data) and methods which
operate on that data.
Among the various classes, the class from where the execution starts contains a
special method called main().
Below is the general structure followed while writing a Java class (i.e a source
file with .java extension):
License statement in comments detailing ownership
Package statement
Import statements
Documentation comment
Class or Interface definition
A Java program is usually composed of multiple lines. Each line is composed of
one or a combination of the below three input elements:
Comments
Whitespace characters
Tokens
A comment is a sequence of non-executable characters. There are three types of
comments in Java which we will learn later.
In Java, the whitespace characters are:
Space ’ ’ – (ASCII SP) produced by pressing spacebar
Tab ’\t’ – (ASCII HT) produced by pressing the tab key
Form Feed character ’\f’ – (ASCII FF) usually used as the page separator char
between lines/paragraphs
Line Terminator chars (used to separate two lines) – produced by pressing Enter
key:
Line Feed - ’\n’ (ASCII LF also called NL - New Line) - used in all Unix and
Mac OS X systems
Carriage Return - ’\r’ (ASCII CR) – used in MAC OS 9 and below
Carriage Return followed by Line Feed- ’\r\n’ (ASCII CRLF) – used in
Windows systems
All other input elements other than comments and whitespace are called as
tokens. The tokens are further classified as:
Identifiers – Names used to refer or identify are called Identifiers. For example,
names of variables, methods and classes are all called Identifiers.
Keywords – one of the 50 reserved words in Java language like public, new, for,
if etc are called Keywords. These have a special meaning when used as part of
the program.
Literals – these are the fixed values assigned in a source code. They can be of
primitive, String or a null type.
Operators – in Java language we have 38 different operators like - = > < == >=
etc..(which we will learn later)
Separators – in Java language we have 12 Separators - ( ) { } [] ; , . ... @ ::
2. TOPICS LEARNT
1. L1
Introduction to Java - History, Java program Structure
2. L2
Java Program Execution, JDK /JRE, Syntax of simple class
3. L3Completed
Basics of Java Syntax – Comment Lines, Identifiers, Statements, Braces,
Parenthesis
4. L4
Syntax of main(), Command-line arguments and Syntax of println() with
exercises
5. L5
Basics of Bits and Bytes - Binary, Decimal, Octal and Hexa-decimal
sysytems
6. L6
Different Data Types - int, short int, long int
7. L7
Different Data Types – byte, float and double
8. L8
Different Data Types – boolean, char and String
9. L9
Variables, Keywords, valueOf() method
10. L10
Arithmetic, Relational, Logical Operators
11. L11
Unary, Assignment, Ternary Operators
12. L12
Bitwise, String concatenation, Instance operators, Compound assignment
13. L13
Operator precedence and associativity, Type Conversions
14. L14
If-else, if-else-if and nested if statements
15. L1
Problem solving with if-else
16. L16
switch-case statement, for-each syntax and applications
17. L17
Loops–syntax and applications
18. L18
Fundamentals about Arrays, Multi-dimensional arrays
19. L19
Array Access and Iterations
20. L20
Sorting and Searching Techniques
21. L21
Arrays - Problem solving - 1
22. L22
Arrays - Problem solving – 2
23. L23
OOP Concepts & Class Fundamentals
24. L24
Constructors
25. L25
Different Methods
26. L26
Objects, Encapsulation, Different types of Variables, Void
27. L27
Text processing – String Class, String concatenation
28. L28
Text processing Methods - length(), charAt(), toLowerCase(),
toUpperCase(), startsWith(), endsWith(), equals()
29. L29
Text processing Methods – indexOf(), lastIndexOf(), substring(),
replace(), trim(), split()
30. L30
Text Formatting
31. L31
Problem solving – Text processing
32. L32
Fundamentals of java.lang class, Math Class, Autoboxing and Unboxing
33. L33
Inheritance
34. L34
Method overloading and Method overriding, Super keyword,
Polymorphism, Object Class
35. L35
Overiding toString() & equals() methods, scope
36. L36
Understanding Interface, Using Interfaces
37. L37
Abstract Class and usages of abstract keyword, Enum Types
38. L38
Non-static Init Blocks, Static Init Blocks
39. L39
Static fields, Static methods, Static classes
40. L40
Non-static Inner Classes, Static Inner Classes
41. L41
Local Classes, Anonymous Inner Classses
42. L42
Final fields, Final methods
43. L43
Final Classes, Common Errors with final usages
44. L44
Constructors and finalize method, Garbage Collection, Understanding the
internals of String, StringBuilder Class
45. L45
Understanding System Class, Truths about println method, Working with
System Time in Milli and Nano seconds
46. L46
Utility Classes – Date, DateFormat, Calendar, Randon number generator
47. L47
Exception classes & their Hierarchy, Exception Types
48. L48
Usage of try, catch and finally
49. L49
Usage of throw, throws and Writing User defined Exceptions
50. L50
Multi-Threading, Multitasking & Multiprocessing, Understanding
Threads & its States
51. L51
Thread Synchronization
52. L52
Thread class, Runnable Interface
53. L53
File class and Path class, File Copying/Moving
54. L54
Byte Streams, Character Streams (Readers and Writers) and Object
Streams
Click for Notes
55. L55
Annotations & Assertions
56. L56
Data Structures - Fundamentals, Collection Hierarchy, Collection Root
Interface, Iterable and Iterator
57. L57
Data Structures - List, ArrayList
58. L58
Data Structures - hashCode(), Map, HashMap, TreeMap,
LinkedHashMap
59. L59
Data Structures - Set, HashSet, TreeSet, LinkedHashSet
60. L60
Data Structures - Queue, Deque, Dictionary, Hashtable
61. L61
Generics - Introduction, Generics and Collections, Correct usage of
Generics
62. L62
Generics - Writing Custom Generic class, Bounded Types, Wildcards and
Types
C
63. Applets & AWT
3. Reason for choosing Codetantra
platform
This report outlines the reasons for selecting the CodeTantra platform as a
preferred choice for learning Java programming. CodeTantra is an online
learning platform known for its programming courses and resources. This report
explores various factors that make CodeTantra an attractive option for
individuals seeking to acquire Java programming skills.
Table of Contents:
Introduction
Structured Curriculum
Interactive Learning
Audio Tutorials
Quizzes and Assessments
Flexibility
Community and Support
Cost-Effective
Access to Resources
Certificates
Reviews and Recommendations
Conclusion
1. Introduction:
CodeTantra is an online learning platform that offers courses in various
programming languages, including Java. This report discusses the reasons for
choosing CodeTantra as the platform for learning Java.
2. Structured Curriculum:
CodeTantra provides a well-structured curriculum for Java programming,
making it suitable for beginners and those looking to build a strong foundation
in the language.
3. Interactive Learning:
The platform offers interactive coding exercises and challenges, enabling
learners to apply their knowledge practically and enhance their programming
skills.
4. Audio Tutorials:
CodeTantra includes Audio tutorials, so we can listen and read the concepts it’s
a nice way to learn programming techniques, it’s also helpful if we want to do
coding peacefully we can just read the topics.
5. Quizzes and Assessments:
Regular quizzes and assessments on CodeTantra help learners gauge their
understanding of Java and track their progress.
6. Flexibility:
CodeTantra's online format allows learners to access materials at their
convenience, making it ideal for individuals with busy schedules or varied time
zones.
7. Community and Support:
The platform may provide a community forum or support system, fostering
interactions among learners and facilitating the exchange of knowledge and
experiences.
8. Cost-Effective:
Compared to traditional classroom-based courses or bootcamps, online
platforms like CodeTantra often offer cost-effective learning options.
9. Access to Resources:
CodeTantra offers a variety of resources, including code examples,
documentation, and reference materials, enriching the learning experience.
10. Certificates:
Upon completion, learners may receive certificates from CodeTantra, which can
be a valuable addition to resumes or LinkedIn profiles, showcasing their Java
programming skills.
11. Reviews and Recommendations:
It is recommended by seniors and friends, other platforms
We could just skip videos, here we have to do every code it’s a great way to
learn without cheating.
12. Conclusion:
In conclusion, the CodeTantra platform offers a comprehensive and flexible
learning experience for individuals looking to acquire Java programming skills.
Its structured curriculum, interactive learning features, and community support
make it a compelling choice for aspiring Java developers.
4. PROJECT
HOTEL MANAGEMENT PROJECT:
This is a Hotel Management tool which can be used to manage activites like
storing customer details, booking rooms of four different types, ordering food
for particular rooms, unbooking rooms and showing the bill. It can also be used
to see different room features and room availibility. It is a menu driven program
and it runs until the user exits. File handling has been used to store the current
status of the hotel(customer details, booked rooms, food ordered) in a file once
the program exits so that when we restart the program, the old details are not
lost. The program reads the file when it restarts to know the previous status of
the hotel. Writing of file has been done in a separate thread as it can be done
parallely. User defined exception is thrown if the user tries to book an already
allotted room. Exception handling is properly done to deal with any kind of
unexpected exception.
Topics Covered-
Classes and Objects, Inheritance, File Handling with Objects, ArrayList,
implementing Interface, User defined exception and Exception handling.
Github link for code: https://github.com/DhanushKode/HOTEL-MANAGEMENT
Reference: Hotel Management System - GeeksforGeeks
Output:
5. GANTT CHART
6. BIBLOGRAPHY
Resources used are:
1.Google
2.GeeksforGeeks
3.Codetantra
4.HotelManagement System
7.CONCLUSION
In conclusion, this report has provided a comprehensive overview of the Java
programming language within the context of our CodeTantra course. We began
by exploring the fundamental concepts of Java, including its syntax, data types,
and control structures. Throughout our journey, we delved into object-oriented
programming principles, such as encapsulation, inheritance, and polymorphism,
which form the backbone of Java's versatility.
We also discussed the importance of exception handling in Java, emphasizing
the role it plays in writing robust and reliable code. Additionally, we explored
Java's rich standard library, which offers a wide range of pre-built classes and
utilities to streamline development.
In the practical section of this report, we implemented several Java programs,
ranging from simple console applications to more complex projects that
incorporated graphical user interfaces and database connectivity. These hands-
on exercises not only reinforced our theoretical knowledge but also showcased
the real-world applicability of Java.
Furthermore, we highlighted the significance of version control systems like Git
in collaborative software development and how they integrate seamlessly with
Java projects.
As we conclude, it is evident that Java remains a robust and versatile
programming language with a vast ecosystem of libraries and tools. It continues
to be a preferred choice for developing a wide range of applications, from web
and mobile applications to enterprise-level software.
Through our journey in this CodeTantra course, we have gained valuable
insights into Java's capabilities and best practices, equipping us with the skills
necessary to tackle real-world software development challenges. With
continuous practice and exploration, we can further hone our Java programming
skills and contribute to the ever-evolving world of technology.
We extend our gratitude to the CodeTantra team for providing us with a
structured and informative learning experience in Java. We look forward to
applying our knowledge and skills in future projects and are excited about the
endless possibilities that Java programming offers in the software development
landscape.
Thank you for giving me the opportunity to learn java programming language
from Codetantra Platform, it will help me a lot for my career.