Tuesday, July 29, 2014

Principles of Computing - Abandoned

I dropped the PoC class. I just came to the realization that I really needed to bone up on Discrete Mathematics before going any further in Computer Science. I found myself increasingly out of time every week, and cutting the math-heavy homework to focus on the mini-project. I'd rather be able to do both and really deeply understand the material than just trying to scrape a decent grade.

I really liked the idea of using the MIT courses, but without a set of answers to the problem sets, it is not clear to me how useful it is. It seems like such a good course too. The recitations and the exams *do* have solutions posted. Perhaps I can find exercises to fill in the gaps.

This seems to be my only option, as Coursera doesn't appear to have anything that will fill my needs any time soon. Doing a quick search isn't turning up any alternatives of the same caliber of the MIT course. Bleh. What is frustrating is that there does appear to be a site with links to solutions, but all password-protected. Rats.

This site had some suggestions ofr courses as well as books. I thought this Discrete Mathematics Book by Epp looked promising, but for $200, I'm going to have to think seriously. Amazon does allow for rentals. Maybe there is a cheap version from the library? The other books in pdf on this site needed Haskell. Not sure I want a programming and mathematics combination.

Hm. It was a lot easier at university. Classes were pre-determined, and all anyone had to do was sign up, pay the crap load of money for the class and books and fees, and then make it through. Piece of cake :)

Saturday, July 19, 2014

Two Weeks Left in "Principles of Computing"

I managed last week with data structures and inheritance swimmingly. These two are right up my ontologist's alley. This week's recursion topic is a mind-bender, but I am wading through it. I still struggle with the more math-heavy aspects of the class, though.

There are two parts to the class besides the material: homework and mini-projects. The homework is more a quiz-style format. There are approx. 10-12 multiple choice questions. I have found that these questions are extremely hard for me to grok, and almost always math-heavy. The mini-projects are the actual coding tasks. They include things like simulations of zombie apocalypse, recreating the 2048 game, and word wrangler.

Usually, I need the week to watch the videos and work through the math/coding notes and do the practice activities. I prefer to start the mini-project by Sat to have both days of the weekend to work on it. There isn't much time in there for the hours I would need to finish the homework, so I usually drop it, or make one attempt and then leave my crappy score. There is a very real disparity between how well I can do on the homework and how I do on the mini-projects. I pull a 100% on the mini-projects every time.

It is really unclear to me how much emphasis I should be placing on the fact that I am throwing homework under the bus. I am not too worried about the number grade I get for the class; I am more interested in gaining the knowledge. That said, it still isn't clear to me how much I am leaving at the table by not dropping the class now and switching to a discrete math class, and later returning when I have a better handle.

Even though there is a follow-on class in Algorithms, I am thinking that I will wrap up this Principles of Computing class, then switch to a discrete maths class. Once I have that, I will pick up an Algorithms class. Luckily, Coursera has two: an algorithmic thinking class that is part of this series, and another two-part course done in Java. If I can catch the two-part one in Java, that might be a better choice: more in depth and exposure to Java.

Saturday, July 5, 2014

Halfway Through Principles of Computing

So I am at the halfway point in the class, and seriously thinking of bailing. These last weeks of probability, randomness, and combinatorics have really put the pressure on me. I don't think necessarily the class is the problem. Rather, the problem is the lack of a discrete math background and the lack of sufficient spare time to make up for it. I did intend to work through a Discrete Math course, but I was waiting until this series was done. In retrospect, I think it would have been better to do the Math first :).

So, these past two weeks have been kicking my learning-to-program butt. I was thinking I should pull out and isolate work on the maths. I can always return to the programming after I have a handle on the maths. I found a couple of books to start creating a lesson plan, and I checked out the syllabus for my programming class to make sure I cover all of the relevant topics. To my surprise, this looks like the last week focusing on maths!! Instead, next week we move onto data types and inheritance. Oh definitely more up my alley.

My current plan is to stick with the class one more week and see if there are still big gaping holes to fill. I can always back out next week. I'd really hate to lose momentum in this series. I finished this week's mini-project with a perfect score, and if I can at least pass the homework, I think it will be fine.