-
Notifications
You must be signed in to change notification settings - Fork 31
Programming Portfolio
mrseidel edited this page Aug 29, 2024
·
1 revision
This is a culminating project worth 10% out of the 30% final.
You'll want to gather up the Walk-through portions of your submissions for Data Structures and Algorithms. You'll also need your Recursion submission to complete the following work. Within that information, you'll want to find specific examples on:
- Documentation for classes and extending objects concepts
- UML diagrams
- Classes and Objects
- Extending Objects
- File input/output
- Sorting algorithms
- Searching algorithms
- Recursion
Day 1 will focus on your Data Structures assignment.
- Reading through the documentation that you created for your classes and extending objects work, if someone else were reading through your documentation, what ambiguities exist? Where could you have been clearer in your descriptions/parameters/return value information?
- Find an exemplary example of documentation relating to either class documentation or method documentation. The example should include at least one parameter and one return value. What makes the documentation example that you chose an exemplary one?
- How comfortable would you be if you were asked to create a UML class diagram to represent a video game? Explain your reasoning.
- There are a lot of different types of UML diagram out there. Another one that is used frequently is a UML Sequence Diagram example here. How might such a diagram have proven useful for the planning stages of your Data Structures program?
- What difficulties did you encounter when creating classes and objects? How did you overcome those difficulties?
- What more do you have to learn about classes and objects?
- Will you ever use these concepts? Why or why not? Explain your reasoning.
- Which concept did you not use in your submission? How could you implement it into your program now?
- If you worked in a language that supported both interfaces and abstract classes, why might you use an interface over an abstract class?
- If you were to connect an API to your Data Structures program, which API would you choose and how would it be beneficial to your program?
- If you were receiving data from someone, would you prefer to receive it as (a) an SQL query response, (b) in JSON format, or (c) in XML format? Why?
- In the software industry, when might people output data to text files instead of using something like SQL/JSON/XML?
Day 3 will focus on both your Algorithms and Recursion assignments.
Using the examples that you found above for sorting, searching, and recursion, complete the following using any medium of your choice (e.g. word-processing document, slideshow, etc.):
- Sitting in front of you is a real-life physical bin full of spherical candies. Each candy is one of ten colours. There is an equal amount of each colour in the bin, but there is an unknown total quantity (50, 580, 1110, etc.). If you had to follow a sorting algorithm to physically complete the sort, which sorting algorithm would you use to sort by colour? Why? Justify your response. Here is a list of sorting algorithms to help guide your thinking.
- Given that
quick sort,merge sort, andheap sortare all O(n log n) average-case sorting algorithms, when might I use one over another. Mention all three in your response. Justify your response.
- There is another search called
ternary search. When might you use this algorithm over binary search or linear search? If you do not think you would, why not? Justify your response. - You've lost a personal item (i.e. phone, book, etc.). Create a searching algorithm to describe how you would search for your personal item. If you had to write out the algorithm in programming terms, what would it look like? What would be the Big-Oh worse-case scenario of your algorithm. Hint:
linear search,binary search, andternary searchare not good searches for you to use.
- A problem with recursion is the stack overflowing (or maximum recursion depth being reached). How might you work around this problem while still using recursion? Justify your choice. Note: Increasing the recursion depth or using an iterative solution are invalid responses.
- Using the following recursive function, edit the code to display the answer in the console as a visual representation of the output. Example below.
# Code will show up at a later date, closer to the date we complete this task.
Output:
# So will the outputThe specific goal(s) for this Data Structures and Algorithms culminating task include:
- Use proper code maintenance techniques. 📙
- Design and apply modular programming concepts including complex data types. 📙📙
- Design, write and analyze complex algorithms and subprograms 📙📙📙
| Goal | Success Criteria | Level |
|---|---|---|
| 📙 | I can create fully documented program code according to industry standards. (Day 1) | |
| 📙📙 | I can reflect and synthesize the use of UML diagram. (Day 1) | |
| 📙📙 | I can apply the principle of reusability in program design (i.e. in modules, methods, classes, inheritance, etc.). (Day 2) | |
| 📙📙 | I can read from, and write to, an external file (i.e. database, API, text file, binary file, etc.). (Day 2) | |
| 📙📙📙 | I can create a sorting algorithm to sort data. (Day 3, Sort Q1) | |
| 📙📙📙 | I can compare the efficiency of sorting algorithms, using run times and computational complexity analysis. (Day 3, Sort Q2) | |
| 📙📙📙 | I can create a search algorithm to find data. (Day 3, Search Q1) | |
| 📙📙📙 | I can compare the efficiency of a search algorithm using run times and computational complexity analysis. (Day 3, Search Q2) | |
| 📙📙📙 | I can design a simple and efficient recursive algorithm. (Day 3, Recursion Q1) | |
| 📙📙📙 | I can identify common pitfalls in recursive functions. (Day 3, Recursion Q2) |