Category Archives: Computer Science

Array Fun 2 [2025]

Complete all the methods below. When you are done, copy and paste the    testmethods.v5.1  into your class and run it to see if you have any obvious errors.  The above code does not guarantee you a 100 but will help catch most of the common errors that students make.

Note: You may not use any external libraries (like Java.Arrays etc )or import any code. Everything can be done with just loops and variables.

int sumEveryN(int[] nums, int n)

Description:This method returns the sum of every  n  elements of nums ..

Method Call return value/output
sumEveryN( {1 , 2 , 3 , 4 }, 2 ) 4( ie 1 +3)
sumEveryN( {13 , 42, 15, 33 , 44 , 16 , 52} ,3) 98 ( ie 13 + 33+ 52)

String[] doubleArr(String[] strs)

Description: This method returns a new version of strs  in which each element now appears twice. This can be done with a for-each loop, which I believe is easier and more intuitive.

Method Call return value/output
doubleArr( {“a”,”b”,”c”} ) {“a”,”a”,”b”,”b”, “c” , “c”}
doubleArr( {“math”,”ware”,”house”,”.com” }) {“math”,”math”,”ware”,”ware”,”house”,”house”,”.com”, “.com”}

int  indexOf5(int[] nums )

Description:This returns the index of the first occurrence element 5  or -1 if 5 does not appear anywhere in the array.

Method Call return value/output
indexOf5( { 2 , 3 , 5 , 4 } ) 2
indexOf5( { 2 , 3 , 5 , 4, 5  } ) 2
indexOf5( { 2 , 3 ,7  , 4, 3,   } ) -1

More Sample calls and return vals

screenshot.41


int indexOf(int[] nums, int num)

Description: This method returns the index value of the first appearance of num  or -1 if num  is not an element of nums  .

Method Call return value/output
indexOf( {6,4 ,7,3, 4 }, 4) 1
indexOf( {6,4 7 ,3,2,7}, 7) 2
indexOf( {6,4 ,2,3}, 22) -1

 


int[] randos(int start, int end, int howMany)

Description:  This method returns an array of random numbers between [start,end] . Note make sure that each element in the new array attempts to make a new random int.  Use Math.random() , do not use any other mechanism for finding a random number. 

 randos_loop
 More example calls and returns :
randos2

double meanBetween(int[] nums, int min, int max)

Description:  This method returns the mean of nums ; however, this method only counts values within the range (min,max) as shown in the examples below:

screenshot.12
(Not inclusive, so do not count min or max )

Old versions:

Array Fun 1 

Array F un 2 (v 1)

 

Array Fun 3 (resizing included)

3-d First Forays

Step 1) Create a rectangle and dimension to 30 by 50 as shown

dimension recangle

Step 2)  Create your first extrude . Use 30 mm as shown in the video below:

first extrude

Step 3)  Let’s make  it a shell :

first shell

Step 4)  Now let’s try something different. Delete the shell and delete the extrude, then delete the sketch the start all over.

 

Step 5) Draw a circle and a line. Don’t worry to much about the dimensions. Just make it look close to this :

circle and line

Step 6)   Create a revolve using the line as the axis as shown in this video:first revolve

 

Step 7) Mess around with the 3-d shapes and do something else…make another revolve..or another extrude or one of the others. Submit a screenshot of this below the do now

 

Constraints Additional Practice

 

Step 1)  Create a new sketch on the front plane. There should only be 1 sketch that you use

Step 2)  Create a circle and then use the “coincident ” button to center it on the origin by clicking on the origin, the center of the circle :

center circle with coincident

 

Step 3) make its radius 15 MM by using the dimension tool

dimension circle with button

Here’s what your document should now look like :

15 mm circle

Step 4)  Do the same thing with a second circle . Make its radius 30

Picture: 30 mm circle

Step 5) Make a line that touches the circle, anywhere. Like the picture below:

secant line

 

 

Step 5) Find the “tangent line”  constraint (this might be a dropdown)tangent line

 

Step 6) Here’s how you create a tangent line.

Click the circle , click the line you made, then press “tangent line ”

 

how to make tangent line

Step 7)  Make a construction line from the tangent line to the bottom

construction line

 

Step  8) Make a second tangent line as shown:

tangent line 2

 

Step 8) Dimension both tangent lines so that they are 60 MM each

 

Step 9) Add a second shape that is dimensioned.

DDP Assignments

Unit 1, Onshape

4th Quarter Project [24-25]

Examples

Objective: To create a complex, industry level, project that builds off the skills we learned this year.  There is some flexibility here in that you can diverge some from pure web development. You must learn at least one new technology  to create a unique deliverable.

Your grade will be based on the level of complexity of your final project. I have listed some examples of technologies to learn and rated their general complexity. Ultimately, complexity will be evaluated by me and you are welcome to ask for feedback on where the complexity of your project will land you.

Note: There are huge numbers of technologies, frameworks etc, and I  am not familiar with many of the ones below.  The purpose here is for you to learn something, yourself, as web developers are often forced to do,  in the real world.  If you think you will need help, I suggest going with Phaser because  many students will do it and you can help each other . I have limited knowledge of Phaser. I can help with general debugging and general strategies.

Some Prior Games : https://mrmonline.org/supa-2019-games/

 

Some Example of New Technologies

Front End Frameworks
  • Phaser ( The most popular 4th quarter project topic is to create phaser games housed in a bootstrap based website). There is a great range in complexity using Phaser. See bottom of page for some good phaser resources.
  • Vue
Back End Frameworks for PHP

Example Projects, probable complexity and grade.

The table below lists  example technologies and provides a likely grade for its general description and complexity level. If something is classified as an “add-on,” then it is a way to increase complexity but should .

Often the grades are a “range” because it depends on what, ultimately your project does. Take “vue” for instance. This is a very popular, very modern javascript framework so it can be quite complex, but ultimately it depends on what your program actually does that will determine the final grade.

Technology  Example/ Complexity overview Complexity lvl Grade
Phaser (meh) Edits one of the pre-built games on phaser.io, nothing much new very low C-
Phaser (moderate) Creates one new game, but it is relatively simple (asteroids) and submits 1 page website that uses bootstrap Moderate C+
Phaser (good) Creates completely new complex game (maybe uses physics or other unique coding) moderate-high B+/ A
Node.js/Gulp   Learns how to use nodejs and employs Gulp to improve workflow Moderate add on
 Remote git Learns how to push and pull from remote git repo on github low add-on
 Vue Learns how to use the vue.js framework for javascript development high B /A-
Foundation Learn a bootstrap alternative and create several web pages moderately low C+
Angular Creates a multi page website with the angular .js framework high B/A
Mathjax Learns how to integrate the Mathjax math library for rendering professional looking mathematics low add-on
Vim Consistently edits with Vim . I will quiz you on how to use VIM and I will expect to see you editing with VIM during class moderate add on

List of other utilities and libraries to use:

Notes: these can be combined to add complexity and professionalism. For instance, you can create a multipage website based on Vue and some of the pages can house phaser games that you create. This has the potential of an A+, depending on the Phaser GAME(S).

Not comfortable with Programming? Here is a multi technology example that will get a B-:

This is an example that will get people who are not very comfortable with programming into the “B” range: Learn how to use Foundation, or another bootstrap alternative, and also how to integrate Mathjax to display math equations. You can create a multi page math website full of equations. You could add using remote git or Gulp to get the grade up even a bit more.

Javascript framework comparisons : https://www.codeinwp.com/blog/angular-vs-vue-vs-react/

Other resources

https://emanueleferonato.com/  – Great Javascript game dev site

  • Simple phaser game tutorial using just javascript (no typescript)   here 

https://photonstorm.com/ – same


Sample Proposal

New Technology : Phaser (main) plus using Vim as add-on

Rough Overview

I will be using Phaser.io to develop 2 original complex games, 1 of which will involve phaser physics. Both games will be housed in a simple bootstrap website and will use php and mysql to allow for

  • user registration
  • user login
  • high scores tables to be stored in a database

I will also be actively developing using the Vim editor (to get some extra points)

Deliverables :

2 full games that can be started, paused, re-started, replayed and allow for the user to save his/her scores to a website that they log into. The site will have a mobile friendly design including for game play.

 


 

 

 

Prior Version

SUPA Web 24-25

Last Web class

imageBB

Template Files

Links to Images we use

Bootstrap

Presentations: https://mrmonline.org/bootstrap-presentation/

Bootstrap Themes : https://bootswatch.com/4/

 

Rules Conventions for Variable Names

Employ the rules/conventions below. -1 point  for violating these standards

Variable Name Rules

  • must begin with a letter or $ (Unless you’re using a language like PHP it should be a letter)

Variable Name Conventions

  • descriptive  ( moo  is not a good variable name to represent the number of days )
  • uses camelcase (unless it’s a static variable etc..)
  • camelcase

^^image from https://khalilstemmler.com/blogs/camel-case-snake-case-pascal-case/

Jslider Extra Credit Jeroo Map

 
Description: Pick all of the flowers in the map below  using just 1 while loop
  • However, the loop does not need to end. Meaning after all the flowers are picked it’s ok for the Jeroo to continue to go through the loop and move around forever.
  • However, if you can do it with just 1 while loop  (you can get extra credit). See how Matt k did it
  • Map location: maps-student\mazes\mazes-2\jslider-map.jev
  • Extra Credit amounts :
    • Used 50 lines or fewer = 4 points extra credit
      • Tip : To try to get this few lines of code you will probably need to avoid a custom method for interior of lake.
    • Used  60 lines or fewer   = 3 points EC (that’s a lot)
    • Used  70 lines or fewer   = 2 points EC (that’s a lot)
    • Used 80 lines or fewer = 1 points EC
Current record for fewest lines : 32 lines of code
The Kukai Method
jslider-map-kukai

The Sam Smith Method
uber-map-sam-s

The Hamza Method
uber-map-hamza-solutio

Cody Smith Method

crop-image

Christian’s Bismarck  Solution

bismark