Generally, work will be submitted electronically by:
For each assignment, you will have a corresponding repository in your GitLab account. Add your code or report to the repository. Generally for programming assignments, there should be at least one empty file to add your code to. The README.MD in the repository may provide additional instructions.
To turn in your assignment, create an issue on the repository.
The title of the issue must be set to the game given by the assignment.
Next, apply the Submit label to the issue and assign the issue to yourself.
Make sure to check the box for a confidential issue.
Around midnight, my automatic grading system will pull your code and test it.
If your program passes all the tests, both for design and functionality, your program will be marked with a Passed label.
If so, you are done with the assignment.
If not, you will have to resubmit your assignment by making changes to fix the problem(s) and then reapply the Submit label.
You will have one attempt per day at passing each assignment.
Finally, you are expected to make at least one reasonable attempt before the "due" date.
New assignments are added as the semester progresses. Check back often.
WeeklyEngineering Your Soul (EYS) |
Due 1/23
Analysis 1: Set
The starter code has comments that describe how each method should behave. The Subsets method is a bit more complicated, so I have provided pseudocode for it. Make sure to not alter the method signatures. Also answer the question in the repository's README.md file. You will want to make your own test file, an example is in the repository. Submit your assignment with the issue label set. |
Due 1/30
Analysis 2: Find Minimum |
Due 2/6
Analysis 3: Sorting & Benchmark
sort.Ints. It is also a variation of MergeSort. Compare the four algorithms by creating random arrays of increasing size and plot the results. You will need to determine reasonable sizes for the arrays. Also, note that you may need to run the experiments multiple times and average the sort times to get reasonable results. In your analysis include two graphs of your testing results - one containing all four methods and another that omits insertionSort (be careful with your axis). Discuss of whether the results match your expectations. Do the algorithms reflect their purported average-case complexity? How did your implementations compare to Go's built-in implementation? Your discussion should be several paragraphs in length. Commit your graphs to your repository and make sure to include them in your README.md by using markdown. Submit your assignment with the issue label sort. |
Due 2/11
Program 1: Graph |
Due 2/20
Program 2: Dijkstra |
Due 2/27
Analysis 4: Scaling
Submit your assignment with the issue label scaling. |
Due 2/27
Analysis 5: Dijkstra's Limit & NP-Completeness
Submit your assignment with the issue label limit. |
Due 3/6
Program 3: Spanning Tree |
Due 3/13
Program 4: Greedy TSP: 2-Opt |
Due 3/20
Program 5: Dynamic Programming TSP: Held-Karp |
Due 12/17
Analysis 6: Little Timmy's Reading Plan Find a greedy algorithm that solves Little Timmy's problem and provide pseudo-code for it. Also, write a justification, one or two paragraphs, of why your algorithm will or will not find the optimal assignment. Provide examples or counter-examples for position. Note: you can assume the amount of time Little Timmy has available to read is given as an argument to your algorithm along with a list of books. Each book has a reading level and the amount of time it will take to read it. |
Due 4/3
Program 6: Randomized TSP: Genetic Algorithm |
Due 4/3
Analysis 7: Genetic Algorithm |
Due 4/17
Program 7: Branch & Bound TSP |
Due 4/17
Analysis 8: The Grand Finale |
This page was last modified on 2025-04-10 at 22:14:02.
George Fox University · 414 N Meridian St · Newberg, Oregon 97132 · 503-538-8383
Copyright © 2018–2025 George Fox University. All rights reserved.