Monday, July 28, 2025

week 13

I worked with Ysabelle Kim on this assignment. Her code worked and scored 19 out of 20. The only thing she missed was one branch, but everything else worked the way it was supposed to.

For my strategy, I didn’t plan it out on paper. I just started coding right away because there were so many assignments due around the same time, and I wanted to get something working first. Ysabelle said she approached it the same way. We were both more focused on getting it finished quickly than slowing down to plan or map things out. Looking back, we both agreed we probably would’ve saved some time (and stress) if we had done a bit of planning first.

We didn’t go through each other’s code line by line, but we did talk about how we approached the assignment and what parts felt the most difficult. The logic for Markov itself wasn’t too bad once it started working, but getting it set up cleanly felt rushed. Most of that came from trying to balance this with all the other assignments we had due.

If I did it again, I’d take a little time to plan the flow of the program before starting to code. Even a quick outline could have saved some of the testing and rework later on.

I already have the Google Style plugin installed in IntelliJ, so my code gets formatted automatically as I work. That part at least made things easier because I didn’t have to worry about spacing or style at the end.

Tuesday, July 22, 2025

week 12

I started by reading the instructions, just to see what I needed to do. I kinda wish I had more time for only this one, because I feel I could have learned more if I just focused here. But I didn’t. Most of what I did was just try things, fail, try again. One method just didn’t work right, no matter what I did. I kept running the tests, over and over, making small changes. I think it took me a couple hours just to figure that one thing out. 

I didn’t plan anything on paper. I just started coding. I didn’t really have time to stop and think much, so I just wanted to get something on the screen and working. Looking back now, maybe a quick plan would have saved me time, but I didn’t do it. 

If I could change my approach, I’d try to slow down. Maybe focus on fewer assignments at the same time. But I get it, the class moves fast, so we don’t get that choice. If I ever had more time, I’d like to just sit, think it all through, maybe write notes, research more, then build everything step by step. 

I already have the Google style code formatter set up on IntelliJ, so I didn’t need to automate the style rules any other way. 

The hardest part was definitely the tests. This was supposed to be a short project, but for me it was over seven hours. Maybe I’m just slower, I don’t know, but it wasn’t easy. Finally getting all of them to pass though, that was the best moment. 

The part I liked most was just coding. Even when it’s frustrating, I enjoy it. But the best part was the feeling when I passe d every test. I almost gave up at one point, so that moment felt huge for me. 

My sister (Maria Caicedo) looked at my code and said it was done well. She told me it was easy to follow, with variable names like currentWord, guessCount, and usedLetters, which kept things clear. She noticed I had Javadoc comments in place and no leftover TODOs or unfinished notes, which she said made my code feel complete and organized—she admitted she still had some in hers, so she thought I did better there. 

She tested the makeGuess() and getHint() methods and said they worked smoothly with the test file, and, of course, all the unit tests passed. She also said I didn’t have extra imports or leftover lines, so everything felt clean. The only small thing she pointed out was that I used == to compare Strings in one spot. It didn’t break anything, but using .equals() would be safer. Other than that, she thought the project felt solid and ready to go.

What I’m proud of is simple, just finishing it and passing. When I was done, I didn’t really celebrate. I just went to sleep. I work full time and take care of my family, so I was just done for the day.

Saturday, July 12, 2025

Week 11

 Maria Caicedo’s Code

Maria’s version was really clean to read, which made going through her logic easier. Variable names were on point – stuff like secretWord, guessedLetters, and numberOfHints made it super clear what was going on without needing extra explanations. She did include Javadoc comments for most methods, although I saw a couple TODO comments and some placeholders like //FIX THIS – probably stuff she meant to get back to later. The core logic worked well though, and the methods followed the assignment spec closely.

One thing I appreciated was how well her chooseWord() and makeGuess() methods worked with the test file. All the unit tests passed, so that’s a good sign that the implementation is solid. There were no extra imports or unused stuff hanging around either. One small thing – in getHint(), she checks if (!guessedLetters.contains(currentChar)), but guessedLetters is a list of String, so comparing with a char might be inconsistent. It didn’t break the tests though, which is kind of wild.


Ysabelle Kim’s Code

Ysabelle’s code looked really complete. Her use of helper methods and clear separation of responsibilities made the structure feel tight. She used a List<Character> for guessed letters, which I think is actually a little better than using a list of strings (like Maria did), because it avoids confusion when comparing characters.

One thing that stood out was how methodical her readFile() implementation was – she even mentioned how nextLine() shouldn't be called multiple times, which shows she really paid attention to the details. The variable names were consistent, and she had setters for a lot of values, which added flexibility. She also made use of debug prints well, and nothing seemed out of place or unfinished. No unused imports either.

Unit tests passed just fine, and her implementation didn’t mess with the test file format or logic. Overall, it felt like a solid and polished submission, and it didn’t try to do more than it needed to.


Stanislav Permiakov’s Code

Stanislav’s version was maybe the cleanest in terms of logic flow. The chooseWord method, for example, felt really complete – like he covered edge cases, added early exits, and used Random in a reliable way to avoid getting stuck in a loop. He also remembered to close the scanner in readFile(), which I forgot the first time I wrote mine, so props for that.

Some of the comment sections were still placeholder (like the author and date), but the actual code worked really well. He didn’t overcomplicate the design, and it followed the test expectations perfectly. I noticed that his guessed letters were also stored as characters, not strings, which helped when checking against the secret word.

No extra imports, formatting was clean, and naming was clear. If anything, I think he could’ve added a couple more comments in key methods, just to explain his thinking. But from what I saw, everything functioned right and unit tests all passed without changes.


Overall Thoughts

One thing I noticed is that all of us had different takes on how to handle guessed letters – Maria used strings, Ysabelle and Stanislav used characters. I think using char directly might be safer and less confusing when comparing to characters in the secret word, so I might update mine to match that.

Another common theme was that everyone passed the unit tests, which honestly surprised me a bit. I thought someone’s implementation might break on edge cases like repeated guesses or invalid input, but nope – all three handled that stuff well.

The hardest test to pass in my own experience was probably the hintTest(). Just because the test requires the hint count to drop and the guessed letter to be valid – and my earlier version didn’t decrement the hint counter properly. After seeing how the others did it, I realize I can simplify my version a bit and make it more readable.

Something I struggled with was writing the makeGuess() method cleanly – I rewrote it a couple times before I got it working. It’s easy to mess up the part where you’re updating the guessedWord string and tracking score at the same time. I noticed Ysabelle handled that well with clean if-else logic.

If I had to pick one improvement for my code, it would be to make it more readable and clean like Stanislav’s and maybe structure things better like Ysabelle did. I think I was too focused on just getting the tests to pass and didn’t think about future readability.

My biggest win was getting all the unit tests to pass in the end. It honestly felt like a relief after spending so much time tweaking little things and debugging. Seeing everything pass gave me confidence that my logic held up, even if it wasn’t perfect.

Tuesday, July 8, 2025

week 10 (Week 2)

This week I did Lab 00 and 01. Java still feels kind of weird. Sometimes I think I get it, but then I try something and it just doesn't work. I fix one thing and something else breaks. Not sure if I’m just overcomplicating things or what. I mean, I do feel like I’m learning, but it’s slow. Slower than I hoped, honestly.

With Git, I’m mostly using git addgit commitgit status, and git checkout. Those I’m starting to get used to. I still check the branch a lot before I do anything. I don’t want to mess things up. I haven’t done anything too advanced with Git, but for now it’s enough to keep things organized.

Unit testing was brand new for me. Never touched anything like that before. I saw @Test and didn’t even know where to put it. I copied some structure from the examples and messed with it until things passed. Still not sure I understand how it all works, but I can tell it’s useful. Like, it tells you if you broke something. That’s pretty helpful.

Then there’s the LDPM project. Yeah. I opened it and just stared at it for a while. It’s a lot. Haven’t really done a lot yet, just kind of planning. I don’t even know the best place to begin, but I’ll probably just pick one part and go from there. It looks time-consuming. Definitely not a quick assignment.

So yeah, the week had its moments. I’m learning. Slowly, but I am. Hoping next week I feel a little more in control.

Week 28

This week’s focus on concurrency and threads felt like a big shift from everything we have done so far. Until now, processes always felt sim...