I Am a Writer

This post is an assignment for English Composition I: Achieving Expertise, a writing MOOC at Coursera.

Read more of this post

Advertisements

Computer Networking

Started a Computer Networking course at Coursera.  This isn’t a network technician course, this is more of a theory course, explaining how they work.  To use a car analogy, CompTia Network + is like learning to change the oil on your car.  This Computer Networks course is more about learning to design a combustion chamber inside the engine.

That said, this should have a lot of knowledge useful to a Network+ or a Cisco cert… which will be useful things for job searches.  

Right now, I’m workign through the basics of sockets.  The associated text has a simple file transfer application used as an example.  It’s in C, which I don’t really know well, but it’s simple enough to follow along with.  

Current Coursera courses

Got two courses going at the moment. One is “Introduction to Systematic Program Design Part 1” through University of British Columbia.  This is primarily a design course- not how to put nuts and bolts together, but where and when to use your nuts and bolts to get whatever you are building to stay together.  The language used is Beginning Student Language(BSL), a dialect of Racket, which itself is a dialect of Scheme, which is a dialect of LISP.  Which is a dialect of “parenthese-ese”.  Functional programming, prefix notation, lack of mutation, side effects, all that fun stuff.

The other is from Stanford, “Startup Engineering”.  It’s about building a tech startup.  Some software engineering, how to do that for the purposes of a startup, some on actually getting the business side off the ground.  I have a few vague ideas on projects I could do as the core of a startup, though I’m not sure my tech skills are quite there.  That said, the knowledge could be useful if/when I get to that point.  The tech stack is HTML5, JavaScript, and CSS.  Which I’ve really wanted to work on anyways, so that’s good.

Project Euler problem 1- SML Implementation

Finished the current assignments and lectures for my Programming Languages course on Coursera, so I figured I’d go and do some other stuff in ML.  ML is a functional language, very heavy on recursion among other fun differences from imperative and OO languages.

Here’s a solution to Project Euler problem 1, summing all multiples of 3 and 5 that are below 1000.  

fun sum_multiples_3_5(limit : int) =

    if limit = 0

    then 0

    else if limit mod 3 = 0 orelse limit mod 5 = 0

           then limit + sum_multiples_3_5(limit-1)

           else sum_multiples_3_5(limit-1)

This is a general function, it will sum all multiples of 3 and 5 up through your limiting value.  If you want less than 1000, then, you’d call it:

sum_multiples_3_5(999);

The answer, in this case, is 233168.

I may generalize it further, taking a list of ints which are the factors you want multiples of.  That looks like a lot of extra work for something that is right now killing time because I can’t sleep, though, so I’ll be putting it off a bit.