Sunday 1 December 2013

Privacy and the Internet

I think its interesting to think about how twenty years ago the idea that one could be save in knowing that to most of the world, you were anonnymous. The life you lived was private and only those you interacted with in person knew personal information about you. With the internet now being ubiquitous in modern society, the privacy of the individual has been greatly eroded.

The internet has helped to foster a global age, it brings people from all across the world together in ways never before thought possible. The many positive benefits that this inter connectivity brings to society are counter balanced by several important drawbacks. The ease at which information is shared online is a double edged sword. What you say and do online has the potential to be seen by millions if not billions of people. This risk is compounded by the fact that to most people, what you do online is anonymous, as you are doing these things usually from the privacy of your home.

This conflict between the expectation that one's actions online are private and the reality that virtually anything one says, does, or visits can be recorded and tracked is one that is still being worked out in the minds of the general public.  One of the most intrusive ways privacy is compromised online I feel, is via the targeted ad profiles that are created for individuals based on everything you do. Google's ad-sense is a perfect example of this. We use Google's products online everyday and we seldom think about the fact that they are collecting private information about our habits and interests and transforming this into a profile to target ads to. It is very easy to look at these practices and foresee a future where our online presence is just as public if not more than our real life one.

Wednesday 27 November 2013

Man Programing can be Frustraiting!

In my efforts to finish the second project in this course I ran into some serious difficulty at first. I had forgotten some of what i had previously learnt about structs and so when the time came to use this part of my knowledge to finish the assignment i hit a wall. Thankfully, due to the numerous sources available to me I was able to work through my problems and finish the work. I ended up having to use a wide array of different sources of information to help me wrap my head around what i needed to do to make the program do what it was supposed to. First I refereed to the video tutorials Danny had made involving anything to do with structs. I was looking for the different commands that he used and the proper syntax to make them work correctly. This unfortunately did not give me the proper understanding i needed to apply them to the problem in the assignment. I next looked at the Dr Racket website where i used the search command to look up various commands to see examples of their use and other related commands. Afterwards I looked at Stephen Block's Picturing Programs to both look at example problems and the way in which they should be tackled and also for a much more thorough description of the way the commands work. With all this help I finally had a moment where suddenly the information all just clicked together and I had a moment of clarity.

Tuesday 19 November 2013

Finding Solutions to Complex Questions

In class last week we were given a question problem where we had to come up with a solution to finding the greatest possible product from the sums of a number. I decided to try and come up with a solution for this question. The first thing i did was try to  look for any kind of pattern in the first few numbers in the sequences.
starting with 1, and increasing upward the best set of sums to multiply are:
1, 1
2, 2
3, 3
4, 2 + 2
5, 3 + 2
6, 3 + 3
7, 3 + 2 + 2
8, 3 + 3 + 2
9, 3 + 3 + 3
10, 3 + 3 + 2 + 2

I began to notice something, 3 and 2 seemed to be the numbers you wanted to use for getting the highest possible product. I hypothesize this has something to do with exponential multiplication in that the more you can multiply the numbers by anything higher than 1 the better overall. To then see if this held true for larger numbers i examined 30 to see if what i thought would be the right combination would turn out ot be true.

30, 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3; product of 59049
I am not going to write out all the other possible combinations, but  i will look at a few
30, 5 + 5 + 5 + 5 + 5 + 5; product 15625
30, 10 + 10 + 10; product 1000

There appears to be a correlation between product and the number of multiplicands there are in the sum.

With this information, i thought i would try and make a racket program that could give you the  highest product for any given positive whole number.

This is what i came up with:

; prod : number -> number
; takes a positive whole number and displays the greatest possible product that can be made from the sums of the number
(check-expect (prod 2) 2)
(check-expect (prod 5) 6)
(check-expect (prod 30) 59049)
(define (prod x)
  (cond
    [(or (equal? x 1)  (equal? x 2) (equal? x 3 )) x]
    [(> x 3) (cond
               [(equal? (remainder x 3) 1) (* (expt 3 (- (quotient x 3) 1)) 4)]
               [(equal? (remainder x 3) 2) (* (expt 3 (quotient x 3)) 2)]
               [(equal? (remainder x 3) 0) (expt 3 (quotient x 3))])]))


Wednesday 13 November 2013

Preparing for Tests

The process of preparing for tests always bothers me in courses where definite answers are required. The majority of my courses at university have been in the humanities and as such, they tend to be much more open ended in the questions they ask. Sure there are word definition sections, but even something as black and white as a definition can leave much room to interpretation. Taking tests in courses where either you know the answer or don't are naturally frustrating to me. In this course, if I come across a question in relation to programing that i don't know (say i don't recall what one of the functions does) odds are i am not going to be able to just extemporize and hope to at least touch on some subject points that will get me at least partial credit. This is one of the reasons i did not pursue a degree in the maths and sciences, i am much better at open ended questions than i am at definitive ones.

My best hope is to simply review the course work and re do the practice examples for the various functions and commands we learn and hope that i don't suddenly forget what they all mean when i look at them on the test paper. I am glad that the tests in this course are more a mix of programming and the "history of computers" as at least with the latter there is some room for imaginative answers.

Wednesday 6 November 2013

Challenging Assignments

The latest assignment, the one involving the completing the sneeze.rtk file was probably the most enjoyable assignment i have done in this course to date. Whereas the weekly quiz's and even the test relied much more on being able to comprehend programing code that is shown to us, the sneeze assignment required original work. I had fun trying to figure out what commands i needed in order to produce the desired result for each section of the program, it felt like i was piecing together a jigsaw puzzle. I would almost prefer doing this kind of work for the course on a weekly basis. While not as complex as being tasked with going out and creating a whole program completely from scratch, the fill in the blank format requires, i feel, just the right combination of comprehension of the programing units and individual initiative that allows one to feel as though they really accomplished something in the course. Not only can i memorize what a command does, but i can use it in a program and make something happen.

Wednesday 30 October 2013

Finishing assignments

It certainly feels in this course, that the work load is not very well distributed. It feels as though i am jumping from assignment to assignment with very little turnaround time these last few weeks. Obviously i don't include the weekly quizzes in this, but having some weeks where two or more large assignments (tests, projects, etc) being due in the same week just seems like poor course loading on the side of the administrators. The lack of spacing on these assignments, while not unmanagable, does cause some vexation, especially when combined with the lack of timely posting of course work on the course's website. I don't understand why the tutorial assignment is posted the day before the class instead of giving students more time to take a look at the material say over the weekend when we might have time. While the tutorial handouts are not very difficult by themselves, the issue of posting the work the day before i feel does not allow student enough time to do the work if they are also busy working on assignments for other courses. Whereas every other class i have taken in my time at this university posts the assignments and the course work well ahead of the days they are due, in this class we are given 24 hours, sometimes much less. I understand not posting lecture slides and the like too far in advance as that acts as a disincentive for attendance, but there is no harm is letting us prepare for the tutorial and quiz in the week before class.