Karela 2023 http://nataliecapstone2023.knight.domains Just another WordPress site Mon, 24 Apr 2023 01:15:28 +0000 en hourly 1 https://wordpress.org/?v=6.2 The End is Near http://nataliecapstone2023.knight.domains/uncategorized/the-end-is-near/ http://nataliecapstone2023.knight.domains/uncategorized/the-end-is-near/#respond Mon, 24 Apr 2023 01:15:27 +0000 http://nataliecapstone2023.knight.domains/?p=524 Read More »The End is Near]]> The End is Near

4/23/2023


This week was very productive! I am really feeling the time crunch so I’ve been putting in a lot of work to finish the project and get to a point where I am ready to present. Most of what I’ve done this week was working on a precompile function and a new run function. I think I have gotten these working well. Basically, instead of running by going through each item in the program, I now go line by line and can easily go back for loops and even nesting!

I now have a table with each of my special statements like loops and if statements with their start and end. When I run, it checks if the line number is in the table and if it is a start or end. It then checks the condition or sends it back to the top to be checked. It’s pretty sleek and was easy to transform into a step function as well. It seems to be running well and better than before! There are a few bugs with the lesson form and the new functions but they shouldn’t be too big of a problem.

Overall, I feel very accomplished and like I am in a really good spot. Karela is beautiful and I am so proud of her.

]]>
http://nataliecapstone2023.knight.domains/uncategorized/the-end-is-near/feed/ 0
Better Late Than Never http://nataliecapstone2023.knight.domains/uncategorized/better-late-than-never/ http://nataliecapstone2023.knight.domains/uncategorized/better-late-than-never/#respond Tue, 18 Apr 2023 02:31:21 +0000 http://nataliecapstone2023.knight.domains/?p=521 Read More »Better Late Than Never]]> Better Late Than Never

4/17/2023


IT IS CRUNCH TIME! The end of the semester is coming fast! This week, I started cleaning up my program and ran into some issues with the rich text box. It’s frustrating because I solved these problems with a normal text box but the rich text box is more difficult. It’s all minor things so that’s good. Other than that I started working on implementing a way to help with highlighting my text properly. I am hoping to have this feature working properly for presentations but it is at least started. This is a short blog because there isn’t really anything super important left to do in the project before presentations.

There is one very important thing from this week though! I am pleased to introduce you to Karela the Robot! I finally got around to creating an image for Karela and she is beautiful! She now navigates through my grid instead of a boring arrow! 🙂

]]>
http://nataliecapstone2023.knight.domains/uncategorized/better-late-than-never/feed/ 0
A Plan http://nataliecapstone2023.knight.domains/uncategorized/a-plan/ http://nataliecapstone2023.knight.domains/uncategorized/a-plan/#respond Tue, 11 Apr 2023 00:39:46 +0000 http://nataliecapstone2023.knight.domains/?p=518 Read More »A Plan]]> A Plan

4/10/2023


This week was a lot of planning and looking ahead. There are only a few more weeks left of the semester; since this week was short, it was my planning week. I am in a really good place with Karela but there is one last big thing I can implement to improve the program. I have met with Dr. McVey and Dr. Pankratz about a way to allow nested loops and help with line highlighting in the program. Basically, I could use a stack to create a table that tells me where any loop or if statement started and ended. I would keep track of my line numbers and the table would allow for easy access to where loops and if statements end and start.

I have a good understanding of how I can implement this idea but I haven’t started to work on it yet. I will need to make sure I have a working copy of my program just in case anything goes wrong though. I am satisfied with what Karela does now but I want to improve it the best I can before the end of the semester. We’ll see what happens in the next few weeks. Other than implementing this new idea I will just be cleaning up my code and polishing the program.

]]>
http://nataliecapstone2023.knight.domains/uncategorized/a-plan/feed/ 0
From Poor to Rich http://nataliecapstone2023.knight.domains/uncategorized/from-poor-to-rich/ http://nataliecapstone2023.knight.domains/uncategorized/from-poor-to-rich/#respond Mon, 03 Apr 2023 04:09:36 +0000 http://nataliecapstone2023.knight.domains/?p=513 Read More »From Poor to Rich]]>

From Poor to Rich


4/2/2023

This week went pretty well! I met with Dr. Pankratz on Wednesday and successfully complete my walkthrough on Thursday! Aside from making some minor tweaks, I accomplished two main things this week, creating some lessons and transitioning to a rich textbox over a plain textbox.

I was able to write a few lessons and have them saved to a text file. The program them reads from the text file and displays the lesson. It’s working well so far. I still have to write a few of the lessons but I have at least 3 working in the program. I also focused on changing my textbox to a rich textbox based on feedback from this week. This transition was harder than I thought because I was reminded of why I didn’t use a rich textbox to begin with. When text is dragged into a rich textbox, the escape sequences are erased so I could no longer rely on \r\n to separate my commands. I finally had to give in and add a semi-colon at the end of each command. This definitely threw wrenches into the program because I relied on the escape sequences so must. It’s smoothing out though.

Once I switched to a rich textbox I could implement what everyone has been asking for, an indicator of what line is running. It is a work in progress but I have the program highlighting lines as it runs. My main issue has been finding the line that needs to be highlighted. With just a string of commands it works perfectly but when you through in some sort of loop it’s not as easy. I thought I had it working but it currently is not. It’s a work in progress but I’m happy with how it’s turning out. At least everything is working properly and the highlighting is the only issue right now.

Here is a video of the lessons and highlighting:

]]>
http://nataliecapstone2023.knight.domains/uncategorized/from-poor-to-rich/feed/ 0
Documenting http://nataliecapstone2023.knight.domains/uncategorized/documenting/ http://nataliecapstone2023.knight.domains/uncategorized/documenting/#respond Sun, 26 Mar 2023 18:55:47 +0000 http://nataliecapstone2023.knight.domains/?p=507 Read More »Documenting]]>

Documenting


3/26/2023

A lot of this week was spent getting a plan of attack on the rest of my project. I got a chance to talk with Dr. McVey and Dr. Diederich about my program and show off my progress. Overall, I feel that I am on the downswing of it all. My project now contains all of the main functions that I wanted it. It will run a program, open a lesson and save/open programs. It seems that everything else is just cleaning it up and making sure everything is running smoothly.

My major progress this week was adding a save and upload function to the project. The user can now save their program to a text file and upload a program from a text file. This was pretty easy to do because I could just use a save dialog box and an upload dialog box. There are a few tweaks to be made but it is working well. I also worked on my documentation his week. I am still working in my Prototype project and hope to start transitioning to my final soon. That being said, I need to document my code so I can easily understand it when I transition into the final project. Everything is pretty organized now so the transition shouldn’t be too hard.

Moving forward, I want to focus more on the design aspects of the project. Saving and uploading files was my last big step so I want to work on the design more. I also need to work on getting lessons together. Right now I just have samples that I use instead of an actual lesson. My plan is to work on the design aspect and get some complete lessons together this upcoming week as well as smoothing out some issues as I come across them.

Here is a video of my progress:

]]>
http://nataliecapstone2023.knight.domains/uncategorized/documenting/feed/ 0
Spring Break http://nataliecapstone2023.knight.domains/uncategorized/spring-break/ http://nataliecapstone2023.knight.domains/uncategorized/spring-break/#respond Mon, 20 Mar 2023 00:55:18 +0000 http://nataliecapstone2023.knight.domains/?p=503 Read More »Spring Break]]>

Spring Break


3/19/2023

Over spring break, I did a lot of housekeeping and worked on the implementation of lessons. First, I changed my code to create my pictureboxes in my grid programmatically. This helped to clean up my code so it is easier to go through. After getting it to run programmatically, I focused on how to get my main form to talk to my lesson form. After a lot of trial and error, I found that I could just pass my main form as a parameter to the lesson form and use functions from my main form in my lesson form. To get to the lesson form, I have a list of each lesson name and a lesson button that will open the selected lesson. This is subject to change but it is a start. There are a lot of little details that need to be worked out but for now, it is functionally mostly how I want it to be.

What I plan on tackling next is writing at least one lesson out entirely and creating a task to go along with the lesson. After that, I want to focus on how I can save progress in the application. I’m not too sure how to tackle this so it will take some research and the use of my resources.

Here is a video of the progress with the lesson window:

]]>
http://nataliecapstone2023.knight.domains/uncategorized/spring-break/feed/ 0
Organizing Thoughts http://nataliecapstone2023.knight.domains/uncategorized/organizing-thoughts/ http://nataliecapstone2023.knight.domains/uncategorized/organizing-thoughts/#respond Thu, 09 Mar 2023 04:00:39 +0000 http://nataliecapstone2023.knight.domains/?p=498 Read More »Organizing Thoughts]]>

Organizing Thoughts


3/8/2023

Even though this isn’t the end of the week, I am updating my blog because I’m not sure how much progress will be made the rest of the week on this project. The last few days, I’ve been starting to get overwhelmed with what my next steps will be. I decided that I needed to step back and organize my thoughts as I progress. My next focus is getting my lesson window functioning and writing lessons. I have put together a document with general ideas for lessons and then created a rough sketch of how the lesson window should work and interact with the main window.

Basically, the lesson window will be able to run a set program that shows whatever is being taught. The user will then be given a task to complete and can press a button in the lesson window that will check their code. Moving forward, I want to create a sample lesson to be used in development and work on implementing these ideas. In the meantime, I got an if-else statement to work in the program and the step button is starting to smooth out. There a still a few issues but it is generally functioning well.

]]>
http://nataliecapstone2023.knight.domains/uncategorized/organizing-thoughts/feed/ 0
A Step Forward http://nataliecapstone2023.knight.domains/uncategorized/a-step-forward/ http://nataliecapstone2023.knight.domains/uncategorized/a-step-forward/#respond Sun, 05 Mar 2023 20:14:36 +0000 http://nataliecapstone2023.knight.domains/?p=492 Read More »A Step Forward]]>

A Step Forward


3/5/2023

This week was a busy week so there hasn’t been too much progress. The biggest achievement would be the creation of a step-through button which allows the user to step through the code line by line. After a meeting with Dr. McVey, I found that it wasn’t very hard to do with the way that I have coded the run button. The hardest part was maintaining by place in the program when the step button was pressed. My loops gave me a bit of trouble. In trying to figure out the step-through, I found bugs in my run button. I think I got a little ahead of myself and didn’t test it all thoroughly. I still have one bug that I am trying to work out but otherwise, the step-through is working and the run button has been fixed.

With the step button, I had to put some safeguards in so the program didn’t throw an exception. I found that if I spammed the button, I threw an exception so my fix was to disable the button once it’s clicked and only enable it once it’s gone through the actions it needed to. This should fix any errors caused by someone spamming the button, especially out of frustration as I did. Right now, step-through is a variable mess but it works. There is a lot of tweaking that will need to be done but functionality is the main goal right now.

As a break from debugging, I created a new form for the lesson window and a button that launches the form. This will set me up nicely for focusing on my lesson window in the upcoming weeks. Overall, this week was not as productive as I would have liked on this project but it’s still coming along.

]]>
http://nataliecapstone2023.knight.domains/uncategorized/a-step-forward/feed/ 0
Polishing Up http://nataliecapstone2023.knight.domains/uncategorized/polishing-up/ http://nataliecapstone2023.knight.domains/uncategorized/polishing-up/#respond Mon, 27 Feb 2023 01:27:56 +0000 http://nataliecapstone2023.knight.domains/?p=488 Read More »Polishing Up]]>

Polishing Up


2/26/2023

This week was all about polishing up what I had and doing a lot of the tedious work I have put off. I would say my major achievement is getting a for loop to work. The syntax for everything and to show all of my functions is laid out in this document. The for loop is limited to incrementing up and down and to either a greater than or less than condition. That might be changed in the future but for now, it is working how I would like it.

Aside from the for loop, I added images for all of the new commands I have created so my menu of options is expanding. There are now many conditionals that can be dragged in as well as turning in different directions and the for and if statements. Dragging is now working where text is dropped wherever the cursor is in the textbox versus just adding the text to the end of the string too.

While working on my loops and if statements, I realized how much I was relying on spacing in my program so far. Right now everything must be on separate lines but I have fixed my reliance on capitalization by changing everything to lower when I get it from the text box. That is one way that I can eliminate annoying little syntax errors revolving around capitalization. Spacing might be a beast that I walk around instead of slaying for this project. I am trying to reduce small syntax errors but removing them all would defeat the purpose of this program. Including rules like having to put everything on separate lines will help students transition into languages like Python that rely on spacing or just help them develop good practice for using other languages.

The final element that was added this week was a run and reset button along with changing the colors of the grid. When run is pressed, the buttons and textbox are disabled and the grid color changes to green. When the program is done running, the grid color lightens a bit and will only return to gray if the grid is reset with the reset button or briefing when the program is run again.

]]>
http://nataliecapstone2023.knight.domains/uncategorized/polishing-up/feed/ 0
Adding Some Class http://nataliecapstone2023.knight.domains/uncategorized/adding-some-class/ http://nataliecapstone2023.knight.domains/uncategorized/adding-some-class/#respond Sun, 19 Feb 2023 23:45:37 +0000 http://nataliecapstone2023.knight.domains/?p=483 Read More »Adding Some Class]]>

Adding Some Class


2/19/2023

I have added a class to my program after weeks of convincing myself it would just be more work. My breaking point for creating a class that contained the picture boxes in my grid was adding more advanced functions. I was thinking about how to use loops and conditionals and quickly found myself adding more and more variables. I had arrays galore and it was too much. I had an array for my picture boxes, the active square, if a square was painted, if a square was blocked. It was too much and I finally caved creating a class for each box. My class now holds the picture box, the box’s row and column, if the square is blocked and if the square is painted. Creating this class decreased the amount of variables I had and made it easier for me to keep track of them all.

Once I created a class, I took on the task of creating a while loop. This required more variables and quite a bit of thought. It was important for me to keep track of where I was in my code and to keep track of each variable. For a while loop, I need to know if we are in a loop, what the condition of the loop is and what is contained within the loop. Since I have a foreach loop that goes through the text in the text box, I had to figure out how to stop in the middle of that and repeat. In simple terms, I figure out I am in a loop by reading in the word “while”, then I go through each command in the loop storing it in an array, and finally I repeat the contents of the array until the condition is no longer true. In a similar way, I was able to create an if statement.

Right now, the only conditions I have are whether a square is blocked and whether the square is painted. It is a simple start and not too pretty but it’s working. This week, I want to focus on polishing what I have and creating more conditionals to work with my while loop and if-statement. To help me out with staying organized, I have created a document that has a list of rules for my language and what is contained in the language. This document shows what is completed, what needs to be completed and what is a work in progress.

Here is a video of the updates I have made:

]]>
http://nataliecapstone2023.knight.domains/uncategorized/adding-some-class/feed/ 0