application development using java - diycomputerscience course
TRANSCRIPT
Recommendation of a Strategy
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
This course has 13 sections, many of them containing multiple projects
How Large Is The Course ?
Across these sections you will write code, write unit tests, read/review code, and even fix bugs
Real World Component
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 thedesktop
Minesweeper on theweb
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
Sure, please read ahead !
Remember each section may have multiple projects
Can You Give More Details About The 13 Sections Of This Course ?
Section 1 Getting Started
In Section 1 - Project 1 you will learnHow 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 learnUnderstand 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 learnHow 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 learnHow 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 learnUnderstand 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 learnHow 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 learnWork 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 learnA 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 learnHow to spot weeds in code and refactor them
About immutable classes
In Section 6 - Project 2 you will learnHow 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 learnHow to add event handlers to Swing components
About anonymous inner classes
In Section 7 - Project 2 you will learnHow 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 learnHow 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 learnHow 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 learnMore 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 learnWhat is a Locale
How to use ResourceBundle to internationalize a software product
In Section 9 - Project 2 you will learnHow 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 learnHow 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 learnAbout 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 learnHow to debug and fix a bug
Section 10 (contd.)
In Section 10 Project 3 you will learnHow to use the String.format method for formatting Strings
How to use regular expressions for text parsing
In Section 10 - Project 4 you will learnHow 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 learnHow 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 learnWhat 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 learnHow 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 learnWhy 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 !
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline Level