In-Depth Post #1

In Talons, there is a project called in-depth. It’s an opportunity for students to learn about a topic that otherwise would not be taught in school. Students choose a topic of little experience they are interested in and learn about it in-depth, hence the name of the project. They also will find an experienced mentor to help them with their project.

This year, I have decided to take on coding for my in-depth project. Specifically, I will be coding games using Java.

 

I have some prior experience from other coding languages (mainly scripting languages) that I have worked with before. I have also took the opportunity to learn a bit about Java during Winter vacation, and right now, I know about:

  • Variables
  • Some basic control structures:
    • basic functions such as console commands
    • conditional structures (if-else and switch statements, but not ternary operators)
    • loops
    • branching statements to be used within other control structures (break, continue, return)
    • methods
  • The only data structure that I have learned so far is the array.

Some goals for my learning:

  • I will eventually be able to write “clean” code to accomplish simple and advanced tasks, and I also want to be able to understand many common techniques that are used at a basic level. I also want to be able to use object-oriented programming effectively.
  • I will learn how to use different control structures, data structures, algorithms, and user interfaces together. I will learn common techniques for using these and I will understand how these techniques work. I will also learn common techniques for patching/resolving bugs and glitches when they arise.

 

I chose to learn how to code because it seems quite interesting. Many games, applications, and websites all involve code, and I want to have a better understanding of how these work. Learning a bit about game design also seems really fun because of the idea of being able to pick out glitches in games and exploit them.

Also, coding seems like a useful skill to have because it may be able to help my future career. My experience with programming will not only help if I want to become some sort of an engineer, but it will help with general problem-solving skills as well.

Java immediately appealed to me because of how flexible, user-friendly, and widely used it is. I figured that it’s probably more beneficial if I start with a commonly used language because it has a bigger community and more well-developed libraries, making it easier to find resources.

 

To help me with my learning, I have sought the help of a mentor. They have thorough experience with game development and coding, so they will be able to effectively guide me and answer some of my questions throughout my coding journey.

 

I have come up with a rough outline of what I plan to do with Java:

  • As a starter project, I will code a calculator application by the end of February. It will work with decimals and have all the basic operations (addition, subtraction, multiplication, division, exponents, and maybe roots).
  • I am still unsure of my second game, but it will probably be one of the following:
    • Re-create Conway’s Game of Life using plain ASCII characters, preferably by the end of march.
    • Create a working chess game. The player should be able to move the pieces around by clicking and dragging.
  • As a final project, I will make a very simple game of my own. I haven’t thought much about this yet (more information in a later blog post probably).

Here’s a timeline of my project:

Activity Timetable
Do some basic research about Java. Week 1
Find a suitable mentor and get all of the paperwork done. Week 2-3
Learn basic concepts and functions in Java. Week 4-6
Create a calculator Week 7-8
Learn basic UI styling Week 9-10
Create Conway’s Game of Life Week 10-12 (might take a week longer)
Create a chess game Week 13-15 (or 14-16 depending on how long the previous project takes)
Learn more advanced UI styling Week 17(18)-19
Create a final game Week 19-22

 

To prove my learning along the way, I will be blogging every two weeks. I will make little example snippets of code to demonstrate anything new that I have learned. Whenever I finish a bigger part of my project (like a game), I will also post that on my blog. I encourage everybody to try out my games. Also, if anyone finds and bugs or glitches, please leave a comment on my blog so I can fix them quickly.

 

Currently, I still need to figure out a more concrete plan, especially about which games I will make. Then, I want to learn about are ternary operators. After that, I want to learn more about data structures and algorithms. I also want to hopefully learn more about object-oriented programming in the future, but that may take a while.

 

Thank you for reading! Keep an eye out for new blogs posts later, as normally I will be posting every two weeks.

One thought on “In-Depth Post #1

  1. Detailed post. Great to see you use the Christmas break to get started. I look forward to you teaching me how coding in Java works.

Leave a Reply

Your email address will not be published. Required fields are marked *