I am extremely excited to hear that, as of today, our TAs are finally off strike and we can all put our fears of changed marking schemes to rest. I find this especially relieving in working on assignment 3, knowing that it will indeed be marked at some point.
More on assignment 3, I can finally say that I have successfully implemented each optimization for minimax and I couldn't be more excited. It took me several days of deep thought and nights of madly tapping at my keyboard to fully understand the pruning algorithm but at 3 am today, my hard work payed off. I'm certainly not done with commenting and cleaning up my code but I must say that this assignment has been the most effective exercise for my learning that I have completed in this course. I really felt that I could put everything we have been taught, as well as the problem solving skills developed in past labs and assignments, to good use in strengthening my Computer Science toolbox.
With regards to course content I have not found ideas involving big-Oh to be very difficult so far, but deriving formulas for the number of steps executed in a function has always been my weakness. In order to combat this, I will be looking over my notes from CSC165 this weekend as well as completing Lab 10. Moving on, I have found our discussion on testing with assertions and unittest to be very useful in A3 in verifying the correctness of my strategies. I was able to extensively test StrategyMinimaxMemoize and StrategyMinimaxPrune with a heavily modified version of the test file we were given in the week 9 lab, but on second though it may have been a good exercise to write the file from scratch. I think after spending this weekend working on the small issues in understanding I have, my final week of this course will be exceptionally enjoyable as always.
Friday, 27 March 2015
Sunday, 22 March 2015
Assignment 3 and Labs
This past week has been incredibly hectic for me with the effects of the TA strike on this course. Unfortunately I have been unable to complete lab #9 this week and will have to work on it some time next week along with lab #10. With the work that I have had a chance to put into lab #9 I must say that I am quite confused. The file "bt_functions.py" imports BTNode from a file we were not given, I copied the BTNode class we were shown in lecture and attempted to use this for the lab which gave rise to a whole new set of problems. Comparing two BTNodes for equality is proving to be rather annoying as there is no __eq__() method in the BTNode file posted in Diane's lecture materials, I get the impression that I should not need to use it. This being said, I cannot think of another way to assert the equality of two nodes. To anyone reading this, do you think I should just write an __eq__() method for BTNode, or is there some other way to proceed with the lab?
Moving on to Assignment 3, I have chosen to work on option A and I'm extremely excited to build off of my minimax algorithm. My partner (Saman) and I have decided that, to make the most of our learning in this assignment, he will be working on option B. Our idea is to meet up after we have both completed a version of the assignment and to compare, deciding who's might be better to hand in. We have both made great progress so far, I have already implemented the memoization and myopia strategies and am now just trying to make sense of the description for "pruning". I think this assignment has been and will continue to be extremely effective in both testing my previous knowledge of recursion and helping to develop my confidence in writing more complex recursive functions. I feel that even if the TAs continue to strike and this assignment goes unmarked, it will certainly be a fantastic exercise in preparing all of us for the final exam.
Somewhat unrelated, I've had this song stuck in my head during all of my work on A3... I think it's fitting.
Somewhat unrelated, I've had this song stuck in my head during all of my work on A3... I think it's fitting.
Friday, 13 March 2015
Second Test and BST Mutation
After much reflection and conversing with other students about our second midterm, I feel that each question was exceptionally fair to the material we have studied so far. As I have posted about in the past, I try not to estimate my grade before I receive a marked test back but I felt reasonably confident with each question. This being said, I am concerned that I will not be able to see a marked copy of my test due to the TA strike. The impending modification of this course due to a lack of staff might also greatly impact my study strategies of reviewing previous tests and assignments, ultimately effecting my final exam grade. Perhaps worse, I worry that I may never see a grade for my beloved minimax.py on Assignment 2.
With regards to course content this week, I have found this idea of binary search tree mutation conceptually quite simple however, the implementation of the insert function was deeply disturbing to me. Even after reading the posted code (from Diane's lecture materials) I was still quite confused about how each case was being handled. My fears were quickly put to rest after completing the exercises in Lab 08, where I spent much time becoming comfortable with these tree mutating functions. Not only this, but I spent much time playing with all of the code in order to test my knowledge, especially for the "balanced_delete" function. I had no issue with the rest of the lab except for the question asking "Can you improve the height in some way?". I am confused by the question, is this asking if we can lower the height of the tree? Or is it asking if we can somehow modify the code for the height method in order to improve its efficiency? If the latter was meant, then I am not sure how to proceed as the code for the height method appears (to me) to be as efficient as possible. I will be asking about this on Piazza but to anyone reading this who knows, please let me know in the comments.
With regards to course content this week, I have found this idea of binary search tree mutation conceptually quite simple however, the implementation of the insert function was deeply disturbing to me. Even after reading the posted code (from Diane's lecture materials) I was still quite confused about how each case was being handled. My fears were quickly put to rest after completing the exercises in Lab 08, where I spent much time becoming comfortable with these tree mutating functions. Not only this, but I spent much time playing with all of the code in order to test my knowledge, especially for the "balanced_delete" function. I had no issue with the rest of the lab except for the question asking "Can you improve the height in some way?". I am confused by the question, is this asking if we can lower the height of the tree? Or is it asking if we can somehow modify the code for the height method in order to improve its efficiency? If the latter was meant, then I am not sure how to proceed as the code for the height method appears (to me) to be as efficient as possible. I will be asking about this on Piazza but to anyone reading this who knows, please let me know in the comments.
Friday, 6 March 2015
Linked Lists and Labs
As I'm sure everyone has noticed, this week has been nothing short of crazy for students in almost all programs at U of T due to the TA strike. It seems that my normal study strategy of completing lab exercises alone at home has made this week far easier for me. This being said, I am aware of several students that have had issues with this lab without the support of our TAs. I feel very strongly about all of us students helping each other in every way we can and I will be posting my work for all exercises every week. My solutions to this week's lab can be found here and, as always, I am very much open to constructive criticism. This slogger is doing the same (I am not sure of their name) and I have found it very useful going over their solutions to compare with mine.
Moving on, I have found the course content this week to be relatively straightforward. This idea of Linked Lists seemed quite natural to me and, as mentioned previously, I did not find the lab exceptionally difficult. I must say that I greatly enjoy topics such as this that include everything in my CSC148 toolbox and allow me to really test my learning. Speaking of testing my learning, Assignment 2 was due this week and despite the last minute changes to our starter code, Saman and I were able to hand everything in several hours early. I would like to post my code for the Minimax strategy (I'm very proud of it) but at this point I believe people can still hand in late assignments so perhaps I will make my code available in this post at a later date.
EDIT: My strategy_minimax code can be found here
Moving on, I have found the course content this week to be relatively straightforward. This idea of Linked Lists seemed quite natural to me and, as mentioned previously, I did not find the lab exceptionally difficult. I must say that I greatly enjoy topics such as this that include everything in my CSC148 toolbox and allow me to really test my learning. Speaking of testing my learning, Assignment 2 was due this week and despite the last minute changes to our starter code, Saman and I were able to hand everything in several hours early. I would like to post my code for the Minimax strategy (I'm very proud of it) but at this point I believe people can still hand in late assignments so perhaps I will make my code available in this post at a later date.
EDIT: My strategy_minimax code can be found here
Subscribe to:
Posts (Atom)