Application Development Using Java - DIYComputerScience Course

  • Upload
    parag

  • View
    2.552

  • Download
    4

Embed Size (px)

Citation preview

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