- 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 = Max 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 100 lines or fewer = 1 points EC
- Used 50 lines or fewer = Max credit
Category Archives: Computer Science
Variable Instantiation and Declaration in Java
These examples relate to the ClassRoster assignment
Instance variables should be declared private at the top and should be initialized in the constructor.
PlayList Java Project 2022-23
A Note on plagiarism
If you hand in work that you can not explain, it is considered plagiarism. Let’s not go there please. Remember- we follows Syracuse’s academic guidelines . If you use someone else’s work for a portion of the assignment, you will get a zero for the entire assignment. Additionally, if a person in the class gives you the code, that other person also gets a zero.
Project Overview:
A PlayList project will be based on 3 Classes
- Artist
- Song
- PlayList
The Artist class will store core information about an artist.
The Song class will store basic information about a song.
The PlayList class will manage a list of artists and their ratings.
Tester files:
- Artist and Song tester file SongArtistTester.v0 – run this after you have completed the Song and Artist classes and before PlayList. This way, you’ll know that you have correctly done the the foundation classes before moving onto PlayList
- PlayList tester File : PlayListTesterv4
- At the very bottom, are 2 challenging extra credit methods. If you decide to do either one, you must meet with me to go over the code you submitted.
- Additional grading penalties for the following issues :
Penalties :
- does not compile : -5
- instance variables not explicitly declared private : -1
- not following strict OOP conventions for initializing variables . Read more here.
- lack of code reuse (-1 per occurrence)
- non descriptive variable name including loop index counters etc : ( -1 per occurrence)
- not using camelcase for variable names (-1)
- int division -1
- failure to name a method or class exactly as indicted (-1 per occurrence) – which is a real thing . You will generally work in teams and be expected to use exact spelling/capitalization.
The 3 classes in Detail
Artist
- Constructor(s) :
- public Artist(String name)
- Instance Variables
- private String artistName ;
- private ArrayList<Song> songs ; – an array storing the songs of this artist
- Methods
- public void addSong(Song song) . Add the song to the arraylist.
- public String toString()
- public boolean equals(Artist other) //returns true if artistName is the same as other’s artistName
- public ArrayList<Song> getSongs()
- public String getName()
Example of instantiating an Artist object and calling one of its methods:
1 2 3 |
Artist redHotChilliPeppers = new Artist("Red Hot Chili Peppers") ; redHotChilliPeppers.addSong( new Song("Snow") ); ArrayList<Song> chiliSongs =redHotChilliPeppers.getSongs() ; |
Song
- Constructor(s):
- public Song( Artist _artist, String _name)
- Instance Variables
- private Artist artist
- private String name
- Methods
- public String getName()
- public Artist getArtist()
- public boolean equals(Song other) //returns true if both the song objects have the same artist and name.
- public String toString()
Example of instantiating a Song object :
1 2 |
Artist redHotChilliPeppers = new Artist("Red Hot Chili Peppers") ; Song underBridge = new Song (redHotChilliPeppers , "Under the Bridge") ; |
Before you do the PlayList class, run the Artist/ Song tester (see top ^^)
PlayList
Read this to make sure you’re doing variables correctly.
- Static Variable
- public static final int MAX_NUMBER_SONGS = 12 ;
Instance Variables- private String listName ; This is the ‘name’ of your playList
- private ArrayList<Song> songs ;
- private ArrayList<Integer> stars ;//how many stars each song has
- Note: songs and stars are parallel ArrayLists
- Constructor
- public PlayList(String name) : There should be only 1 constructor that takes a parameter representing the name of the playList. Read this
- Accessor Methods
- public double averageRating() // returns the average star rating for the list
- public ArrayList<Song> getSongs() // returns the songs
- public double averageRating(Artist artist) // returns the mean star rating associated with artist
- public Song[] getSongs(Artist artist) // returns an array populated by the songs of parameter artist
- public ArrayList<Artist> getArtist(String songName) // returns an ArrayList of all Artists associated with the String songName (This could be multiple musicians. Cover songs etc..)
- private int indexOf(Song someSong) // code reuse, hint hint. ie This is the method that you should use elsewhere any time you need to find an index.
- public String toString() //returns an appropriate String representation of the PlayList . Here is an example of the toString() value for a PlayList I created.
- public String getName() // @returns the listName of the PlayList
- public ArrayList<Integer> getStars() //returns the stars ArrayList
Mutator Methods
- public void swap(Song song1 , Song song2, ) // switches positions of these two (maintain parallelism!)
-
public boolean add(Song _song , int _stars)
//adds data if number of song is less than MAX_NUMBER_SONGS - public void removeSong(Song song) /removes all occurrences of song . There could be multiple instances of song. Maybe someone really likes a particular song and has it several times in one list. (Hint : Do not loop forwards)
- public void removeArtist(Artist artist ) //removes all elements associated with artist
- public void removeLowStars(int cutOff) //removes all elements associated with a star rating less than or equal to cutOff
The 2 method’s below are extra credit. If you figure out how to do them, you must also meet with me after school about the methods. To receive the extra credit, be prepared for a mini-quiz on how they work . You will need to do some research to figure out how to do them. Be prepared for me to ask about your solution and how changing certain parts of your code would affect your solution.
- **
public PlayList sortByRating() //this returns a rearranged playlist so that the 5 starred elements are the first group in the list, 4 stars second …1 stars, last
- To do this , you should use a sorting algorithm. I suggest, Selection Sort (link). As this both intuitive and on the AP.
- ** public PlayList shuffle()/ /this returns a new PlayList in which all of the songs have been reordered randomly
When you’re done this, begin exploring different sorting algorithms with this online sorting detective :
https://labs.penjee.com/sort-detective/
How to Access 1 digit at at time of an int in Java
How to access each digit in an int in Java
1 2 3 4 5 6 7 |
int n ; // some integer while ( n > 0){ int digit = n % 10 ; //ones place digit print(digit) ; n = n / 10 ; // now the ones place by int division } |
Array Fun 3 [Resizing] Version 2
ArrayFun3 - Please call your class that , exactly. Yes, you will lose a point for not following this simple specification.
- use meaningful variable names
- use camelCase for variable and method names
- use i as the variable name for for-i loops . Remember – programming is generally done in teams so your code should be as expressive as possible. Use conventions to convey meaning, not cause confusion.
- do not use i as the variable name in for-each loops. Again, this would be misleading and imply you’re using a different type of loop.
- do not import any external libraries . All solutions can be done by making use of variables and arrays and some basic math ; nothing more is needed.
int[] removeZeroes(int [] nums)
Description: This method returns a version of nums in which all occurrences of 0 , zero, are removed
Method Call | return value/output |
noZeroes( { 3 , 4, 0, 1} ) | { 3, 4, 1} |
noZeroes( { 0, 5 , 0, 0, 9, 0, 1 , 11} ) | { 5,9,1,11} |
String[] removeNulls(String[] strs)
Description: This method returns a version of strsin which all null values are removed. Note:
int[] digitsToArray(int n)
@precondition n > 9
Description: This method takes each digit in the integer n and stores it in an array in reverse order, as shown below. First, make sure you understand the code here. , which btw, testers had to figure out , on the fly, in a previous AP A test.
int[] removeLeadingZeroes(int[] nums)
@precondition nums.length >=2
Description: This method returns an array in which all elements that meet the 2 criteria below are removed.
- the element has a value of 0, zero
- the element’s index is less than the index of the first element whose value is not zero.
int[] doubleUp( int [] nums, int val)
@precondition nums.length >=2
Description: This method returns a version of nums –with all occurrences of val duplicated.
Method Call | return value/output |
doubleUp( { 3 , 4, 0, 1} , 4 ) | { 3, 4 , 4, 0, 1} |
doubleUp( { 1, 3 , 1, 5 , 3, 3} , 3 ) | {1 , 3, 3 , 1, 5 , 3, 3, 3, 3 } |
Similar problems on codingbat
CMU Unit 3 Creative Task
Unit 2 Extra Credit
In addition to the required Unit 2 Creative Task, if you want some extra credit, you can do the following assignment:
Research how groups work in CMU ( see the docs)
Write a program that
- includes two functions
- minimum of 5 objects
- A group comprised of at least 3 objects
- One of the functions must change the properties of all things in the group.
You can write this in one of empty creative a tasks.
CMU Unit 2, creative task – mousepress mousedown
For this creative task,
This is a 10 Point assignment:
To get 9 points:
- minimum of 2 shapes
- minimum of 2 functions
- 1 must be a mouse function (mousePress, mouseMove, mouseRelease)
- the other function can be any function at all
- one of the functions must change a property (fill, width etc) of the shape
To get the 10th point,
Research how groups work in CMU ( see the docs),
- Use a group comprised of at least 3 objects
- 1of the functions must change the properties of all things in the group.
Bs4 template
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script> <title>Hello, world!</title> </head> <body> <h1>Hello, world!</h1> <!-- Optional JavaScript --> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> </body> </html> |
SUPA – Web 2022-23
Quarter 4 project
Prior iterations : https://mrmonline.org/supa-2020/ , https://mrmonline.org/web-design-programming-18-19/
Templates
Bootstrap
- https://getbootstrap.com/docs/4.5/ — Official Bootstrap 4 website
- Bootstrap 4 Cheat Sheet
- Bootstrap presentations
- Bootstrap 4 @ www schools
- Other good links for bs4 topics
- Centering Content
- bs4 Utilities (nice summary by w3schools)
- Bootstrap grid
Vim