Write My Paper Button

WhatsApp Widget

100% Human-Written Assignment & Research Help

Plagiarism-Free Papers, Dissertation Editing & Expert Assignment Assistance

This is an individual project that will assess your ability to develop an application in MATLAB using the skills you have gained in the course so far. Your work must be submitted by Wednesday of week 7 and assessed face to face. For this assessment, you *must* present your work to your tutor. Your tutor will arrange times for assessment in w

Assessment

This is an individual project that will assess your ability to develop an application in MATLAB using the skills you have gained in the course so far.

Your work must be submitted by Wednesday of week 7 and assessed face to face. For this assessment, you *must* present your work to your tutor. Your tutor will arrange times for assessment in weeks 7 or 8 (week 9 may be used by your tutor if needed). ALL marks are based on this in-person assessment. If you do not present, the project will receive 0 marks. Late penalties of 1% per hour (or part thereof) late apply to this assessment.

This assignment will assess how you apply and understand the following concepts to solving problems with software:

User Input and Output in MATLAB

A visualisation of changing application state (this can be through a text representation of state (e.g. ASCII art (https://en.wikipedia.org/wiki/ASCII_art) used to show a current game board or histogram of current values) or plotting of current values in MATLAB).

MATLAB programming concepts including:

Loops

Vectors

Matrices

Conditional execution

Functions

Software Development Practices including:

Commenting and code Style.

Testing

Incremental development of code

Use of documentation to support self learning

Being able to explain your code and your design decisions.

We will assess how well you apply these concepts to the development of an interesting and non-trivial software artefact according to the rubric at the bottom of this assignment. Make sure you read this rubric carefully before starting.

Specification

In this project you have to develop an application that:

Reads input in a user-friendly way. Your tutor should be able to interact with your application without having to ask you how to use it.

Performs some interesting computation based on that input

Displays output in a user-friendly form.

To pass, the code that you produce and your presentation to your tutor must demonstrate an understanding of at least:

Terminal based input/output

Loops

Conditional execution

Vectors or Matrices

The precise choice of application is up to you. You can choose an application of interest to you. You will be marked according to the rubric for this assignment which, as you will see, is focused on the value that you add and evidence that you built up your solution in stages (see below) and that you tested your solution carefully.

Because the topic of this project is open, it is permissible to make use of resources presented in this course including workshop examples and demonstrations presented in lecture videos. It is also permissible to make use of small sections of code from the textbook and online resources that solve small generic problems (e.g. how to convert a number to a character in MATLAB) in order to complete a small component part of the program. Where you do make use of code from another source then it is a requirement that you use comments to clearly indicate the section of code from another source and where it came from. A person reading your code should be able to easily tell which parts of the code were written by you. Your marks will be awarded on the basis of the code that you contributed.

Your project must be your own design and development and must NOT reproduce code solutions to your project application from the Internet or elsewhere. Applications that are a reproduction of existing code solutions will be considered a breach of academic integrity. If you have any questions on this, please ask!

If you don’t have a preferred idea for the project application some ideas are listed below.

Project Ideas

The ideas below are just ideas to get you started. You do not have to select from the list below – it is great if you come up with your own project ideas (just make sure you read the specification above and look at the rubric attached to this assignment). Note that some suggestions include some discipline-specific background knowledge so, if you select from the problems below, be sure to pick a problem that aligns with your own knowledge. You will need to consider how you can use the different programming structures within the project you select. In most cases, this will require you to add additional functionality beyond the basic project descriptions. You are expected to be creative here in considering what meaningful functionality you could add.

A game where the user tries to guess a 2D location in a grid based on feedback from the the computer in terms of information like “you’re getting closer” or “you’re getting further away”.

A simple text-based version of a grid game such as battleship or mine-sweeper.

A text based letter guessing game – like hangman.

A game where the user has to try to form. the longest dictionary word from a set of random letters (vowels and consonants).

A “best word” dictionary look up for scrabble.

A text-based version of the game of Nim (https://en.wikipedia.org/wiki/Nim) where there are two human players (writing a computer-player is possible but more challenging).

A simple card game such as twenty-one (https://en.wikipedia.org/wiki/Twenty-One_(card_game))

A visualisation of a simplified physical system such as how heat transmits on a grid (see previous workshop questions for an illustration of this).

A simulation and visualisation of the areas covered by a random walk (https://en.wikipedia.org/wiki/Random_walk) .

A 1D linear interpolation method that will find an intermediate value y* for any continuous x* value within the range of a set of (x,y) data.

Calculate and plot the cumulative distribution function for a given probability density such as the normal distribution.

Find how often and where cyclone tracks (use a random walk) and keep track of how far they stray from where they start after a certain number of steps.

On a similar note, implement an insect race where two insects follow a random walk from an origin point and see which insect reaches a set distance from the origin first. (See if you can include a visualisation of insects’ paths in this one).

Make a 2D histogram from a random set of 2D coordinates.

For a 2D array with 0’s and 1’s find the total perimeter of the 1’s (as might be used for delineating orebodies, storms in a radar image, etc).

Implement Conway’s game of life (https://en.wikipedia.org/wiki/Conway’s_Game_of_Life) (cellular automata models like this are used to model bushfire). To visualise you might want to plot the points either as text or, if you are feeling ambitious, in a MATLAB figure. If using figures you may want to use (pause) to ensure that you can see the changes redisplay.

Construct a database of the periodic table (use a vector for each different field: symbolic name, atomic number, atomic weight). Provide a lookup to return all information of an element for a specific input criterion (such as the symbolic name).

Determine the area of intersection of two rectangles where each rectangle is specified by two diagonally opposite input coordinates: lowerleft and topright. Note that some rectangles might not intersect so you have to handle this. Make you program do this repeatedly by reading in coordinates from the user in a loop.

Write a program that takes an old image and creates a new image by scaling it to a target size in rows and columns. For this problem you will need to think of the arithmetic you will need to do to sample the correct pixels from the old image.

You can have a look at some past projects in our gallery (https://myuni.adelaide.edu.au/courses/101053/pages/project-gallery) .

Working in Stages

Really important

For this assignment, you will need to build up your solution in testable stages. This means that you don’t try to write a complete solution in one sitting but instead try to write and test a program that implements part of the functionality of what you do. Once this step is working you can move on to the next component of your solution. Once you have a working solution for the components then you can start to put them together into a working solution. You are expected to save your files for your partial solutions to this problem. These files can be shown to the demonstrator to show how you have built up your solution from components and gradually added functionality.

As an example of how you might work in stages, for the hangman game above you might break the problem down into:

Selecting a word from a dictionary. ‘aardvark’

Reading a single letter from the user like ‘a’

Building a character array showing the letters matched so far like ‘aa—a–’

Keeping count of the number of guessed letters so far.

Keeping count of the number of guesses so far.

Writing conditional logic to see whether the game is finished or not.

You would have at least one MATLAB file and tests for each stage above. You will be expected to write well-commented and readable code for each stage. Of course, the MATLAB files will often build on each other so you will, often, be able to take advantage of code you have already written.

Testing

You will be assessed on how you tested your program. You must produce a test file for each stage that describes the input that you used to test that part of your program implementation and your expected results. Remember to update your tests if you find you need more tests to identify some errors.

Handing in

You are required to hand in the following files by the due date:

1. a short video (no more than 3 minutes) demonstrating the functionality of your project

2. a written self-assessment against the rubric criteria, identifying the rubric level you have reached and your evidence.

3. Your development files showing your stages of development

4. your test files showing or explaining your testing

5. your final project code.

Gradescope has a 100MB submission limit If your submission exceeds this, please upload your video and self assessment (items 1 and 2 above) to any accessible site (SharePoint, YouTube, GoogleDoc, etc). Be sure it is viewable to anyone with the link. Submit to Gradescope items 3-5 and a text file with the link to your site.

Check that your upload succeeded by checking your submission files in Gradescope and verifying all files have uploaded.

If you are unable to upload despite the above, please document the error (screenshot) and send the screenshot and your files to the course coordinator.

During your interview with your tutor, you will be expected to be able to identify and justify your level of achievement against the rubric. Your assessment is based on this interview and your ability to demonstrate an understanding of your work.

This is an individual project that will assess your ability to develop an application in MATLAB using the skills you have gained in the course so far. Your work must be submitted by Wednesday of week 7 and assessed face to face. For this assessment, you *must* present your work to your tutor. Your tutor will arrange times for assessment in w
Scroll to top