Florida Southern Seal
CSC 3380: Algorithms
(Spring 2025)

Syllabus

LMS

Teachers

Assignments
Assignments


Other Pages

Project 2:
Florida Sorting College


Assigned: Fri Feb 21 2025
Due: 11:59:00 PM on Fri Mar 21 2025
Team Size: 2
Language: Java
Out of: 100 points


Sorting is a thing that happens a lot. I need to test that you can do it and do it fast! You are not allowed to use any built-in Java sorting algorithms. (E.g. Collections.sort.)

Part 0, 0 points: Look at the instructions below to organize your code to simplify the submission process.

Part 1, 0 points: Create a MySorter.java file and add a void static method, sort, that takes an array of integers and sorts it.

Part 2, 0 points: Add a JavaDoc comment header to describe your project and list who is in your team. Additionally, add a method to your class, getAuthors, that returns a string with the names of all members of your team, like this:

    /**
     * Returns the authors' names.
     * @return  The names of the authors of this file.
     */
    public static String getAuthors() {
        return "Anne Borgin and Kyle Burke";
    }

Part 3, 0 points:

You'll need these files in order to run the tester:

Part 4, 100 points: Your grade will be based on the longest arrays you can correctly sort in a restricted amount of time. Here is MySorterTester.java that will run your code on growing arrays. Important notes:

  • If any of the tests produce the wrong answer, you won't get any points.
  • Testing runs you try yourself do not give an official grade; you'll need to submit and have me run them for that.
  • When testing on your own, you'll need to enable assertions. In the command line, you can do that with the -ea flag: java -ea ClassToExecute If you're using an IDE, you'll have to look online to figure out how to enable them.

Part 5, 0 points: I strongly recommend starting with easy-to-code sorting algorithms, then adding faster sorts as you go.

Part 6, 0 points: I expect that you'll need to use multiple threads to earn maximum points in the project. Hint: the computer I'm grading on has 16 CPUS.

Submitting your Project:

The files I'm looking for in this project are:

    Pick a team name (all alphabetical characters) for yourself that no one else will choose. (Using your names makes it easier for me, e.g. if I worked with Anne Borgin, our team name could be BorginAndBurke.) Put completed working files you have directly in a folder (no subfolders) named <YourTeamName>Project2, then zip the folder and upload the resulting .zip file to the assignment's canvas page so I can grade it. (E.g. BorginAndBurkeProject2.zip.) If you do it before the deadline and want me to run it through my tester to see how it does against the random players, send me a message and I'll do it. If you upload it after the deadline, please send me a message so I can grade it ASAP. Please please please name the folder correctly, then zip it; don't rename the zip file, or you'll have to resubmit and may incur a lateness penalty.