Demonstrate fluency in contemporary programming languages

Assignment Help JAVA Programming
Reference no: EM132239670

Learning outcomes and key skills

This assignment addresses the following learning outcomes of the module.

– Demonstrate fluency in contemporary programming languages, development tools and environments.
– Evaluate and demonstrate the theory and concepts of contemporary/industry standard programming and design in the software development life cycle.
– Demonstrate awareness of industry standards of professional and ethical software development, software carpentry and codemanship.

This assignment also addresses the following key skills
– Written communication
– Use of IT
– Requirement analysis, technical interpretations of problem statements

2. Description of task and guidance notes

Part 1: Design and Develop application to recognise handwritten digits

The assignment requires you to develop a java-based application to recognise handwritten digits. The inputs to the program will be a set of training images and appropriate labels (see below for details on MNIST database), along with an image of a handwritten digit, which needs to be recognised. The image of the handwritten digit to be recognised can be provided to the program either as an external image upload (a set of test images are given), or allowing the user to draw a digit using mouse, within a canvas area available in the application's user interface.

Use case 1: User uploads an image of a handwritten digit for recognition

In this case, the program should allow the user to upload an image that contain a handwritten digit. The application should display the uploaded image, its predicted result.

Use case 2: User draws a digit using mouse inside the canvas area

In this case, the program should allow the user to draw a desired digit (0 - 9) within a canvas area using mouse motions. As a programmer, you need to think about the line thickness, background colour of the canvas based on the sample images found in the MNIST database.

Once the drawing is complete, the digit should be extracted as an image which is resized accordingly (to match the size of the training set image samples), and centred with sufficient amount of padding before being used in the recognition.

Recognition of digits using k-Nearest Neighbour (k-NN) Algorithm

Once the image with handwritten digits, and the images and labels from the training set are available, the recognition process should be initiated. There are numerous algorithms available in the literature which can be utilised for the purpose of recognition (I.e., SVMs, DNNs etc.). However, in this assignment, it is recommended to use k-NN algorithm with Euclidean distance over raw pixels as the decision criteria. The pseudo code for a potential implementation of the k-NN algorithm is given below.

train_dataset := [train_images, train_lables] # 2D array that holds training images and labels
d_img # Variable that holds handwritten digit image
distance_lbl_array # 2D array to hold distances and labels

# iterate through each element in the train_dataset 2D array
for each element e in train_dataset
t_img := train_dataset[e][0] # eth training image
t_lbl := train_dataset[e][1] # eth label for the corresponding image

# compute the Euclidian distance between training image and current image

Ed=√(∑j=0Ni=0N(timg(i,j) -dimg(i,j))2 )

# store theEuclidian distance and the label of the training image
distance_lbl_array[e] := [distance, t_lbl]
end

# Sort distance_lbl_array according to the distance
sorted_distance_lbl_array := sort (distance_lbl_array)

# extract elements for k closest labels. e.g., if k=10, get the first 10 elements in the sorted_distance_lbl_array.
closest_k_label_array := sorted_distance_lbl_array[:k]

# Find the label class with maximum number of label counts
Estimated_label := max_label_count(closest_k_label_array)

# Find the confidence as a ratio of selected label count to total number of closest elements
Confidence := max_label_count(closest_k_label_array)/size(closest_k_label_array)

Presentation of the results

The digit recognised should be displayed with the confidence of the result.

Hint: The MNIST database contain training and testing datasets. You are encouraged to develop your code to test on the images provided in test data set, before attempting to perform the recognition for the user drawn digit.

MNIST dataset

MNIST database of handwritten digits is a popular dataset for studying machine learning and pattern recognition methods. The details of the images and their formats are given in the MNIST official web site . As specified in the web page, the images are not in any standard image format. Therefore, you may have to write your own program to read and convert them. Some helpful links are provided in the Moodle page.

Reference no: EM132239670

Questions Cloud

What difficulties your human experienced during given period : Summarize what went well and what difficulties your human experienced during this period. Consider how race/ethnicity, class, and gender may have influenced.
Estimate the growth rate will be for the next five years : When looking at historical prices, pick up the total quarterly dividends paid in 2014. You will see dividends listed with the monthly prices.
How do we brand reynolds for the social demographic : How do we brand Reynolds for the Social demographic on campus?
Explore the material in a real world application : The idea here is that you'll present an overview of a social psych concept, then each group member will discuss an example of how this has played out.
Demonstrate fluency in contemporary programming languages : Evaluate and demonstrate the theory and concepts of contemporary/industry standard programming and design in the software development life cycle
What is your rate of return on this investment : You are considering the purchase of a 7%, 15-year bond that pays interest annually. If the yield to maturity on the bond is 6%, what price will you pay?
Which is wrong about branding and brand equity : Which is WRONG about branding and brand equity. Under what circumstances would local marketing likely be the most effective?
What are analysts saying about the future of this firm : A brief review of your chosen company's outlook. What are analysts saying about the future of this firm? What do you think about the company's outlook?
Prepare a short four-item instrument that measures variable : Fourth, prepare a short four-item instrument that measures a variable related to your selected topic area. Fifth, identify your population of interest.

Reviews

len2239670

2/21/2019 10:12:53 PM

35 – 39 A very basic design is given that does not meet all of the requirements of the assignment and does not convey enough information to implement the solution. A basic implementation is given, but this does not implement all of the required features and contains numerous errors and inefficiencies throughout. Only a very basic analysis of the results is given. Under 35 No meaningful design has been given and little to no code has been implemented. There is no evidence of any meaningful testing or analysis of the results obtained. Little to no understanding of the problem and the techniques required to create a solution are evident.

len2239670

2/21/2019 10:12:45 PM

40 – 49 A basic design is given but does not address all of the requirements of the assignment. A basic implementation is given but this does not implement all aspects of the design and contains a number of errors and inefficiencies throughout. This needs to be significantly expanded. Some analysis of the results obtained is given but this is descriptive in nature. More discussion of why the given results were obtained is needed.

len2239670

2/21/2019 10:12:36 PM

50 – 59 A good design is given that covers the key requirements of the assignment but this could be expanded. A good implementation is given that closely reflects the design, but a number of omissions and errors are evident in the code. The implemented code could also be more efficient. Some analysis of the results is given, but this is largely descriptive and needs to be expanded.

len2239670

2/21/2019 10:12:24 PM

60 – 69 A very good design is given that covers all the requirements of the assignment, though some notational errors are evident. A good implementation is given that closely reflects the given design. Few to no errors are evident in the code but some aspects could be implemented more efficiently. A good analysis / discussion of the results obtained is given that discusses to some extent why the given results were obtained, demonstrating a good understanding of the code.

len2239670

2/21/2019 10:12:18 PM

Mark range criteria 70 – 100 An excellent design is given that covers all the requirements of the assignment (use case 1 and 2) and correctly uses UML notation throughout. An excellent implementation is given that is both efficient (multi-threaded implementation) and implements all aspects of the design. No errors are evident in the code and additional elements have been included to good effect. A very detailed analysis / discussion of the results obtained is given that discusses why the results were obtained, demonstrating a very good understanding of the code.

len2239670

2/21/2019 10:12:11 PM

Referencing requirements All referencing should use the Harvard referencing style. Any images used in the implementation should also be cited and included in an appendix in the design document.

len2239670

2/21/2019 10:12:02 PM

4. Submission details Part I (70%): Upload your submissions to the link provided in Moodle, no later than the hand-in date, shown on the from sheet of the assignment. Your submission can be a zip file. Please name your zip file with your student number (e.g., st12345678.zip). Your zip file should contain your implementation and design documentation. The report should also contain a link your version controlling repository (e.g., GitHub, bitbucket), with proper access being granted for module tutors for evaluation.

len2239670

2/21/2019 10:11:54 PM

Implementation (70%) Implementation of classes identified in the class diagram. Marks are awarded for completeness (properties and methods) and correctness (methods working correctly, correct use of data types to model associations for example). (20%) Appropriate use of OOP concepts within the design (i.e., use of inheritance, polymorphism, abstraction and encapsulation), and appropriate use of Java features such as interfaces and generics etc. (15%) Appropriate implementations for exception handling, visibility of system status (e.g., progress bar to display the time left in prediction) (5%) Implementation of a suitable user interface for drawing a digit using mouse, and uploading an external image (10%) Implementation of k-NN algorithm for computing the Euclidean distance between training images and input handwritten digit image (5%) Appropriate use of Threads for performance enhancement when computing the Euclidean distance (5%) Use of best coding practices. i.e., use of appropriate variable, function names, consistence naming conventions, suitable documentation, commenting of the code and version control. (10%)

len2239670

2/21/2019 10:11:46 PM

Design documentation (30%) Use case diagram (5%) Sequence diagram (5%) Class diagram – this should encapsulate ALL functionality of the application (10%) Documentation for implementation details and experimental results (10%) (30%)

Write a Review

JAVA Programming Questions & Answers

  Simple java programming tests

The java coding that accepts a distance it kilometers, sends it to a method which converts it to miles, and then displays the result

  Write a generic class

Write a generic class (using Java generics) called Pair that stores two values of the generic type.  It should have a constructor to set them, two methods getfirst() and getsecond() to retrieve them.

  Write the method in java

2.char mostOftenIn(String s) that for a given string s, returns the character that occurs most often in s.

  Write down java console application to add new student

Write down java console application presents the following menu. Add new student and scores in Biology, Physics and chemistry Search for a given student.

  Write a program that implements an atm machine

This project involves writing a program that implements an ATM machine. The interface to the program should be a Java GUI.

  Create an array of strings and using a stack

Create an array of Strings, and using a stack, reverse the order of the Strings in the array. You should create a Stack class and a StackElement class.

  Create a class called employee that includes three variables

(Employee Class) Create a class called Employee that includes three instance variables-a first name (type String), a last name (type String) and a monthly salary (double).

  Modify the two java application

Java application to meet these additional and changed business requirements: - The company has recently changed its total annual compensation policy to improve

  Write a program to print all armstrong numbers

Write a program to print all Armstrong numbers between 1 and 500. If sum of cubes of each digit of the number is equal to the number itself, then the number is called an Armstrong number

  Create a database backed application for dvd rental business

For this project you will create a database backed application for a DVD rental business called DVD Rent'A'Lot.

  Provides a method named ispalindrome

Write a complete Java program that provides a method named isPalindrome, which takes aQueue of integers as a parameter and returns true if the numbers in the Queue represent a palindrome (and false otherwise). The empty Queue should be considered ..

  Calculate and store shop price for all items

Write a java console application that allows the user to keep track of various items in a grocery shop. Calculate and store shop price for all items

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd