CSE 373, Spring 2019: HW2 - Calculator Project

Overview

In this project, you will:

  • Review material from CSE 143 (array lists, linked lists, dictionaries, recursion, and tree manipulation).
  • Practice working with iterators, generics, and interfaces.
  • Write tests using JUnit.
  • Learn how to use a new data structure: abstract syntax trees.

This assignment has two parts. Part 1 is due on Wednesday, April 17 at 11:59pm and part 2 is due on Wednesday, April 24 at 11:59pm.

Expectations

Here are some baseline expectations you should meet in all projects:

  • Follow the course collaboration policies.

  • DO NOT import or use any classes from java.util.*. There are only two exceptions to this rule:

    1. You may import and use the following classes:

      • java.util.Iterator
      • java.util.NoSuchElementException
      • java.util.Objects
      • java.util.Arrays
    2. You may import and use anything from java.util.* within your testing code.

  • DO NOT make modifications to instructor-provided code (unless told otherwise). If you need to temporarily change our code for debugging, make sure to change it back afterwards.

Background information

Throughout this site, you will run into some blue boxes. You can expand or collapse these boxes by clicking on them.

For example:

Try clicking on me

Blue boxes contain background material that either:

  • Discusses (optional) material that is beyond the scope of this course
  • Discusses implementation details that you can safely ignore
  • Explains background information you may already know or was covered in previous courses that you may be rusty on.

You should be able to complete each project without having to read anything in the blue boxes. They exist mainly to satisfy your curiosity.

Table of Contents

You'll be writing code in parts 1 and 2. These parts will build on each other, so be sure to start early and do a good job on part 1 so you don't run into issues when starting part 2.