CSE 160 - HW5 - Advice from 15sp students: "What do you wish you had known before you started? What would you do differently? What advice would you offer to future students?" -------------------------------------------------------- Since I thought the assignment was short, I didn't expect that I would spend so much time for 3 problems. I should have reviewed the syntaxes using different datatypes, because I was stuck for a question for 2 hours. I wish I knew how to work around dictionaries differently. I had trouble with this. My advice would be to start early, because you want enough time to work on the the last function on problem #2 and #3, those were probably the most difficult. I felt like I had all the tools I needed to do this homework. However, I would advise future students to use functions they already made as much as possible. Again, I just wish I had a more polished understanding of data structure manipulation and function implementation. This is largely due to my own lack of studying, so I would have studied more. My advice for future students is the following. When running into confusion regarding different data types or functions in an assignment, try completely isolating the root of your confusion and making a shell of a program that tests whether or not you understand it. For instance, if I don't understand how to effectively add items to a dictionary in Python, then I would create a program, apart from the context of the assignment with which I'm struggling, and just work through this problem in its most basic form. write down your pseudo code!! I wish I had a better understanding of how each function worked. I would recommend to start early and ask questions as soon as they come up. Read the test more carefully and make clear what the output the function tries to get. Try to write one or two rows to make the function works. I wish I had known more about lists of dictionaries Reviewed how dictionaries work. Read a given code carefully and figure out what your code need to do. I wish I had made a diagram of what each function may generate at last. I would have written down a few of my function paths beforehand, because a couple were a little confusing about what exactly I took in and got out ask TA if you think youre doing it right but its not working --------------------- Part 2: I would suggest to read the questions more carefully. At some points I would just be confused about what to do solely because I misinterpreted the question in some way. "1, write you code on a piece of paper 2, be familiar with all the data structures the assignment gave you, and make sure that you have a good command of all the basic methods. 3, start early~" Advice is to get part 2 done early, like very early. I finished the code for part 2 on monday. Program ran smoothly, but the prediction was wrong. Turned out that one of my functions needed to be ran differently, I was able to fix this within an hour, and be done with it 2 days before the due date. You will face a bigger output problem in part 2 than in part 1. Don't save part 2 to the last minute!! I'm glad I didn't. I found pivoting the dictionary the hardest. I would suggest to future students to try thinking of a way to create a dictionary with values that are empty dictionaries. read carefully, especially the definition of each dictionary I "knew" it but I wished I had practiced it - write the login down on paper first and write the code out Once those two are done, then open canopy and type in code. Make sure you draw a diagram or flow chart of how the data is being extracted or directed The test.py file is very helpful to understand the question and how to implement the codes. Study nested dictionaries and their behavior when you iterate through them with nested for loops I felt most prepared for this assignment out of all of them so far. I got confused in problem 6, because you're calling multiple functions and it's easy to confuse errors, weights and average edge. I write down the code in paper before typing and testing it out in computer. This will help me to get familiarize with the final exams. Know what all the input/output things should look like! It's hard when you're getting errors because you think you're iterating over the keys and really you're iterating over a nested dictionary. Naming is important I think the assignment was pretty straight forward. Reading the assignment carefully helped a lot. Understand what each function definition was asking for and better understanding how to produce the results that involved implementing a formula. I wish I had been more comfortable with manipulating dictionaries. It is a data structure that I feel more familiar with now after the assignment, but was feeling very shaky about before beginning. I would have asked for more help on the message board or office hours. I advise future students to consult resources online about data structures, as particular applications can be quite difficult even if you conceptually understand what task they are supposed to perform and how they operate. We were pretty well prepared for this part of the assignment. That tests are very valuable for testing the data's end user requirements, and printing is good for debugging. -----------------------------------