# The ABCs of Computer Science

So over the next few months or so, I’d like to write a series of educational posts on “The ABCs of Computer Science”. In each post, I would talk about a topic that begins with the letter of the alphabet I am on. This will not only serve as an educational resource for people wanting to learn new things or get an overview of some of the big topics in computer science, but also as a learning experiment for me.

I plan to make an ABCs post at least every two weeks, and my regular posts about thesis updates and mathematical curiosities will continue. I have a tentative list of topics but I’d like your input. What topics would you like to see me write about? What’s something you are interested to learn? What can I use for elusive letters such as Q, X, and Z? Leave your ideas in the comments below and I will do my best to incorporate them.

# Day 15: Hangman?

Not feeling like writing much today either. It’s been a tough day.

Making a hangman solving program would be pretty cool. I guess its sort of like an anagram solver in reverse, if that makes sense. We don’t have the word, we are trying to create the word based on a few known letters. Determining what letters are most common in certain positions and finding patterns of words (“ing”, “ed”, “ion”) would be helpful. Compare the current game state with a dictionary to make guesses about the word. Not really a fleshed out idea. Probably coming back to this one.

I think its interesting to think of how we can implement computer programs to “solve” different types of games.

# Day 5: Sudoku Solving Program

So in an effort to get back on track with things to talk about, today I’m going to talk about another one of my ideas that have been tossing around in my head for a while. I really enjoy playing Sudoku games, and they have a fairly logical way that you go about solving them. Therefore, I had the idea to see if I could write a program that solves a given Sudoku puzzle.

The first iteration could be a fairly stupid brute force check that goes through each empty space, then starts trying numbers. It would have to check the row, column, and square. If a match was found, it would be inserted, otherwise an array of “possible answers” could be added. As we get more information, we need to modify these possible answers until it is down to one possible answer, and then it can be inserted as well. This is already sounding pretty complex, but its a stupid algorithm and doesn’t take much thought to run through.

To make something more complex, there are a variety of algorithms described here that could also be implemented. Of course, with any algorithm project, one has to take into account the complexity and accuracy of the algorithm and the tradeoffs that come along with that. Nonetheless, I think it would be a fun project to undergo. I am also told by my friend Nathan that this problem has something to do with a research of his, so maybe I’ll go confer with him about it.

(If you’re wondering what this “Day 5” business is about, check out my blog post describing my writing challenge here .)

# NaBloPoMo: An Experiment in Blogging (Day 1)

So as my more creative readers may be aware, today is November 1st. This is important because it heralds the start of National Novel Writing Month, known colloquially as NaNoWriMo. A frenetic literary adventure, NaNoWriMo challenges its participants to hammer out a 50,000 word novel in just 30 days. No one said it had to be good, just that it had to be 50,000 words. Could you write the word “the” over and over and still count yourself as a “winner”? Sure, but the point of NaNoWriMo is to give people that say “I have an idea for a story I’ll write one day” the kick in the pants they need to get started. Ending the month with a sloppy first draft is definitely better than what you started with: a dreamy “one day” aspiration and a half-formed idea.

I have participated in NaNoWriMo three or four times over the past few years. Unfortunately, I have never reached the goal of 50,000 words in a month. Last year’s attempt was on track to reaching my goal. I had a good idea, some free time, and was writing my heart and soul into this admittedly haphazard piece of work. However, Nature decided to intervene and I injured my hand right as I passed the 36,000 word mark. Am I disappointed? A little. But looking back and seeing how much I accomplished over that short period is still inspiring to me today.

Therefore, in the spirit of NaNoWriMo, I’ve decided to instate what I call NaBloPoMo, or “National Blog Posting Month”, in which I will write one blog post per day. The topics may vary across the fields of math and science, peppered in with a few anecdotes and opinions about technology and education. Completing a post each day will not only encourage me to write more, it will more than double the current number of posts I have on this blog and allow me to develop my ideas in a structured format. I’m in the process of applying to graduate school for computer science, and I need the practice writing about my interests and goals.

So here goes. This will be my first post of NaBloPoMo, November 1st. Follow along by signing up for email updates or accessing the RSS feed. Each update is also posted to my twitter account, which you can find at @musegarden. If you have ideas or questions for me, I’d be happy to hear them. Send me a message on twitter or leave an idea right in the comments here.

Well, I finished up my school exams and such today. I am a free woman! Until the 20th, that is. I’ll be heading to Clemson for this REU (Research Experience for Undergraduates):

http://www.math.clemson.edu/~kevja/REU/

I’m pretty excited about it, but at the same time intimidated. I feel like everyone else that is attending will be smarter than me, and I’m worried about trying to fit in and keep up with everyone. But I suppose these worries are natural, and it will all fall into place when I get down there. And I’ll be posting about my doings here for all to see. Having real research experience is going to be great!

Stay tuned for the mathy goodness…I gotta go learn Python, LaTeX, and all the maths. 🙂

# Another year closing in and some things coming up

So here it is, I’m coming up on finishing my third year of college, and I’m thinking to myself, “What have I accomplished?” The answer doesn’t seem like much, but then again, we often forget the little things of our days and old memories become buried under the constant stress of student life. I plan to use this blog to detail my projects both in school and independently and to keep track of my progress.

Things I am working on now:

• Conducting an experiment for my Experimental Economics class to test the influence of simple decision-making heuristics on a Bayesian choice task
• Drafting a writeup of my methods and results
• Pondering over thesis topics for next year