Skip to main content

Week 2 of Computer Science

"Having spent the last 11 days studying coding and computer science theory I can now claim to be an expert. "

If only it were that easy.

I have however, made plenty of progress: coding gets easier every day, the hours fly by as I read, code, debug, search forums, stare blankly, recode, then take a small bow when my program successfully adds 2 integers. I have now written around 20 original programs in Java (original in the sense that I composed them; they don't do anything original).

The two data science courses on edX (Analytics and Foundations) are relatively straightforward implementations of R (there isn't any programming involved). They provide a good review of intro-level Statistics.

The Data Science Specialization on Coursera (offered by John Hopkins University) is very challenging, especially the Intro to R Programming. There is a steep learning curve involved in completing the programming assignments. There are 3 parts to assignment 1: I spent Tuesday on Part 1, Thursday on Part 2 and haven't yet completed Part 3.  (For reference, Part 1 comprised 6 short lines of code.) The course is certainly good practice for situations where you might be expected to code in a completely new language with minimal training. A lot of my time is spent hunting in forums and reading help files in an attempt to get rid of those pesky error messages.

The first course in the Saylor Academy Computer Science pathway took 11 days to complete-I passed the final exam this morning. It took around 30% of the suggested time allotment-I expect future courses will be more challenging.

I decided not to continue with Computing:Art, Science and & Magic. The presentation was terse, abstract and in the end, opaque. I decided to stick with Java, C and Python for which there are plenty of excellent (and free) resources. It may be a course that I go back to in future after I have internalized the necessary computer science theory.

I plan to finish the two calculus courses by the end of the month and start a linear algebra course in December.

One thing that has really impressed me is the camaraderie of  the help forums: there are so many people helping each other out.




Comments

Popular posts from this blog

CodeSchool vs Codecademy(or 'How socket inherits event listening methods and implements asynchronicity')

In this review I'm going to focus on the pedagogy that I see evident in some CodeSchool courses and compare them to  Codecademy. By pedagogy, I mean: 'How does CodeSchool teach?' and ' Does it do a good job of teaching?'. I'm going to argue that despite high quality videos, colourful web pages, and often ssspppeeeeeakkkiiiing...rrrreeally...slowly..., CodeSchool's pedagogy is inferior to that of Codecademy. There are many fantastic resources for learning to code on the web, and CodeSchool is one of them. So far I have completed courses in Ruby, Rails, Javascript, HTML/CSS, Jquery and Git on CodeSchool. The courses have all included high quality videos and colourful, interactive exercises- as well as  massive  pdf files of the slides ( the files take more than a minute to load on my machine .) The question is: does the higher production value mean better educational quality? The 'Try' courses on CodeSchool(such as Try Ruby and Try jQuery) are f...

Algorithm Analysis - 1

Currently, I'm learning to perform algorithm analysis using Big-O notation. In one resource I found the following problem: You just dropped a box of glass toys and  n  toys in the box broke in half. You'd like to match the halves of the toys so that you could glue them together, but the only way to tell whether two halves belonged to one toy is to physically pick up the two pieces and try to fit them together. Express how long this matching process will take in terms of  n . The answer given is n^2 (n squared) with the following explanation:  You have to compare every piece with every other piece. If you have 1 toy and it breaks in half, you have 1 comparison to make. If you have 2 toys and they both break in half there are 4 pieces and you have to do 6 comparisons. If you have 3 toys, there are 6 pieces and you have to do 15 comparisons. If you have  N/2  toys, you have  N  pieces and you have to do N-1 + N-2 + N-3 + ... + 1 =(N)(N-1)/2...

Ruby, RSpec, Linux and Relational Algebra (or "What I'm doing this Christmas")

Last week was challenging- I'm beginning to appreciate the need for a programming buddy.  So far, I haven't found a Ruby IDE that helps with missing brackets or illegal syntax. This means hours spent looking for errors which more experience (or an IDE) would have solved in an instant. I've spent a lot of time on Stack Exchange looking for solutions to problems that many have already had- so far I haven't had to post a single new question (though it's evident that many people post duplicate questions, not having looked for a solution first). I spent longer on the Ruby project than anticipated, BUT I really enjoyed learning about Behaviour Driven Development. Thinking of tests in RSpec and then watching my Ruby script pass (eventually) was like passing an exam (though  one I had written myself). This week I'll be starting Rails-after I complete the CodeSchool Rails courses I'll go on to their RSpec course. Partly for the geek cred, partly out of curiosit...