Friday 5 April 2013

Final Post!

This is it, the final entry into this blog. The final entry into the first ever blog I've kept. It is one of the interesting new things I did for this course.I have to say, while I am not really the blogging type and I will probably not keep writing a blog, this was a useful experience in a world where a lot of people seem to love the blogosphere. So in a way I can claim this course briefly got me a bit more up to speed with the times.
Another new thing I did, which I did not enjoy so much, was Wikipedia. I have voiced this opinion before here so I'm not going to go on about it for very long. Suffice it to say that when it comes to Wikipedia I'm suffering of the free-rider problem. I like having Wikipedia around to rely on, but I did not like actually changing it myself so much.
While I'm on this subject, among my favorite parts of this course were the two projects. I simply loved working on them. I found them fun and engaging and I found they reflected the course material excellently. I also enjoyed the fake sense they gave me of being a computer programmer, which was nice even though as I've said before I don't know the first thing about programming that is not at a completely basic level. Also, I personally found the first project to be more intellectually stimulating and in a way more fun than the second one, simply because there was more to do in it and the concepts it was dealing with were more attractive.
This is quite strange in a way, because the second project dealt with recursion, and I simply loved all the parts of this course that had to do with recursion and the reasons for it have been expressed in another post.
All in all, I'm very happy I made the decision to enroll in this course. It was hands down one of the best courses I've ever taken at U of T. It was in many ways useful as computers are becoming more and more heavily involved in our lives. It was quite informative about a lot of things I only had superficial knowledge about too. In a lot of ways it was a very welcome break, or change of pace, a breath of fresh air from the other, standard university classes. Something new then, that not only breaks the routine but gives you new information too. What's there not to like about that? I would definitely recommend this course to anyone. It truly was a great experience, one of those few courses you actually feel sad when they end.

Friday 22 March 2013

Wikipedia (again) and Recursion

Today was the deadline for the last part of the Wikipedia project. Honestly, I cannot say this has been one of my favorite parts of the course. However, it certainly has been instructive. Now I have a better understanding of the way Wikipedia works and of the process that goes into creating one of the articles. In that sense my feeling is that this was a helpful and useful learning experience. I hope I have done a good job. I personally think that I did, but it is really hard to be a good judge for something you have never done before.
On the other hand, one of my favorite parts of the course so far have been recursion exercises. I did get the hang of them fairly quickly and I enjoy working on them. I also find them to be mentally stimulating to a certain degree. One of my favorite parts about them is trying to figure out and predict what a certain code will create for big numbers, as for example in (t 10). Sometimes this is easy and straightforward, but other times it is not. Since my career is most likely not going to involve computer science, this is for the moment the only use I have of them, but the simple logical concept behind recursion can also be used to solve some everyday tasks that would be harder or more tedious to solve using other methods. And this is another reason why I like recursion. I like the core concept behind it, the concept of making a hard/long task a lot simpler just by repeating the same simple process over and over again.

Friday 15 March 2013

Test 2

I have not much to say about this week. Everything is going well with the course, and I am happy with my choice. The material is getting more and more interesting, the assignments are going smoothly and I overall feel this is a good learning experience. Test 2 was this week. I think it went pretty well. In fact I think it went better than the first test, in which I did really well too. I am going to start focusing a bit more on the final Wikipedia assignment now, just so I get a bit ahead with it as the end of the semester is going to be really busy.

Friday 8 March 2013

Project 1

This entire week I've been working on the first project. As I've said before, the project was a very interesting assignment. I liked working on it, especially on the ball. One reason for this might be that I completed the ball fairly easily and with no problems. I got it to bounce around and respond to key presses without encountering any major problems.
I am however having a problem with the ecosystem. The problem seems to be at the function to update the ecosystem. I have written the function as described by the expression, however the problem is that the ecosystem only seems to update once, and not repeatedly every second as it should. I have seen on Piazza that many other students are encountering the same problem. So far I have not been able to come up with a solution, even though I have tried to write the update function in different ways. The end result seems to be the same, the ecosystem updates once, then stops and DrRacket happily tells me that all the tests have passed. It is quite puzzling. The first update seems to be accurate, but everything stops after that. I am not ruling out that it might be a problem with my DrRacket or my computer somehow, although in the case of the bouncing ball everything seemed fine. I also double-checked the big-bang code and everything seems to be fine with that.
Everything I've tried so far does not seem to work. I am confident all my codes are correct (DrRacket at least approves to this to some extent when it comes to the check-expects) but I am at a loss to explain what might be causing this defect. I will for now keep trying, but I feel I am running out of options.
UPDATE
I have finally figured it out, and yes, it was a problem with my codes. My initial code for the update used the MICE-START and FOXES-START number as the number of the mice and foxes in the ecosystem. For some reason, I had decided that the (ecosystem-foxes and mice eco) was unneeded. I was thinking, DrRacket is doing the initial update as it is supposed to. So then why does it not keep updating the ecosystem? The problem of course was that MICE-START and FOXES-START were just two numbers, the initial numbers. DrRacket should do an update after 1 second, and then whatever number comes up for both foxes and mice has to be the new number of mice and foxes in the ecosystem. DrRactket then feeds this number into the next update, does the calculations again and so it goes on. Using FOXES-START and MICE-START was really disingenuous in this way, because those numbers do not update. They are just the initial numbers, so DrRacket was not updating just once, but when it was feeding the FOXES-START and MICE-START numbers back to the update function nothing was changing. DrRacket was then updating every second, but the update was similar to the one before. That got me thinking there has to be another way of doing this, these numbers are just the start numbers, they are not the number of foxes and mice in the ecosystem at any given moment. So I went back and downloaded the starter code again which reminded me of the the (ecosystem-foxes eco) and (ecosystem-mice eco) that I had previously deleted, and that's when the light-bulb came on. I just switched those in place of FOXES and MICE-START in my code and now everything works. Finally.

Thursday 28 February 2013

Back to work

I'm back after missing a couple of posts due to travelling for reading week. Reading week was quite relaxing, but now is time to focus on the tasks at hand once more. The workload comes thick and fast at this particular time of the year for a university student, and CSC104 makes no exception.  The second part of the Wikipedia assignment is due this week, while the first project is due next week.
The first project seems to be quite interesting. When I first looked at it, waiting for a delayed flight at an airport, I must admit I thought it was quite hard. I've had a couple of more looks since and now I think it is not very hard and it is going to be enjoyable to work on. Besides, between useful DrRacket tools like the stepper and examples of similar completed definitions in the project itself or the lectures, I think I should be able to figure it out.
The most tedious assignment is turning out to be the second Wikipedia one. The reason is that I cannot figure out how I am going to indicate that I have read the learn how links without making the plan look and sound incredibly artificial. I have, more or less, figured out what I want to do with my article. I have also consulted various helpful links in Wikipedia. The next step now should be writing the plan, but this is where I'm having trouble. My problem is I cannot think of a seamless way to combine the two. The main concern is that the plan is going to look and feel too disconnected, because I will have to go out of my way to show that I have read the learn how links and other resources such as the Wikipedia Manual of Style. As of the moment of this writing I have not yet come up with a solution to this conundrum. Hopefully though, by tomorrow at 11:59 PM I will have found a way.

Saturday 9 February 2013

The blizzard and the test

This week there was the first term test for the course. I was a bit nervous in anticipation of it initially (as with every exam or test or any other way of direct performance assessment). When I first got the test in class and had a quick look at it the first impression I got was that the questions were not hard but it was going to be long. I thought I might struggle to finish in time but in the end it turned out quite well. I was very happy with how I did and I am expecting a good mark on it.
The other good thing related to the test was the fact that there were no tutorials this Friday. I am not saying this as a disrespect to tutorials, but the lack of them this week allowed me to stay inside during the massive snow storm that hit the city, during which, for some reason that I'm sure appeared good enough to the powers that be at the university, ours was the only university that remained open in Toronto, at least for a good portion of the day.
So there you have it, two good things inside a single week coming from a test. Who would have guessed?

Thursday 31 January 2013

Third Week

Wikipedia! That has to be the key word for this week. Not only because the first part of the Wikipedia assignment is coming up but also because this week got me to learn new things about one of the most famous websites in the world (probably). I knew the way Wikipedia worked generally, I knew it is essentially a community-driven portal. However, before two or three days ago I really had no idea on how it really functions, how much work it actually takes to contribute to Wikipedia.
Before this week, I thought it fairly easy for someone to log in and correct an article, find a picture to post or update some information. In fact, several times I have wanted to click the little links saying things like "add a citation" but have only stopped once being presented with the account creation screen. It just was not worth the time. After all someone else could do the job just as easily, right? Wrong. Indeed, looks can be deceiving. Upon closer look I realized that things are not necessarily as easy as they first seem to be. If a citation is not there it is most likely because it is so hard to find a reliable source to cite from. If a picture has not been uploaded chances are that it might be a very rare picture which is not readily available for anyone. 
Then there was the problem of finding a viable article or two to work on. I thought that it would be easier and more fun if I were able to find an article in a field that interests me and in which I have some knowledge. However, after an hour scrolling through the "Help out" section my hopes had taken a dent. It is not easy to find articles dealing with any big themes, events, personalities or products that need to be revised or updated. Even articles on things such as recent sporting events had been impeccably updated. In fact, the whole exercise forced me to reverse the usual roles. I was not the guy looking to find something on Wikipedia anymore. I had become the guy that needed to find what was not on Wikipedia, and then add it. Easier said than done. You simply cannot just go on Wikipedia and write on the first thing that comes to your mind, because someone else has already done that
So I had to change my tactics. I switched from looking for articles dealing with big themes or events to articles talking about smaller component parts of those themes/events. I also stopped looking for them in the lists of thousands and thousands of articles needing help in Wikipedia and started to Google the articles I'd be most interested to work in, hoping they would have the "help needed/suggestion" banners at the top. It took a while but in the end I was able to have some success. I came up with a list, but I am still a bit worried that some other Wikipedian will get to those articles before I do. In that case, we're back to square one. Fingers crossed...