Computer-Generated Haiku

Better watch out. The machines can write poetry now, which means the next step is world domination.

To clarify, the final project from foundations last week was to write a program that randomly generates haiku. I thought I would share some highlights here. Luckily, computers are still pretty bad at poetry, although the first one seems a bit too accurate.

STRANGE INAUDIBLE

MINISUPERCOMPUTER

DISSERVICE THORO

~~~

FRIEND DECOMPRESSION

UNPROFITABLITY

INNOCENT FORK-LIFT

~~~

ENDEAVOR DODSWORTH

PATRONIZES PATIOS

PROLETARIAN

~~~

HATMAKER COWARD

INCONSTANCY INDERAL

IMMEASURABLY

~~~

DERMATOLOGISTS

UNILATERALISM

IRRESPONSIBLE

The program can also find haiku naturally occurring in a text. Here are a few from The Importance of Being Earnest.

ON A SALVER ALGERNON

INSPECTS THEM TAKES TWO AND SITS

DOWN ON THE SOFA

~~~

FURNISHED THE SOUND OF

A PIANO IS HEARD IN

THE ADJOINING ROOM

~~~

BEING EARNEST A

TRIVIAL COMEDY FOR

SERIOUS PEOPLE

And here are two from my senior thesis!

CAT RENOIRS ONLY

MALE NUDE IS AN INTRIGUING

PAINTING YET IT IS

~~~

OVER HIS SHOULDER

IS INSCRUTABLE IS IT

SADDENED DREAMY COY

Let me know if you have a text that you need to find haiku in. If you would like to see the code behind it, I posted my project on GitHub.

 

Week 1


I just completed week one at Grace Hopper! Here are my thoughts.

Stuff we learned/did 

  • The theme this week was computer science fundamentals. We had a very targeted review of some topics that, apparently, are quite common in interviews for junior-level developers. These included:
    • Data Structures! We built models of queues (a word I just learned to spell), linked lists, and binary search trees in JS.
    • The DOM! I, and many of my classmates, I think, had previously been relying on JQuery to make our websites interactive (because, like, why wouldn’t you, JQuery is magical). We learned to access and update elements in the DOM (like the paragraph you’re reading, or the header on this page, or the link you clicked to get here) without any of that Jquery magic, and even wrote a program that performs some of the magic of JQuery, making it seem less magical.
    • Algorithm efficiency! We learned about big O notation, which is a vague and imprecise (yet useful and omnipresent) way to describe an algorithm’s run time. I already knew all about this because I played guess my number with my 6th graders. Literally. You learn everything in the 6th grade.
    • Sorting! We implemented bubble sort and merge sort. It was a really great programming exercise and I kind of wish we had written more search algorithms, it might be something I decide to do on my own time.

My Favorite Parts 

  • Pair programming: in each workshop we are assigned a different partner who we work with the entire time. This has been a really great way to get to know my classmates better, and it also makes 6 hours of basically nonstop programming way more doable. Another benefit is that it forces me to talk through my ideas and make sure I really understand them, usually while drawing many scribbly diagrams. I can now do a breadth-first search in my sleep.
  • Game night: Settlers of Catan and gluten free pizza… What more could I ask for?

Code and the City 

  • New York has always intimidated/overwhelmed/disgusted me, and now I live here! I’ve heard that it’s better to live in New York than to visit, and I have to agree. It’s great to have a nice, quiet room to retreat to at the end of the day (although by doing so, I am contributing to the gentrification of yet another Brooklyn neighborhood, so there’s that).
  • I actually really like FiDi, where Grace Hopper is located. The streets are twisty and turny and you can never tell where you are. To me, the flowing streets feel way more natural than a harsh grid and it makes the whole place more liveable.

Overall Impressions

  • I have  to say that I expected the work to be quite a bit harder. The workshops are challenging enough, but there hasn’t been anything that I really struggled to finish. I am definitely learning a lot, but in general I expected the pace to be faster for such a short program. We will see if it picks up in the next few weeks.

Stuff I started using 

  • If you ever need to take notes on a coding lecture, I recommend Quiver from the App store. It lets you go back and forth between normal text and nicely formatted code pretty seamlessly. I never pay for apps, but this was a good use of $10.

Foundations

Blueberry smoothie and a page from Eloquent Javascript
My typical workspace. Blueberry smoothie and a smoothie-stained printout of Eloquent Javascript.

I recently completed Week 3 of Foundations, which is the remote course that makes up the beginning of the Grace Hopper curriculum. We are spending this time building a strong foundation of knowledge so that we can get started right away with the tougher and more interesting stuff when we arrive on campus.

In order to be accepted at Grace Hopper, you already have to have a pretty good grasp of the basics of programming (loops, arrays, functions, recursion) and be confident enough in your abilities to complete some tricky challenges in a timed test. So far in Foundations, we have reviewed those topics on a much deeper level than I originally learned them. I thought I knew what an array could do, for example, but I had only scratched the surface before now. The major themes so far have been object-oriented programming and inheritance, but I’m not going to try to explain that here, check out my links if you’re curious!

The structure of the online course is a combination of videos recorded by Grace Hopper and Fullstack Academy instructors, followed by coding challenges. One recent coding challenge involved rewriting some common methods that are built into JavaScript, which I found to be a really helpful exercise. There are also a number of outside resources that we are expected to complete. We all have access to Codeschool, which is an extremely informative (if a little dry) tool for learning a variety of coding skills. Codeschool has been our main source for lessons on HTML/CSS, and even though I thought I was relatively experienced in that area, I still learned a lot from the tutorials.

The foundations instructors have been very responsive and helpful. There is an online forum where we can communicate with them as well as with fellow students, and I’ve been able to get all my questions answered pretty quickly.

Overall, I’ve enjoyed foundations a great deal, but I can’t wait to get on campus and start learning around other people who will shame me if I spend too much time on Facebook or take a break to watch 3 episodes of Sex and the City.

p.s. One of our assignments was to make a simple guessing game to practice our html/css. I find it weirdly fun to play. Check mine out here!

Hello!

Hello friends, prospective coding Bootcamp students, complete randos, mom. The last time blogged, I was writing about my super fun times studying architecture in Copenhagen in the fall of 2013. Since then, I have performed a number of 180-degree career pivots, involving a two-year stint as a math teacher, and have now landed at the precipice of something very exciting.

I have been toying with the idea of a career in computer programming ever since I took my first (and only) official computer science course as a freshman in college. On and off since then I have become engrossed with codeacademy courses, coding challenges, and even applied to a different Bootcamp two years ago, only to back down because I wasn’t entirely sure it was the right path for me. I finally got serious late this winter when I ran into my Ghost of Christmas Future (long story) at a board game café and had one of those sudden moments of clarity.

I started Free Code Camp* shortly after that, and soon found myself hiding in the teacher’s lounge working on coding projects while I was supposed to be doing my real job. I took this as a good sign, and applied for some in-person coding Bootcamps so that I could take this thing to the next level. Ultimately, I decided on Grace Hopper Academy, which is where I am now.

Well, not physically. The first four weeks are remote, and I will write a little more about what I have been working on during this segment in my next post. For now this post is plenty long, I personally rarely read more than three paragraphs of anything on the internet. Join me on my journey through learning to code and living in New York for the first time! I promise to keep it brief and witty while also insightful and informative, you know how I am. Thanks for reading.

*For anyone out there interested in learning to code or do web development, I simply cannot recommend Free Code Camp enough as a place to start. They walk you through the basics of HTML/CSS and Javascript, then set you loose on projects that build a ton of independence and real-life skills. The community is also great and extremely helpful. Definitely check it out.