SlideShare a Scribd company logo
Application Development Using Java
This is a project based course in which you will
       build an entire Minesweeper game
What Is A Project Based
          Course ?


 In a project based course you learn by doing. The
   course is structured as a large project which is
broken into many sections. In each section you will
  be given some code, and will have to add more
 code. This way you will learn Java programming
  by progressively building a Minesweeper game
                     from scratch
How Large Is The Course ?




 This course has 13 sections, many of them
        containing multiple projects
Real World Component




Across these sections you will write code, write
unit tests, read/review code, and even fix bugs
How Does The Course Start ?


You will start with an Eclipse project containing a
couple of classes and test cases
How Does It Continue ?




Step by step you will build an entire Minesweeper
game, including a desktop version as well as a web
                  based version.
Can You Show Me What It
          Will Look Like ?
                        Minesweeper on the
Minesweeper on the      web
desktop
What Will I Learn In This
       Course ?




  You will learn lots of things like basics of Java
 programming, good programming practices, unit
testing, web development using Servlets and JSP,
                  and much more
Are There Any Prerequisites ?




 You will gain most from this course if you have
basic knowledge of Java syntax and you have done
    at least a little programming in some other
                        language
Can You Give More Details
About The 13 Sections Of This
          Course ?




            Sure, please read ahead !

Remember each section may have multiple projects
Section 1 – Getting Started


➲   In Section 1 - Project 1 you will learn
●   How to create a source folder in an Eclipse project
●   How to fix a compilation error in a class
●   What are accessor (getter/setter) methods
●   What is a no-arg constructor
●   What is a test case
●   Become familiar with the term API (Application Programming Interface)
Section 2 – Start Building The
              API

 ➲   In Section 2 - Project 1 you will learn
 ●   Understand the business rules of a class and how they can be mapped to it's
        API
 ●   How to declare an Exception in the API of a method
 ●   How to throw an Exception
 ●   How to work with enum types
 ●   How to run a unit test
Section 3 – Getting Into Classes
          and Objects

 ➲   In Section 3 - Project 1 you will learn
 ●   How to work with multi-dimensional arrays
 ●   How to initialize an object in it's constructor
 ●   How to instantiate a class
 ●   How to define constants
 ●   How to make small design decisions
 ➲   In Section 3 - Project 2 you will learn
 ●   How to get multiple objects collaborate for a functionality
 ●   How to use the chain of responsibility pattern
 ●   How to initialize complex state of an object in it's constructor
 ●   How to use System.nanoTime() for a quick random number
Section 4 – First Cut Of The
            GUI

➲   In Section 4 - Project 1 you will learn
●   Understand that control of a program starts in the main method
●   How to create a simple JFrame
●   How to work with static methods
➲   In Section 4 - Project 2 you will learn
●   How to create a test suite
●   How to determine the correct access modifier for a new method
Section 5 – Getting The GUI To
        Do Something

 ➲   In Section 5 - Project 1 you will learn
 ●   Work with Swing components
 ●   How to wire a use case, end to end
 ●   How to break a large requirement into smaller steps
 ➲   In Section 5 - Project 2 you will learn
 ●   A bit more about working with Swing components
 ●   How to create utility methods
 ●   About dependency injection in a very brief sense
Section 6 – Refactoring & IoC


➲    In Section 6 - Project 1 you will learn
 ●   How to spot weeds in code and refactor them
 ●   About immutable classes
➲    In Section 6 - Project 2 you will learn
 ●   How dependency injection helps make code more testable
 ●   What is Inversion of control
 ●   About the Strategy design pattern in very brief
Section 7 – Connecting The GUI
     With Backend Classes

 ➲   In Section 7 - Project 1 you will learn
 ●   How to add event handlers to Swing components
 ●   About anonymous inner classes
 ➲   In Section 7 - Project 2 you will learn
 ●   How to do a code review
 ●   How to work with dialogue boxes in Swing
 ●   How to handle exceptions
 ●   How to create a layer of abstraction
 ➲   In Section 7 - Project 3 you will learn
 ●   How to distinguish between left click and right click on a mouse event
 ●   How to fully integrate the front-end code with the back-end code
Section 8 – Persist To File and
 Create Mock Classes For Unit
             Tests

 ➲   In Section 8 - Project 1 you will learn
 ●   How to read code end to end
 ●   How to work with file IO in Java for reading and writing files
 ●   How to create menu bars in Swing
 ➲   In Section 8 - Project 2 you will learn
 ●   More about the strategy design pattern
 ●   How to implement different strategies
 ●   How to create a mock class for running in test cases
 ●   How to test code against a mock class
Section 9 – I18N, Logging, and
      Building With ANT

 ➲   In Section 9 - Project 1 you will learn
 ●   What is a Locale
 ●   How to use ResourceBundle to internationalize a software product
 ➲   In Section 9 - Project 2 you will learn
 ●   How to use Log4J for generating log statements
 ●   What should be logged
 ●   Which log level a particular statement should be logged at
 ➲   In Section 9 - Project 3 you will learn
 ●   How to use ANT to create and run a software build
Section 10 – Refactorings :
 Defensive Programming,
  Regex, and EasyMock

➲   In Section 10 – Project 1 you will learn
●   About defensive coding and how to validate input arguments to a method
●   About defensive coding and how to copy objects references passed as input
       arguments, before using them
●   About defensive programming and how to copy objects before returning them
➲   In Section 10 - Project 2 you will learn
●   How to debug and fix a bug
Section 10 (contd.)


➲   In Section 10 – Project 3 you will learn
●   How to use the String.format method for formatting Strings
●   How to use regular expressions for text parsing
➲   In Section 10 - Project 4 you will learn
●   How to use EasyMock to quickly create mock objects and verify their behaviour
Section 11 – Persist To
Database, JDBC, and JPA

➲   In Section 11 – Project 1 you will learn
●   How to configure software using an external configuration file
●   How to lead a resource from the classpath
●   How to instantiate an object using reflection (because we do not know what we
       want to instantiate at compile time)
●   How to use JDBC for communicating with an RDBMS from Java code
●   How to use the DAO pattern for data objects
➲   In Section 11 - Project 2 you will learn
●   What is an ORM and why it is useful
●   What is JPA and why was the specification created
●   How to use JPA with Hibernate for database code
Section 12 – Web Based
Minesweeper With Servlets
        and JSP

➲   In Section 12 - Project 1 you will learn
●   How to build a web based software using Servlets and JSP
●   How to include Javascript in code
●   How to add simple HTML to a JSP page
●   Very briefly, how to use JQuery for responsive user interfaces
➲   In Section 12 – Project 2 you will learn
●   Why scriplets are bad in JSP code
●   How to use tag libraries in JSP code
Section 13 – Refactorings and
Enhancements (You Decide)

➲   There are still places in code which can be
    improved... try and make the code better !
➲   There are still features that can be added to the
    game. Identify and implement such features
    depending on what you want to learn
➲   And off course submit your code to the community
    for peer review and feedback
Happy Learning and remember you learn as much
programming by reading existing code, as you do by
 writing your own code. Be sure to read all the code
  which is already provided to you in the projects !

More Related Content

PPTX
Advantages of Python Learning | Why Python
PDF
Why and how to keep your code quality
PDF
PHPUnit with Magento
PDF
Groovy android
PDF
Swoole Meetup AFUP¨Montpellier 27/01/2021
PPTX
React web development
PPTX
.Net Architecture and Performance Tuning
PDF
Advantages of Python Learning | Why Python
Why and how to keep your code quality
PHPUnit with Magento
Groovy android
Swoole Meetup AFUP¨Montpellier 27/01/2021
React web development
.Net Architecture and Performance Tuning

What's hot (20)

PPTX
Writing clean scientific software Murphy cleancoding
ODP
Devoxx 2013 Summary/Keynotes
PDF
Spring-batch Groovy y Gradle
PDF
Professional JavaScript Development (An Introduction for Java Developers)
PDF
Behavior Driven Education: A Story of Learning ROR
PDF
Python/Django Training
PDF
Patterns: The new Javascript framweork
PPT
Test Driven Development
PPT
Test-Driven Development
PPT
Test-Driven Development
PDF
Java & JavaScript: Best Friends?
PPTX
Evolution or stagnation programming languages
PPT
Groovy And Grails
PPTX
Php[tek] 2016 - BDD with Behat for Beginners
PDF
Testing and symfony2
PDF
Meetup React Sanca - 29/11/18 - React Testing
PDF
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
PDF
There is something about JavaScript - Choose Forum 2014
PPTX
Introduction to go lang
Writing clean scientific software Murphy cleancoding
Devoxx 2013 Summary/Keynotes
Spring-batch Groovy y Gradle
Professional JavaScript Development (An Introduction for Java Developers)
Behavior Driven Education: A Story of Learning ROR
Python/Django Training
Patterns: The new Javascript framweork
Test Driven Development
Test-Driven Development
Test-Driven Development
Java & JavaScript: Best Friends?
Evolution or stagnation programming languages
Groovy And Grails
Php[tek] 2016 - BDD with Behat for Beginners
Testing and symfony2
Meetup React Sanca - 29/11/18 - React Testing
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
There is something about JavaScript - Choose Forum 2014
Introduction to go lang
Ad

Similar to Application Development Using Java - DIYComputerScience Course (20)

PDF
Learning Java An Introduction to Real World Programming with Java Marc Loy
PDF
OpenThink Labs Training : Diving into Java, The Head First Way
PDF
Java programing brochure
PDF
Core Java Training
PDF
Learning Java An Introduction to Real World Programming with Java Marc Loy
PDF
The java interview questions ebook - confused coders
PDF
Java Internship in Noida For B.Tech, MCA
PPTX
Code reviews
PDF
Java classes in karve nagar pune
PDF
M256 Unit 1 - Software Development with Java
DOC
Java Programming by P.Rizwan Ahmed,MUCollege, Ambur
DOC
PDF
Corejavacoursesyllabus 140226051356-phpapp01
PDF
Web design and development cs506 handouts
PPTX
Java in Mule
PPT
01-introductionto Object ooriented Programming in JAVA CS.ppt
PDF
Java training noida hibernate+spring+struts+web services(1)
PPT
01-introduction OOPS concepts in C++ JAVA
Learning Java An Introduction to Real World Programming with Java Marc Loy
OpenThink Labs Training : Diving into Java, The Head First Way
Java programing brochure
Core Java Training
Learning Java An Introduction to Real World Programming with Java Marc Loy
The java interview questions ebook - confused coders
Java Internship in Noida For B.Tech, MCA
Code reviews
Java classes in karve nagar pune
M256 Unit 1 - Software Development with Java
Java Programming by P.Rizwan Ahmed,MUCollege, Ambur
Corejavacoursesyllabus 140226051356-phpapp01
Web design and development cs506 handouts
Java in Mule
01-introductionto Object ooriented Programming in JAVA CS.ppt
Java training noida hibernate+spring+struts+web services(1)
01-introduction OOPS concepts in C++ JAVA
Ad

More from parag (18)

ODP
Version Control With svn Setting The Stage
ODP
Effective exceptions
ODP
Data structures
ODP
Building Internet Reputation
ODP
General method best_practices
ODP
Make defensive copies
ODP
Check methods params_for_validity
ODP
Double checkedlockingjavasingletons
ODP
Uml
PDF
Internet And New Media For Teaching
ODP
Java Collections
ODP
Blogging and The Learning Professional
PPT
Inner Classes
PPT
Interfaces In Java
ODP
Multithreading In Java
ODP
IO In Java
ODP
Exception Handling In Java
PPT
Goals Of Software Design - The main goals
Version Control With svn Setting The Stage
Effective exceptions
Data structures
Building Internet Reputation
General method best_practices
Make defensive copies
Check methods params_for_validity
Double checkedlockingjavasingletons
Uml
Internet And New Media For Teaching
Java Collections
Blogging and The Learning Professional
Inner Classes
Interfaces In Java
Multithreading In Java
IO In Java
Exception Handling In Java
Goals Of Software Design - The main goals

Recently uploaded (20)

PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
Pharma ospi slides which help in ospi learning
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Open Quiz Monsoon Mind Game Final Set.pptx
PDF
Basic Mud Logging Guide for educational purpose
PDF
English Language Teaching from Post-.pdf
PDF
PSYCHOLOGY IN EDUCATION.pdf ( nice pdf ...)
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
Open Quiz Monsoon Mind Game Prelims.pptx
PDF
Open folder Downloads.pdf yes yes ges yes
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Business Ethics Teaching Materials for college
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
102 student loan defaulters named and shamed – Is someone you know on the list?
Pharma ospi slides which help in ospi learning
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Open Quiz Monsoon Mind Game Final Set.pptx
Basic Mud Logging Guide for educational purpose
English Language Teaching from Post-.pdf
PSYCHOLOGY IN EDUCATION.pdf ( nice pdf ...)
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Open Quiz Monsoon Mind Game Prelims.pptx
Open folder Downloads.pdf yes yes ges yes
2.FourierTransform-ShortQuestionswithAnswers.pdf
Business Ethics Teaching Materials for college
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx

Application Development Using Java - DIYComputerScience Course

  • 2. This is a project based course in which you will build an entire Minesweeper game
  • 3. What Is A Project Based Course ? In a project based course you learn by doing. The course is structured as a large project which is broken into many sections. In each section you will be given some code, and will have to add more code. This way you will learn Java programming by progressively building a Minesweeper game from scratch
  • 4. How Large Is The Course ? This course has 13 sections, many of them containing multiple projects
  • 5. Real World Component Across these sections you will write code, write unit tests, read/review code, and even fix bugs
  • 6. How Does The Course Start ? You will start with an Eclipse project containing a couple of classes and test cases
  • 7. How Does It Continue ? Step by step you will build an entire Minesweeper game, including a desktop version as well as a web based version.
  • 8. Can You Show Me What It Will Look Like ? Minesweeper on the Minesweeper on the web desktop
  • 9. What Will I Learn In This Course ? You will learn lots of things like basics of Java programming, good programming practices, unit testing, web development using Servlets and JSP, and much more
  • 10. Are There Any Prerequisites ? You will gain most from this course if you have basic knowledge of Java syntax and you have done at least a little programming in some other language
  • 11. Can You Give More Details About The 13 Sections Of This Course ? Sure, please read ahead ! Remember each section may have multiple projects
  • 12. Section 1 – Getting Started ➲ In Section 1 - Project 1 you will learn ● How to create a source folder in an Eclipse project ● How to fix a compilation error in a class ● What are accessor (getter/setter) methods ● What is a no-arg constructor ● What is a test case ● Become familiar with the term API (Application Programming Interface)
  • 13. Section 2 – Start Building The API ➲ In Section 2 - Project 1 you will learn ● Understand the business rules of a class and how they can be mapped to it's API ● How to declare an Exception in the API of a method ● How to throw an Exception ● How to work with enum types ● How to run a unit test
  • 14. Section 3 – Getting Into Classes and Objects ➲ In Section 3 - Project 1 you will learn ● How to work with multi-dimensional arrays ● How to initialize an object in it's constructor ● How to instantiate a class ● How to define constants ● How to make small design decisions ➲ In Section 3 - Project 2 you will learn ● How to get multiple objects collaborate for a functionality ● How to use the chain of responsibility pattern ● How to initialize complex state of an object in it's constructor ● How to use System.nanoTime() for a quick random number
  • 15. Section 4 – First Cut Of The GUI ➲ In Section 4 - Project 1 you will learn ● Understand that control of a program starts in the main method ● How to create a simple JFrame ● How to work with static methods ➲ In Section 4 - Project 2 you will learn ● How to create a test suite ● How to determine the correct access modifier for a new method
  • 16. Section 5 – Getting The GUI To Do Something ➲ In Section 5 - Project 1 you will learn ● Work with Swing components ● How to wire a use case, end to end ● How to break a large requirement into smaller steps ➲ In Section 5 - Project 2 you will learn ● A bit more about working with Swing components ● How to create utility methods ● About dependency injection in a very brief sense
  • 17. Section 6 – Refactoring & IoC ➲ In Section 6 - Project 1 you will learn ● How to spot weeds in code and refactor them ● About immutable classes ➲ In Section 6 - Project 2 you will learn ● How dependency injection helps make code more testable ● What is Inversion of control ● About the Strategy design pattern in very brief
  • 18. Section 7 – Connecting The GUI With Backend Classes ➲ In Section 7 - Project 1 you will learn ● How to add event handlers to Swing components ● About anonymous inner classes ➲ In Section 7 - Project 2 you will learn ● How to do a code review ● How to work with dialogue boxes in Swing ● How to handle exceptions ● How to create a layer of abstraction ➲ In Section 7 - Project 3 you will learn ● How to distinguish between left click and right click on a mouse event ● How to fully integrate the front-end code with the back-end code
  • 19. Section 8 – Persist To File and Create Mock Classes For Unit Tests ➲ In Section 8 - Project 1 you will learn ● How to read code end to end ● How to work with file IO in Java for reading and writing files ● How to create menu bars in Swing ➲ In Section 8 - Project 2 you will learn ● More about the strategy design pattern ● How to implement different strategies ● How to create a mock class for running in test cases ● How to test code against a mock class
  • 20. Section 9 – I18N, Logging, and Building With ANT ➲ In Section 9 - Project 1 you will learn ● What is a Locale ● How to use ResourceBundle to internationalize a software product ➲ In Section 9 - Project 2 you will learn ● How to use Log4J for generating log statements ● What should be logged ● Which log level a particular statement should be logged at ➲ In Section 9 - Project 3 you will learn ● How to use ANT to create and run a software build
  • 21. Section 10 – Refactorings : Defensive Programming, Regex, and EasyMock ➲ In Section 10 – Project 1 you will learn ● About defensive coding and how to validate input arguments to a method ● About defensive coding and how to copy objects references passed as input arguments, before using them ● About defensive programming and how to copy objects before returning them ➲ In Section 10 - Project 2 you will learn ● How to debug and fix a bug
  • 22. Section 10 (contd.) ➲ In Section 10 – Project 3 you will learn ● How to use the String.format method for formatting Strings ● How to use regular expressions for text parsing ➲ In Section 10 - Project 4 you will learn ● How to use EasyMock to quickly create mock objects and verify their behaviour
  • 23. Section 11 – Persist To Database, JDBC, and JPA ➲ In Section 11 – Project 1 you will learn ● How to configure software using an external configuration file ● How to lead a resource from the classpath ● How to instantiate an object using reflection (because we do not know what we want to instantiate at compile time) ● How to use JDBC for communicating with an RDBMS from Java code ● How to use the DAO pattern for data objects ➲ In Section 11 - Project 2 you will learn ● What is an ORM and why it is useful ● What is JPA and why was the specification created ● How to use JPA with Hibernate for database code
  • 24. Section 12 – Web Based Minesweeper With Servlets and JSP ➲ In Section 12 - Project 1 you will learn ● How to build a web based software using Servlets and JSP ● How to include Javascript in code ● How to add simple HTML to a JSP page ● Very briefly, how to use JQuery for responsive user interfaces ➲ In Section 12 – Project 2 you will learn ● Why scriplets are bad in JSP code ● How to use tag libraries in JSP code
  • 25. Section 13 – Refactorings and Enhancements (You Decide) ➲ There are still places in code which can be improved... try and make the code better ! ➲ There are still features that can be added to the game. Identify and implement such features depending on what you want to learn ➲ And off course submit your code to the community for peer review and feedback
  • 26. Happy Learning and remember you learn as much programming by reading existing code, as you do by writing your own code. Be sure to read all the code which is already provided to you in the projects !