/ics4u-isp

Primary LanguageSwift

Grade 12 Computer Science ISP

Overall expectations being assessed in this independent study project:

  • A1. demonstrate the ability to use different data types and expressions when creating computer programs;
  • A2. describe and use modular programming concepts and principles in the creation of computer programs;
  • A4. use proper code maintenance techniques when creating computer programs.
  • B1. demonstrate the ability to manage the software development process effectively, through all of its stages – planning, development ... and closing;
  • B2. apply standard project management techniques in the context of a student-managed ... project.
  • C1. demonstrate the ability to apply modular design concepts in computer programs;

In all phases of this ISP, you will be guided by an exemplar produced by Mr. Gordon.

The emphasis in this ISP is on understanding and applying the process of software development. The greatest success has historically come to students who plan their deliverables according to a manageeable schedule and stick to their plan.

Scope

Aim to create a modest application that solves a problem you care about. If you solve the problem well, it is highly likely that others will find your application useful as well. Challenge yourself with something new, but avoid overreaching.

Due dates

Planning, development, and closing will occur by the start of March Break. You can set due dates for deliverables in your project. You are strongly recommended to plan deliverable dates by working around due dates for deliverables in your other classes.

Note that you will be granted significant opportunities to work in class, but that there is, like any Grade 12 university preparation course, an expectation that work be completed outside of class time as well.

Proposal

My application -Sandbox- is a simple physics sandbox where you can add items and see how the interact. As well as object size, mass and shape, there will be environment and object modifiers such as gravity, friction and collision type. The app will be relatively simplistic having a small button to open a menu where you can view and change the settings, as well as add items to the currnt scenario. My app will feature both portrait and landscape viewing modes.

What problem will your application solve?

Write a paragraph to describe the utility of your application. This applies equally for games. When would someone use your application? Why would they use your application?

It gives a visiual representation of simple physics and allows you to test and see how different materials and object interact.

What is your inspiration for this project?

Have you seen another application that you wish to improve on? Has someone asked you to create this?

There is a game called Osmos, which gave me a bit of inspiration. Having an interest in physics and learning more about spritekit, and many other more complex sandbox and simulators also contributed towards my inspiration for this app.

What is your prior experience in this area?

Have you written an application like this before? Have you made use of any required APIs before?

No experience writing and application like this, but I do a have some experience in physics and a deep interest in it.

What are skills do you hope to acquire by completing this project?

For example, you might be writing a networked application for the first time. Or, you may be writing an application that requires a particularly well designed user interface. Describe what you expect to learn by writing this application.

I expect to learn a lot about designing a UI and building a fluid app, as well as more indepth usage of spritekit.

What dependencies, if any, will be required to complete your project?

If you are writing a networked application, you might be using an API like Alamofire to simplify that part of the implementation. If you are writing an application that communicates over Bluetooth, you may be using the Core Bluetooth framework. Please list any expected dependencies for your project.

The only forseen third-party usage will be spritekit and their physics engine.

Rate the personal difficulty level of this project.

I think that this will provide a healthy challenge for me, and that I will have to use my time well in order to complete it.

Identify what you think your biggest challenge for successfully completing this ISP will be.

becoming comfortable with using spritekit and managing my time well will be a big part of this project. I also hope to improve my github commits and frequency.

Make storyboards to indicate the user interface and/or functionality of your application.

In the section below, sketch out a plan for your application. This is where you will spend the majority of your time in completing the ISP proposal. Think through what you hope to create and as needed, adjust your responses to the questions above.

I'd like to have the ability to drag form either side to pull up the menus.

Once you choose a new object, text "tap to place" will appear and the new opject button (three lines) will turn into a littel trash can, where you can cancel that item.

When adding new elements, there will be mass and friction sliders. There will be more options, like walls, when you scroll down further.

For all the actual values you can tap to type in a value or, just adjust the sliders.