SlideShare a Scribd company logo
1 of 26
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

What's hot

Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingsaber tabatabaee
 
Devoxx 2013 Summary/Keynotes
Devoxx 2013 Summary/KeynotesDevoxx 2013 Summary/Keynotes
Devoxx 2013 Summary/KeynotesAliaksandr Kazlou
 
Spring-batch Groovy y Gradle
Spring-batch Groovy y GradleSpring-batch Groovy y Gradle
Spring-batch Groovy y GradleAntonio Mas
 
Professional JavaScript Development (An Introduction for Java Developers)
Professional JavaScript Development (An Introduction for Java Developers)Professional JavaScript Development (An Introduction for Java Developers)
Professional JavaScript Development (An Introduction for Java Developers)jbandi
 
Behavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning RORBehavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning RORSmartLogic
 
Patterns: The new Javascript framweork
Patterns: The new Javascript framweorkPatterns: The new Javascript framweork
Patterns: The new Javascript framweorkFranco Pellegrini
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentJohn Blanco
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven DevelopmentEffectiveUI
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven DevelopmentEffective
 
Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?jbandi
 
Evolution or stagnation programming languages
Evolution or stagnation programming languagesEvolution or stagnation programming languages
Evolution or stagnation programming languagesDaniele Esposti
 
Php[tek] 2016 - BDD with Behat for Beginners
Php[tek] 2016 - BDD with Behat for BeginnersPhp[tek] 2016 - BDD with Behat for Beginners
Php[tek] 2016 - BDD with Behat for BeginnersAdam Englander
 
Meetup React Sanca - 29/11/18 - React Testing
Meetup React Sanca - 29/11/18 - React TestingMeetup React Sanca - 29/11/18 - React Testing
Meetup React Sanca - 29/11/18 - React TestingAugusto Lazaro
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...mCloud
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014jbandi
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go langAmal Mohan N
 

What's hot (20)

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

Similar to Application Development Using Java - DIYComputerScience Course

Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakSigma Software
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplateStanislav Petrov
 
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...DicodingEvent
 
Best React js Training course in Bangalore
Best React js Training course in BangaloreBest React js Training course in Bangalore
Best React js Training course in BangaloreAvinash Kumar
 
Selenium training-course-content-syllabus-credo systemz
Selenium training-course-content-syllabus-credo systemzSelenium training-course-content-syllabus-credo systemz
Selenium training-course-content-syllabus-credo systemzTraining Institute
 
Learn java in one day and learn it well 2016 jamie chan
Learn java in one day and learn it well 2016   jamie chanLearn java in one day and learn it well 2016   jamie chan
Learn java in one day and learn it well 2016 jamie chananand_study
 
Create first android app with MVVM Architecture
Create first android app with MVVM ArchitectureCreate first android app with MVVM Architecture
Create first android app with MVVM Architecturekhushbu thakker
 
Android Study Jam - Info Session
Android Study Jam - Info SessionAndroid Study Jam - Info Session
Android Study Jam - Info SessionAITIKDANDAPAT
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Molieremfrancis
 
Session 02 - Elements of Java Language
Session 02 - Elements of Java LanguageSession 02 - Elements of Java Language
Session 02 - Elements of Java LanguagePawanMM
 
Backend Development Bootcamp - Node [Online & Offline] In Bangla
Backend Development Bootcamp - Node [Online & Offline] In BanglaBackend Development Bootcamp - Node [Online & Offline] In Bangla
Backend Development Bootcamp - Node [Online & Offline] In BanglaStack Learner
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language Hitesh-Java
 
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18Manuel Rivero
 
Realtime selenium interview questions
Realtime selenium interview questionsRealtime selenium interview questions
Realtime selenium interview questionsKuldeep Pawar
 
Effects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAsEffects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAsManuel Rivero
 
Monster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applicationsMonster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applicationsLaurence Svekis ✔
 
История одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр СугакИстория одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр СугакSigma Software
 

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

Hack Rio/OS
Hack Rio/OSHack Rio/OS
Hack Rio/OS
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
Play with Testing on Android - Gilang Ramadhan (Academy Content Writer at Dic...
 
Best React js Training course in Bangalore
Best React js Training course in BangaloreBest React js Training course in Bangalore
Best React js Training course in Bangalore
 
Selenium training-course-content-syllabus-credo systemz
Selenium training-course-content-syllabus-credo systemzSelenium training-course-content-syllabus-credo systemz
Selenium training-course-content-syllabus-credo systemz
 
Learn java in one day and learn it well 2016 jamie chan
Learn java in one day and learn it well 2016   jamie chanLearn java in one day and learn it well 2016   jamie chan
Learn java in one day and learn it well 2016 jamie chan
 
Create first android app with MVVM Architecture
Create first android app with MVVM ArchitectureCreate first android app with MVVM Architecture
Create first android app with MVVM Architecture
 
Android Study Jam - Info Session
Android Study Jam - Info SessionAndroid Study Jam - Info Session
Android Study Jam - Info Session
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Session 02 - Elements of Java Language
Session 02 - Elements of Java LanguageSession 02 - Elements of Java Language
Session 02 - Elements of Java Language
 
Backend Development Bootcamp - Node [Online & Offline] In Bangla
Backend Development Bootcamp - Node [Online & Offline] In BanglaBackend Development Bootcamp - Node [Online & Offline] In Bangla
Backend Development Bootcamp - Node [Online & Offline] In Bangla
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language
 
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
Effects, coeffects & subscriptions: a pit of success for SPAs Socracan18
 
Realtime selenium interview questions
Realtime selenium interview questionsRealtime selenium interview questions
Realtime selenium interview questions
 
Effects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAsEffects, Coeffects & Subscriptions: a pit of success for SPAs
Effects, Coeffects & Subscriptions: a pit of success for SPAs
 
Monster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applicationsMonster JavaScript Course - 50+ projects and applications
Monster JavaScript Course - 50+ projects and applications
 
История одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр СугакИстория одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр Сугак
 
OOP Java
OOP JavaOOP Java
OOP Java
 

More from parag

Version Control With svn Setting The Stage
Version  Control With svn Setting The StageVersion  Control With svn Setting The Stage
Version Control With svn Setting The Stageparag
 
Effective exceptions
Effective exceptionsEffective exceptions
Effective exceptionsparag
 
Data structures
Data structuresData structures
Data structuresparag
 
Building Internet Reputation
Building Internet ReputationBuilding Internet Reputation
Building Internet Reputationparag
 
General method best_practices
General method best_practicesGeneral method best_practices
General method best_practicesparag
 
Make defensive copies
Make defensive copiesMake defensive copies
Make defensive copiesparag
 
Check methods params_for_validity
Check methods params_for_validityCheck methods params_for_validity
Check methods params_for_validityparag
 
Double checkedlockingjavasingletons
Double checkedlockingjavasingletonsDouble checkedlockingjavasingletons
Double checkedlockingjavasingletonsparag
 
Internet And New Media For Teaching
Internet And New Media For TeachingInternet And New Media For Teaching
Internet And New Media For Teachingparag
 
Java Collections
Java CollectionsJava Collections
Java Collectionsparag
 
Blogging and The Learning Professional
Blogging and The Learning ProfessionalBlogging and The Learning Professional
Blogging and The Learning Professionalparag
 
Inner Classes
Inner ClassesInner Classes
Inner Classesparag
 
Interfaces In Java
Interfaces In JavaInterfaces In Java
Interfaces In Javaparag
 
Multithreading In Java
Multithreading In JavaMultithreading In Java
Multithreading In Javaparag
 
IO In Java
IO In JavaIO In Java
IO In Javaparag
 
Exception Handling In Java
Exception Handling In JavaException Handling In Java
Exception Handling In Javaparag
 
Goals Of Software Design - The main goals
Goals Of Software Design - The main goalsGoals Of Software Design - The main goals
Goals Of Software Design - The main goalsparag
 

More from parag (18)

Version Control With svn Setting The Stage
Version  Control With svn Setting The StageVersion  Control With svn Setting The Stage
Version Control With svn Setting The Stage
 
Effective exceptions
Effective exceptionsEffective exceptions
Effective exceptions
 
Data structures
Data structuresData structures
Data structures
 
Building Internet Reputation
Building Internet ReputationBuilding Internet Reputation
Building Internet Reputation
 
General method best_practices
General method best_practicesGeneral method best_practices
General method best_practices
 
Make defensive copies
Make defensive copiesMake defensive copies
Make defensive copies
 
Check methods params_for_validity
Check methods params_for_validityCheck methods params_for_validity
Check methods params_for_validity
 
Double checkedlockingjavasingletons
Double checkedlockingjavasingletonsDouble checkedlockingjavasingletons
Double checkedlockingjavasingletons
 
Uml
UmlUml
Uml
 
Internet And New Media For Teaching
Internet And New Media For TeachingInternet And New Media For Teaching
Internet And New Media For Teaching
 
Java Collections
Java CollectionsJava Collections
Java Collections
 
Blogging and The Learning Professional
Blogging and The Learning ProfessionalBlogging and The Learning Professional
Blogging and The Learning Professional
 
Inner Classes
Inner ClassesInner Classes
Inner Classes
 
Interfaces In Java
Interfaces In JavaInterfaces In Java
Interfaces In Java
 
Multithreading In Java
Multithreading In JavaMultithreading In Java
Multithreading In Java
 
IO In Java
IO In JavaIO In Java
IO In Java
 
Exception Handling In Java
Exception Handling In JavaException Handling In Java
Exception Handling In Java
 
Goals Of Software Design - The main goals
Goals Of Software Design - The main goalsGoals Of Software Design - The main goals
Goals Of Software Design - The main goals
 

Recently uploaded

Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxJiesonDelaCerna
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxabhijeetpadhi001
 

Recently uploaded (20)

Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptx
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptx
 

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 !