Monday, June 3, 2013

Fin

Wow, it's hard to believe this is the end. Tomorrow, all my materials will be turned in, and this journal will be done. It's been a good (and bad sometimes) 16 weeks. My narrative is done, and I plan to spend the afternoon writing my research commentary and eating frozen yogurt, then heading to Kinko's to print all my materials. What was once a daunting task now seems manageable, and I can see the light at the end of the year (ha, I'm punny). Even my presentation doesn't seem so scary now, just because I realized while writing my narrative that I have so much to talk about, because so much has happened and it's been such a learning experience. Also I kind of just want to brag about what I've managed to do, because to me, programming is pretty much the coolest thing in the world. It's been good, WISE. :)

Sunday, June 2, 2013

Overwhelmed

You'd think as the year was winding down, I'd have more time to relax. But no. I'm swamped with work and it's completely overwhelming. So, once again taking my mentor's advice, I've made a to do list for the week. 11/14 of the things have to be done by Tuesday. Help.

Sample Presentation

Last week, we got to see a very brave student, Luke, present his project in front of basically everyone. This was really cool, because I had no idea what a presentation should look at. From his presentation, I got a lot of insight into what I could add into my presentation. I'd like to borrow his idea of going into the history. This would definitely add resources to my lacking bibliography, and also add something that wouldn't be present elsewhere - journal, narrative.
I think the strongest part of his presentation was his confidence, and that the part I'm most jealous of. I don't have that ability to speak with such certainty, and it really made his presentation bold and interesting.
Differently, I think I'll focus less on a PowerPoint and maybe more on my website itself and the code as my visual aid.

Wednesday, May 29, 2013

Switching Gears (For real this time)

Commenting is done! DONE DONE DONE. Most people probably won't understand how exciting this is for me, but it's really exciting. I just zipped up all the files and sent them off to my wonderful, amazing sister who said she would look into the two problems I've been unable to solve. Now, with my presentation in less than two weeks from to day, it's time for me to switch my focus to preparation. First step will be to get all the documents done, since those are kind of due in, oh, six days... then I'm going to have to majorly focus on practicing my presentation so that I don't completely freeze up. It'll be fun.

Thursday, May 23, 2013

Commenting Commenting Commenting

Argggg. That's about all I have to say. I'm so tired of commenting (even if I made the comment font purple so it's super pretty). I also don't really know the rules of commenting - I had to look up whether or not I should comment my html (I shouldn't. YAAAAY. One less thing). I'm almost done, though, just like 400 more lines of code to go through. Then I can send it off to some super smart person who can solve all my problems while I try and pull together a presentation that won't just be stuttering. Ha. Well, I can hope, at least.

Tuesday, May 21, 2013

Listening to Your Coaches

I have a hard time taking advice from people I don't know. It's not so bad when someone I'm close to offers a suggestion, but when it's someone I hardly know, I often feel like they're being almost condescending about the way I choose to go about things. I've mentioned this in a earlier post - it bothers me when people tell me all things I could have done better, especially when I put in so much work getting to where I am. I'm not a "natural" programmer - I'm not one of those kids who have been writing code since they could read. I only stumbled upon this whole field a couple years ago. That being said, it also means I do need a lot of help, because I am new at all this. I guess it's just important that I take everything with an open mind, like the article said. I'm not quite at the point where I can easily filter good advice from bad advice, but I need to get there.

Sunday, May 19, 2013

Comments

Following on one of my previous entries, where I mentioned how I wish I had commented my code as I was going so that I knew what it actually did, I now have another reason to kick myself over my laziness. I have a couple of problems that I'm completely stumped on, and have been for a good week or two. As the end of the year comes closer and closer, that becomes more of an issue. My sister has been MIA - she got really sick, and as she recovers has to focus on catching up on her own work, so she's too busy to help me. My dad's been looking to see if one of his students would be able to help me out, since it's on such a deadline at this point. Unfortunately, bringing in a new person would be a hassle - especially given the state of my code. Only maybe a fifth, possibly a fourth of it is commented, and it's pretty convoluted. Even someone who knows loads about programming would have trouble understanding it. I really need the help though, so I guess this week isn't going to be about preparing for my presentation, but actually going on a commenting spree. I really wish I'd listened to my Computer Science teacher now when he said that we should always comment everything!

Thursday, May 16, 2013

Presentations

If I had to pick a number one nemesis, it might have to be presenting. Speaking in front of people terrifies me. I talk too fast, my voice gets shaky and thin, and oftentimes I even start visibly shaking - needless to say, all this doesn't make my anxiety any better. That's why, as June 11 fast approaches, there's a growing feeling of dread in the pit of my stomach. So, I think it's time to change gears. Even though I still have work to do on my project (honestly, there will always be work to do...), most of it I'm already stumped on and and waiting for help with. For now, I'm going to switch my focus to getting ready for my presentation. I think that if I really plan out what I'm going to say and do, I'll have at least a little more confidence going in, and I need that.

Thursday, May 9, 2013

Finding Errors

I've spent the past couple days scanning my code, trying to find where things are going wrong. No luck. So, I've sent a desperate email to my sister asking for help, and in the mean time, I'm starting to comment everything. Hopefully, in writing the comments for all my code I'll be able to find out which parts don't work because I'll have to find out what each part does. It's super tedious, though, even worse  than layout. That's probably why I've put it off for so long - ideally I should comment as I go along, but I'm just too lazy, and I guess that's how I end up in these situations. Oops...

Tuesday, May 7, 2013

Trial Run

So, Friday I had my first trial run with my game, where I enlisted some friends to help me test in a real game. Quite frankly, it was a disaster. I guess that's to be expected, considering it's only the first test and it's probably even a good thing, because now I know all the issues that I need to work out. All the same, it's kind of discouraging. There were problems with the correct number of cards not showing up, which was an issue I thought I had fixed, but apparently not. Also, more importantly, there was a big problem where once you played a card, you wouldn't get a new one, just keep the same hand of 7 cards for round after round after round. Yeah, that got super boring after a few rounds. Luckily, the friends helping me test it were incredibly supportive and didn't give me a hard time about all the flaws. *phew* I think I'm giving myself a hard enough time as it is! Hopefully, I'll at least have the card problem worked out by this weekend so that the next run will be a little smoother. Fingers crossed!

Sunday, May 5, 2013

Deadlines

Phyllis Korkki's article on deadlines is strangely informal for a New York Times article, but I think that's what makes it all the more relatable. I know very well how it is to put off work, especially for a big project that has a faraway deadline (*cough*WISE*cough*), and while I haven't recruited anyone to hound me to do my work, I have had to break my project down into smaller pieces that I can assign deadlines to. Because without a deadline, I don't have the motivation to get something done - it's not due, I don't have to do it. Let's face it, I'm a total slacker at heart. This week, I do have a public deadline. By Friday, I have to have the hand of cards up and working so that my second trial run of the game will not be such a disaster (more on that at a later date). It's not fun to play Apples to Apples when you have the same cards round after round. And, I've promised my friends that I'll have this fixed by this weekend, so it's a deadline I have to meet.

Happiness Revisited

1) It's hard to place when I feel most happy. I think it would probably when I've just accomplished something, like a good grade on a test or scoring a goal. Either that, or when I'm just spending time with the people I care about, friends, family, my hockey team, and just hanging out, not doing anything in particular.

2) The article, Happiness Revisited, was very thought provoking. I'd never really considered what happiness was before or how to achieve it, and I found they was the author presented the idea interesting. I was especially intrigued by the idea that you can only really be happy when you've worked hard to achieve something. While this certainly is one type of happiness, I'm not sure it's the only one. Certainly I feel happy when I wake up and realize I still have a few more hours of sleep, or when I'm just laughing with my friends, and in those cases I haven't done any work leading up to the happiness.

3) Currently, I'm at the anxiety spot in the flow chart. The challenges that I'm facing are harder than I feel comfortable tackling, and I'm at the point where I think I need to turn to help before I'm swamped.

4) In the past month, I've been bouncing back between anxiety and flow, sometimes in my zone and sometimes taking on too much. Overall, it's been a pretty good spot for me, even if stretching my limits has been stressful. It's certainly a better place than the first part of my project, where I was definitely grounded in the boredom section of the flow chart.

5) I think I can achieve flow when I know what I need to get done, and how to get there (mostly). For me, this means I often have to ask for help when I first start something, and then one I get that lead in, I can do it on my own and I'm in the flow channel.

Thursday, May 2, 2013

Suggestions


Recently, I've been working on the layout of my website, and I hit a bit of a snag in trying to figure out how to make the text show up. The problem was that the text of the "unicorn cards" wouldn't show up very well against the background. I'd been trying to experiment with making the text shadow different colors and thicknesses in order to make it more readable, but nothing was really helping. So, working on it fourth period in the library, I was getting frustrated. Then, a friend who was working at the table suggested that I make a semi-transparent background for the text. Throughout the course of my project, I've had lots of people throwing suggestions at me. It gets a little irksome, because oftentimes I just keep getting told how I could have done something better, and I don't always think like a super efficient programmer type person. For me, I'm excited if I can make something work, even if it there's a way to make it work that would take less code. Because of this, I might not be as open to suggestions as I should be. However, I was pretty desperate at this point, so I looked into opacity of images, and played around with that a little bit until I got the text to a point where you could actually read it. I guess I need to learn to filter the ideas people give me, so that I can follow up the useful ones, and put aside the ones that I don't need, because evidently some of those ideas can be lifesavers (though that's a bit of an exaggeration).
 

Wednesday, April 24, 2013

Pictures!

Last night, deciding to take a break from studying calculus, I thought I would spend maybe an hour, tops, coloring in the sketches I had done earlier. 3+ hours later, I was done. It's kind of amazing what a huge difference having real pictures in my game makes, instead of the stand-in green and red rectangles. I still need to fix the text and make it readable (kind of necessary, I suppose), but already it looks a lot better.

Thursday, April 18, 2013

Testing

After a few minor fixes (which are turning out to take forever and maybe not be so minor. Gah.), I'd really like to start getting into testing in the next week or so. This would mean actually getting people to play a real game, and see what still needs to be done or doesn't work right. However, before I start this, I'd like it to look semi-presentable, which means having the final unicorn and dragon card pictures, and not just the stand-in rectangles currently in place. Initially, my younger sister was going to do all the artwork for the game, and yesterday she handed me these elaborate drawings. They were really well done - but not at all what I needed or envisioned. When we had been doing rough sketches, we had just drawn out the head of the unicorn and dragon, not full body pictures, so that's the image that I've had of it. Also, her drawings were so full of detail that you wouldn't have been able to read the text once it was put over. I think that if I want the images to come up the way I want, I'm going to have to draw them myself. This is going to be tricky, because I am in no way an artist. Uh-oh...

Monday, April 15, 2013

Comfort Zones

In Mr. Grazer's presentation on This I Believe, he mentions that you have to disrupt your comfort zones to really grow. This is something I've definitely noticed throughout the course of my project. The first phase was completely within my comfort zone - reading books was no stretch of my abilities. The second phase, though, was utterly foreign and overwhelming and I had no clue what to do or where to start. It was so new, and so out of my comfort zone, that if it hadn't been something I had to do for class, I'd probably have chickened out and given up. Now, three weeks into phase two, I'm so glad I didn't. I've not only been enjoying my work much more, but I've also learned a million times more from pushing my limits and trying new things than I had in the entirety of my phase one. It's been a great experience.

Thursday, April 11, 2013

Back to Work

Ack! I've been so caught up on working on my project that I've been forgetting to blog about it. So, a summary of what I've gotten done in the past few days: I'm now totally on Amazon Web Services, phew! It was a bit of a struggle getting there - I must have sent my sister a good 5 emails during the process. But it's all set now and my mini-crisis was averted. After that, I was able to start actually working on the program again. I've successfully (I think) added a button that will allow a user to leave the game, and I'm working on making an end game button. There're some issues where the tabs in my code don't copy over to the server, which is weird and really annoying, because those indents are kind of necessary for the code to work. I guess that's probably something I should look into...

Friday, April 5, 2013

Setbacks

Everything was going so smoothly until I got an email yesterday saying that dotcloud (the platform I was using to host my website) is going to be getting rid of their free option in about 3 weeks. Gah. Luckily, my sister did some research and found out that Amazon Web Services would be able to host it for free for the first 12 months. Not so luckily, it's way more complicated to use and especially to set up, so she sent me about a three page email of instructions. I can't really bring myself to look at it right now, and there's nothing I can do anyways, because it involves downloading a few things, so I have to wait until I get back to school and use the internet there. I suppose it's time for a break, though, since I've spent a good 25-30 hours on my project over the break.

Tuesday, April 2, 2013

NYC

Wow, I don't even know where to start. So much has happened in the last two days that it's going to be impossible to get it all down, but I'll do my best to summarize the main points. Needless to say, this is going to be a bit of a long entry - apologies in advance.

First of all, I just want to say that I have the best sister in the entire world. She uncomplainingly spent a warm, sunny day indoors working on coding with me for 21 hours straight, and even longer in total.

With that out of the way, I'll get to what we managed during that time. In a previous entry, I mentioned that I was only learning Python instead of all the languages I intended to learn. Completely null and void now. I can now say that I've successfully dabbled in Python, CSS, JavaScript, HTML, and MySQL. Yeah, I'm pretty sure I've learned more in the past two days than I have in the entire first phase of my project. I guess learning from a book really doesn't work for me, and I just need to get out and do it.

We decided that since I couldn't stay very long, it would be best just to get all the logic of the program done, and not worry about layout or catching errors or anything like that. All of that is stuff that I can do on my own without too much trouble, and it will probably take a long time anyways. So, we started off by creating a login screen. The screen doesn't contain too much, just gives you the option to login with a username and password or create a new account. Then, once you log in go to a new screen where you have the option to create a new game if there isn't one going on currently, or to join a game if there is one. The person who creates the game is automatically the judge, and once everyone who has joined the game chooses a red card (these will become "unicorn" cards once we get the drawings done), the judge gets to click on their favorite. That player gets a point, the next player to have joined becomes the judge, and everyone automatically gets a new unicorn card.

This all sounds pretty basic - it works like Apples to Apples, big surprise! However, it took ages to get this done, and it was pretty frustrating. Most errors were silly things and really easy to fix, but then some were super hard to find, especially as night turned to morning, since we were so exhausted by that point.  Sometimes variables weren't what we thought they were, or types didn't match up. At one point, an entire section of our code kept getting skipped, and we spent a good 20 minutes trying to figure out why. It turned out that we were comparing an integer to a string, so they came out as not equal, but we couldn't tell because they both printed out as "7". Another frustrating thing is uploading everything to the server. After every change you make, you have to "push" the code to the server,

which takes a good 3-4 minutes. Really annoying because you can't tell if the changed worked until that happened, and most times it takes at least a few changes to fix a problem.

Game screen
Login screen
In any case, we were able to work through all the problems we encountered, and get sososo much done. With my sister's help, I've reached a point where I can continue the rest of the work by myself - though it takes me a lot longer to fix errors by myself than it did with her. I'm working on creating a to-do list of everything I need to update or add or fix so that I don't forget, and that I never get lost on what I should be doing. Mostly now, though, I need to work on the layout and fixing anything that goes wrong. The game works if every player does the right thing, but it would be silly to expect that to always happen. Accidents always happen, and I need to get the code to prepare for that. There's still so much for me to do, but I've gotten a great start.

Sunday, March 31, 2013

More Lists

On the advice of my mentor, Ms. Seifert, I've started making some lists to keep from getting completely overwhelmed. And what better time than a slow morning at work on some receipt paper?

Friday, March 29, 2013

Image Brainstorm

In preparation for starting coding, I sat down with my younger sister (who is a much better artist than me) and started drawing some blueprints.









Back on Track

I thought I had posted this a few days ago from my phone, but apparently poor cell service is out to get me, so here it goes again:



All set - Phew!

Monday, March 25, 2013

Out of the Rut

Four ways my project plans have changed so far:

1) I originally planned to learn a few different programming languages, but instead I've pretty much focused on Python.
2) In my proposal, I set deadlines, but rather than following those I've been using more of a "reward" system. (Finish the book, the. I can start coding)
3) I imagined that I would be almost done with research by the time I started writing the code for the game, but I think the two will be really entwined.
4) I'm going to need a lot more community help/support than I realized.

Quick Lists



Frustrated

All these nice plans I had are starting to fall through. I really need to go talk to my sister over break, but I never have any days off in a row, so my only option would be to go down Sunday night, and then take the 6 AM bus home on Tuesday. Not only would this be really exhausting, it doesn't leave much time to work on my project. It would be nice to have a few days to do this, but I'd have to get as much done in just one day as I could. Unfortunately, even this plan might not work. The Sunday night bus is totally full, so I'm on the wait list. I can only hope someone else cancels. Plans not working is super frustrating.

Thursday, March 21, 2013

On Asking For Help

Thinking ahead to what I'll have to do to create a game, I've started to feel overwhelmed. There's so much that I don't know how to do. I don't know how to make something multiplayer, or how to put written code onto a website, or anything like that. Luckily, I before I got too panicked, I sent my sister an email asking for help. This was probably the best idea I've had throughout my project. Even though I didn't understand half of what she was advising me to do, she told me that she would do some research, and invited me to come down to NYC to work with her on it over spring break. Even though I'm not sure I'll be able to do that, because I haven't gotten my work schedule yet, it's nice to know that there are people behind me who will support me throughout the project, and who I can always turn to for help.

Tuesday, March 19, 2013

Nine Days

The facts:

9 days, 3 hours, 58 minutes, and 10 seconds until Spring Break.
19 CodingBat exercises left.
268 pages left in Dawson's Python Programming for the Absolute Beginner.

The plan:
Finish all the CodingBat exercises and the book before the start of spring break.
Use the free time during break to start a solid foundation for the final card game. I have a feeling that the beginning will be the hardest because I'll have no clue where to go, so it'll be good to start when I actually have time, and can draw on community resources for help that I'm sure will be needed.

Monday, March 18, 2013

Gleaning From The Past - 2

Gems of the project:
1) there was lots of personality, from emotions to anecdotes.
2) journal entries had humor throughout them

Oops, could have been better:
1) entries didn't appear proofread - lots of errors
2) no pictures or lists, just texttexttext.

What I'm going to borrow:
1) more description about my interactions with other people
2) metaphors made reading more fun!

Friday, March 15, 2013

Gleaning From the Past

I'll admit, I was pretty reluctant to start going through the project documentation of a former WISE student, because it seemed like a huge task and I didn't think I would get much out of it. Obviously, I was totally wrong. Seeing a finished project and journal through the eyes of a reader is completely different than doing journals myself.


What I've learned:
1) Vary entries - walls of text get old really quickly. Adding pictures and lists is a big YES PLEASE.
2) No one wants to know the technical everythings about what you're doing. It's just confusing.
3) Pay attention to what you're writing. Error after error not only makes you look bad, but also makes your entries painful to read.
4) Don't feel bad about short entries - they're much more manageable to the reader than pages and pages.
5) Humor is good. Very good.

How to Become a Millionaire

I mentioned earlier Dawson's ability to lace his writing with humor and make it interesting. Here's an example.

Thursday, March 14, 2013

Monty Python

Fun fact: The Python programming language was actually named after Monty Python, and the books teaching it feature frequent references to spam and 42.


Speaking of books, Mike Dawson's Python Programming For the Absolute Beginner is pretty much a lifesaver. I was able to skim over the first 30 or so pages, because I'm not really an "absolute beginner", but it was nice to have the refresher. Now that I'm getting into the new stuff, I'm finding Dawson's book to be much more readable than Sweigart's. I think some of this is bias, because I'm much more comfortable with paper books than e-books, but some of it is legit. Dawson writes with a sort of subtle humor that makes learning more interesting. Also, at the end of each chapter there are challenge problems, pretty easy tasks, but still they not only cement what I've been reading about, but also keep me engaged, so yay! :D

Tuesday, March 12, 2013

Practicing

For me, it's the practicing that's the most fun. I know the research is necessary to reach the point where I can practice, but I'd much rather be trying out challenge problems or CodingBat exercises than learning how to traverse data structures or use nested loops. This is where the majority of my obstacles are - I'm itching to just get out there and DO something, but I need to build the foundation in order to do this.
However, I did get a new Python book in the mail today (Mike Dawson's Python Programming for the Absolute Beginner) and it looks pretty promising. I'm crossing my fingers that this will be my stepping stone out of the rut I'm in, because it combines research with practice problems, and that might be enough to satisfy my need to "produce" something.

Thursday, March 7, 2013

On Resources

So, I'm coming now to the realization that my troubles with research aren't actually with research - they're with the resources I'm using to do the research. The book I've been learning from is aimed towards much younger kids (as was made quite apparent in the last chapter when it taught how to use Cartesian coordinates - AKA the x,y coordinate system). While I am beginning Python, I'm not beginning at that age level. And I think that's the stem of the problem. It's not the learning itself, just how I'm doing it. Unfortunately, I'm more than halfway through the book, and I just can't bring myself to give up now. Oh well. Downhill stretch now, right?

Tuesday, March 5, 2013

Finding a Balance

At the moment, so much of my project is just reading and learning, it's hard to write about what I've been doing. I could summarize the hour I spent today working on a Bagels game (this is actually a thing - I'd never heard about it until today), but that would be annoying for me to write, and boring for anyone else to read. It's really difficult to find that balance between documenting my progress and lulling people to sleep. Honestly, there's not that much to say about what I've been doing, so I'm constantly trying to think of what might stand out enough that I should talk about it.
For today, I guess that thing might be that I found the Firefox add-on that lets me download videos from YouTube, and it's really compatible with my internet situation. We have a 5 GB download limit per month on our internet at home, so being able to download a video that I can watch as many times as I need to for only 5-10 MB is pretty much a godsend.
Also, I ordered another book to read on Python - this one has really good reviews, and supposedly has practice problems at the end of each chapter where you actually write your own code - not just copy the code the author gives.

Monday, March 4, 2013

Barnsong

Seeing the documentation of a previous WISE project was really helpful for understanding what I need to work on for my own project. Even though the project(s) shown were totally different than what I'm aiming to do, there were themes that applied to me as well.
I better understand now how much work a WISE project entails - and that that work isn't always successful the first time. At one point during the video, the student mentioned, "Things take longer than expected." This rings so true - I think I sometimes set my expectations too high, and realize that what I've planned isn't realistic. It was also really helpful to see that - as the student in the video said - the success is really in the knowledge gained, not the completion of the project. It's relieving to know that even if I have set the bar too high, and don't manage to finish in the time limit, it's not like an automatic YOU FAIL, or even a rare occurrence type thing.
The video did raise a question for me - how do students deal with cost restrictions? This doesn't apply at all to my project, so I hadn't put much thought into it, but it was brought up in the video, and when I was glancing through the finished project I was assigned to respond to, I saw journal entries about parts that cost thousands of dollars. Most people don't have that sort of money just lying around, so I'm curious as to how this kind of barrier is overcome.
After seeing this video, I do feel more comfortable with my project goal, because I'm not as stressed about what will happen if I don't manage it. However, I also feel like I really need to get to work, because I saw how much effort the student in the video put into his project, and that makes me feel like I've been slacking. I really need to get down to it and put in the effort to pull this whole thing off.

Friday, March 1, 2013

To Do

Current To-do list:

1) Finish the book I've been working on since the start
2) Find a new book to use - preferably one that encourages writing your own code, not just following the author's.
3) Finish CodingBat exercises (won't take too long at this rate)
4) Figure out how to get the Firefox add-on that will allow me to download YouTube videos and thus combat my disagreeable internet at home.

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!