Thursday, February 28, 2013

CodingBat

Today, at the suggestion of a classmate (thanks, Joon! :P) I started trying some of the CodingBat exercises for Python. CodingBat is a website that has lots of short exercises designed to develop your coding skill by giving you a chance to practice key concepts. In APCS, we used to be assigned Java CodingBat exercises for homework. I started easy with the Python ones, since I've never written any "real" Python code, and I'm just sort of wetting my feet in the code.
Going in, I was expecting to try one or two exercises, just for practice. However, an hour later, I'm having trouble peeling myself away from the... 20th? 25th? (I've lost count) exercise. They're horribly addicting! I suppose there are definitely worse things to be addicted to - these exercises really solidify what I've been reading, and get me used to some of the more subtle differences between Java and Python. Also, I can't deny that it'd really satisfying to be awarded a star, and that's part of my reasoning for doing them. *whistle*

Wednesday, February 27, 2013

Success!

Maybe day 1 of my new plan is a little hasty to be claiming success, but, so far so good! I got a good chunk of work done, which is more than I can say for recently. It's really useful to have the motivation to keep going when no one's technically "making" me. I suppose I'll have to keep at it and see if this new method of encouragement actually works, but for now, I'm just keeping my fingers crossed!

Tuesday, February 26, 2013

Time for a Change

Each day, I find myself doing my best to procrastinate on working on my project. "Oh, I have so much other stuff to do," or "I'll have time to properly work on it tomorrow." Not going to lie, it's gotten really bad. I've been thinking over ways to motivate myself, and I think I may've found the root of the problem. What I really want to do is start working on writing the card game. I'm bored by the learning Python part, and I just want to skip to the good stuff. So, I figure I need to give myself some incentive to build a solid foundation before jumping right in. I think, instead of having a deadline for when I switch phases of my project, I'll encourage myself to work by saying that if I get through two books on learning Python, then I can start the "real" project. That's not to say I won't use any of the other resources that I collected, but rather I'll use them as I need them. Hopefully, this change in plans will be enough to motivate me!

Friday, February 22, 2013

Connections

I've been perusing my classmates blogs, and it's been so interesting (and pretty relieving, I'll admit!) to see the experiences that other people have been through. It's nice to know that I'm not the only one who has to push myself to actually get down to business (no, not to defeat the Huns) and make myself work. It's also really cool to see how they've managed to tie their projects into the things they love and do on a day to day basis.
In fact, I had my own experience along those lines today - I went to a college open house at Wheaton College in MA, and one of the options that was available on the schedule was to sit in on a class. Deciding that it couldn't hurt, I chose to go to a Computer Science class. It wasn't a beginning level course, so I was fully expecting that the content would go right over my head, and that I would be completely lost. However, it was pretty exciting to find out that I could follow along with what the professor was saying and that I could even answer (in my head. so not brave enough to say it out loud) some of the questions that stumped the actual students! They were learning Python, and so much of what they were doing were things that I had/have been researching for my own project. I thought originally that it would be good experience to learn Python on my own, but I don't think I fully realized just how useful it would be for me until today. Suddenly, I'm way more excited about what I'm doing! :)

Tuesday, February 19, 2013

Back!

Ack! I've been totally MIA the past week. I got some nasty cold/flu thing, and all my free time was spent sleeping, which left very little time for my project. Thankfully, I've gotten through the worst of it (I hope I didn't just jinx that...) and can start functioning again. Yesterday, I picked up again where I left off in my project. I think I've finally reached the point in the book where I've started learning new things, and not just reviewing information that I already know. That's both a relief and an annoyance - while it certainly makes things more interesting, it also means that I actually have to pay attention to what I'm reading and try and absorb the new info. Blarg. Guess this means it's really time to get to work, Grace!

Sunday, February 10, 2013

Hello World

Chapter three consisted of the traditional "Hello world" program. With programming languages, it's pretty much standard for the first program you make to be one that prints "Hello world." Silly, yes, but also kind of cute, at least in my opinion. I'm starting to get a little more information on Python, at least compared to the beginning chapters of Sweigart's Invent with Python. Not super interesting information, but necessary information nonetheless. It would be hard to ever create programs without knowing the print function, or how to comment, or how to input data. I guess it's kind of hard for me to start slow - I'm itching to get to the good part. Everything needs a solid base, though, so I'll yawn through it and make sure I get all the info I need.

Friday, February 8, 2013

Day One

Started my project yesterday, though I didn't get around to blogging about it until today. I can't tell you how tempted I was to just blow off working on it yesterday. I really wanted to just say, "Hey, it's my first day, it won't matter if I just do my homework instead of starting." I knew that if I did this, though, that would just lead to me doing the same thing on the second day, and then the third day, and then... well, you get the point. So, I ignored that nagging little devil on my shoulder and started my project. Probably the most important part - I downloaded Python. Super easy, super quick, but if I had left that until I was at home, super not possible. I don't have broadband internet at home, so we have a very severe download limit, and downloading Python would be out of that range. I also went through the first real chapter of my e-book. It was boring. Readable, yes, but boring. I know that 2 + 2 = 4, and having me use the Python shell to do that kind of math was really not helpful. Also, even the next part of the chapter, which was about storing values and using variables, was exactly like what I'd learned in APCS, so awfully repetitive. I'm hoping that I'll reach new information soon, otherwise I might just have to give up on this book, and I had high hopes for it.

Tuesday, February 5, 2013

The Starting is the Hardest Part

I have a feeling that starting my project will end up being the most difficult part for me. I've always had some trouble jumping into something that seems overwhelming, because often I can't figure out where to start. This leads to day after day of procrastination, and becomes a vicious cycle of overwhelming-ness. It'll definitely help me to have planned out my time, and to set deadlines for myself. Even though this first outline is assigned, it might have to become a bi-monthly routine for me, just so I have some sort of organized plan. I suppose I'll see how this one works out - trial run and all that!

(I'm going to assume the week starts on Monday, because I don't really know...)

Monday: Read chapters 1 & 2 of "Invent Your Own Computer Games with Python”.  Journal on progress.

Tuesday: Meet with mentor 6th period, then read chapter 3 of "Invent Your Own Computer Games with Python".

Wednesday: Read chapters 3 & 4 of "Invent Your Own Computer Games with Python”. Journal on progress.

Thursday: Read chapter 5.

Friday: Read chapter 6. Journal on progress.

Saturday: Read chapter 7.

Sunday: Read chapters 8 & 9.

Monday: Read chapters 10 & 11. Journal on progress.


Tuesday: Read chapters 12 & 13, meet with mentor 6th period.


Wednesday: Read chapters 14 & 15. Journal on progress.


Thursday: Read chapter 16.


Friday: Read chapter 17. Journal on progress.


Saturday: Read chapter 18.


Sunday: Read chapter 19 & 20.

This will bring me to the end of my first book (available online! http://inventwithpython.com/chapters/ Yaaay, so convenient! :D) This will be my tentative schedule for the first two weeks. From what I've seen, Al Sweigart's books seem really informative as well as easy to follow, but I could end up sorely mistaken, which would mean altering my schedule to work for a different book. Also, I'm not sure exactly how long each chapter will take - some might take longer than others, so that might require some switching around. This schedule will serve as an outline, though, and at least keep me on task.

My Project

Dear Reader,
     I'm fascinated with the idea of programming. I love that you can essentially create something out of nothing. You start off with just lines and lines of unintelligible text, and end up with a final output that's real and usable and just there. It's like you're some kind of magician, conjuring a rabbit from thin air. My older sister studies computational linguistics, so that's where I first discovered the idea of programming. I took Programming I & II in school, and then followed that with APCS. While these classes gave me a pretty solid basic background in how to write code, but they lacked in the hands-on experience. That's to say, I know the theory, but not how to put that together to create a usable program. My WISE project seemed like the perfect solution to this. My goal, for the next 16 weeks, is to learn some new programming languages, at least well enough to be able to use them, and then utilize this knowledge to create a online card game, similar to the ever popular Apples to Apples. I'm hoping that I'll be able to finish the game by the start of June, but I'm afraid I might be overestimating my abilities. It's a pretty daunting task, and I'm not sure I'm going to be able to pull it off. I've found a bunch of resources though - books, websites, and also people, so I won't be alone through it, and I suppose all I can do is try my best. At the very least, I'll have gained some valuable information, both about game development as well as my strengths and weaknesses. And even if I can't finish during the time period, eventually I'll have a finished product that I can be proud of!