kimira: (Default)
Okay, I take back some of my misgivings! The Stanford cryptography course on coursera is awesome now that it's actually getting into the crypto. After going through the week 1 part 2 materials on stream cyphers and completing the homework problem set and optional programming assignment, I'm psyched.

I still think the lack of listed prerequisites is silly, as it says you don't even really need any math background ("however some knowledge of discrete probability will be helpful"), and those unfamiliar with certain mathematical concepts and generally knowing how proofs work would probably be completely lost. (A lot of people in the discussion forums are expressing just that.) But for me, a math dork, it is excellent. Wow, I am really into it now. The material is challenging but as it's going on I am finding the proofs very nice and am totally getting a better grasp on the concepts. The first problem set was CHALLENGING in a way I really liked, that involved thinking and applying concepts rather than just regurgitating material from the notes.

And then!! The extra credit programming assignment was excellent. I was supposed to go to sleep ages ago, and kept shutting down Python and telling myself I would finally sleep, but I couldn't stop myself from thinking about the program and opening Python up again and writing/running more code until I figured out the solution. The problem was a stream cypher, with the same key used to encrypt 11 messages, and we were to decrypt the 11th one. It was tough and I got stuck at many points but kept thinking and trying new things until I figured it out and broke the code! AHHHHH SUCH SATISFACTION!! \O/
kimira: (Default)
All my online courses have gotten underway now. I got caught up on MIT 6.00x, and have now done weeks 1-6, problem sets 4-6, and the first midterm exam. The most recent problem set was building a Python RSS feed scraper using various word filters, which was fun.

Berkeley CS184.1x, Foundations of Computer Graphics, has started and is really exciting. The first homework was just making sure the compilation environment would work and tweaking the color of one light, but I just did the first regular Homework, and it was a lot more fun. "The purpose of the homework is to fill in the code to allow rotation of the viewpoint around a scene, using what is known as a crystal ball interface." At first I was really overwhelmed, but then once I figured out how to enter matrices and vectors it wasn't too bad. It was really helpful to visualize things three-dimensionally while figuring out which axes I needed to rotate the camera around, etc. One thing I'm curious about is whether there's a simpler way to define this one matrix than how I ended up doing it. It was a 4x4 matrix with a 3x3 identity matrix in the upper left, and the eye vector for my camera in the rightmost column. I defined a 4x4 identity matrix and then reassigned the three values in the rightmost column manually, but I wonder if there's an easier way to say, replace this whole column with this instead. I will wait and see maybe what the solution code is after the problem set is due. But, mine works perfectly! And it is really fun to play with. Download of my compiled solution.

Anyway, next in that course we are going to go through OpenGL in more depth, and then actually building a complete scene viewer, so I am really pumped for that.

Harvard CS50x is still going, although I haven't done the week 2 problem set yet and need to get on that. I've been focusing on the other courses for the moment since the Harvard course doesn't have weekly deadlines. Plus, I already actually did that problem set in the past (last year), and I don't think it will be hard to code it again. That's the one with crypto, where the hacker edition is to break crypt(), which I also did before but mine was a really brute-force inefficient method and I was hoping I'd be able to improve it (although edX doesn't allow the hacker edition to be graded, sadly). So another part of why I put that off is that...

...I was hoping the Stanford Cryptography I course (the only one of the four courses I'm currently doing not on edX, as it's on Coursera instead) would be helpful in that area. So far, sadly, this is my least favorite of the four courses. I don't like the interface as much, the lectures are a lot longer, and the professor is not good at clearly explaining concepts. At least, he wasn't in the early lectures. He was going over concepts I am already familiar with in the review of discrete probability, and since I already knew them I was able to follow his review, but his poor explanations made me suspect that those with a less solid probability background might get lost, and I worried that when he gets to topics I am also unfamiliar with it might be difficult to follow him. As an example of one of his confusing points, he uses a capital U to represent the universe/sample space, but later uses the union symbol which looks exactly like a capital U without explaining what it was or differentiating the two. So, this was fine for me; I knew what each was, but is an example of things I found worrying when for those unfamiliar with the concepts, he didn't even explain what the union symbol was. Anyway. I've watched the first set of week 1 videos for that course so far which were all introductory/probability review materials, and we'll see how I feel about it with the new materials introduced (stream ciphers are next).


In dw_dev news, I've been waiting for quite a while (about a month) for reviews on the patches I had submitted, and finally got comments on some (not all) of them a few days ago. Sadly, the one I was really excited about, on embeds in comments, did not work out. The way that entry text is being cleaned/processed is more involved than I thought, and my patch didn't cause embeds to also be run through EmbedModule.pm, but just passed it by, which is no good. I'm worried that it will be a lot more complicated to fix this, sigh. EmbedModule.pm seems specifically designed to work with entries, so it might not be possible to just also apply it to comments, but necessary to write a new module (or function in that module, whatever). I applied some quick fixes and updated my commits for the other pull request I got a comment on, but the embeds are going to take more work and I'm kind of chagrined and more into this other stuff now. Might unassign it for a while again so that if others want to work on it they can do so. I think I am getting more out of the courses I am doing right now anyway.

Plus, it is kind of frustrating to wait a month for a pull request review, by which time things are definitely not in the forefront of my mind any more. :-/

November 2012

S M T W T F S
    123
45678910
1112 131415 1617
18192021222324
252627282930 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 30th, 2025 02:48 am
Powered by Dreamwidth Studios