Posts

CST 334 - Week 3

Week 3 Summary: This week in CST 334 was a rollercoaster. We started working on PA3, which is all about building a memory allocator. Basically our own version of malloc() and free(). At first, I thought, “okay cool, pointers and structs again,” but this assignment humbled me quick. Managing memory manually, keeping track of chunks, splitting them, and then coalescing them back together sounds simple on paper but actually implementing it without causing segmentation faults or crashing everything was tough. One thing that stood out was just how fragile everything becomes when you're directly manipulating memory. A wrong pointer or forgetting to update a linked list will break the whole thing. A lot of my time was spent debugging and going through each line of my code just to figure out where things were going sideways. The split_node function specifically gave me a hard time. It took me a while to realize how important it is to keep the fwd and bwd pointers clean or everything falls ...

CST 334 - Week 2

Week 2 Summary:  This week in CST 334, we dug into how operating systems handle processes, and honestly, things are starting to make more sense now. I’ve heard the term “context switching” before, but I never really got what it meant until we broke it down. Learning the difference between voluntary and involuntary switches like when a process is just waiting for input vs. when the OS forces it to stop, helped a lot. It’s kind of wild to think about how much the OS is doing behind the scenes just to keep everything running without us even noticing.  We also got into how processes are created in C with fork(), exec(), and wait(). The fork() function really threw me off at first. I was like is the same program just running twice? But it made sense after printing out a bunch of values and looking at the return codes. It’s pretty cool how the parent and child processes end up doing different things, even though they start from the same place. Later in the week, we went over schedul...

CST 334 - Week 1

CST 334 Week 1 Summary: This week was a solid intro to how operating systems work especially around the idea of processes. I learned that what feels like multiple programs running at the same time is really just the OS switching between them really fast — way faster than we notice. The OSTEP reading broke down how context switching works and what’s actually saved when the OS switches from one process to another. It basically tells us that every process has its own state and memory even if it’s just sitting idle. I also brushed up on basic computer architecture and got more comfortable using the Linux shell. In one of the assignments we used gcc to compile C programs. We also practiced navigating files and running commands. We also went through the process of using gdb to debug C code. Setting breakpoints and stepping through the program made it way easier to see what was actually going wrong. The PA1 assignment was definitely challenging especially getting String__resize to pass all th...

CST 363 - Week 8

1. While taking CST 363, I learned how to write real SQL queries with joins, subqueries, and views and got a lot of hands-on experience with it using the MySQL Workbench during our labs and homework assignments. 2. We learned how to design a database using ER diagrams and normalization also through the workbench. 3. I got hands-on with MongoDB and saw how it’s different from SQL, plus how to connect databases to simple web apps and got experience doing that through the command prompt/ terminal.

CST 363 - Week 7

  MongoDB vs MySQL These are both databases, but they work pretty differently. MySQL uses tables like a spreadsheet. Everything is organized in rows and columns. MongoDB doesn’t do that. It stores data in a more flexible format, kind of like writing it in a JSON file. They do have some stuff in common. You can use them to search through data, they both support big amounts of information, and you can use them with most languages. The main difference is how strict they are. MySQL wants everything to follow a specific structure. MongoDB lets you throw in different kinds of data and it won’t complain. Personally, if I was doing something like tracking student grades or a store inventory, I’d go with MySQL. But if it was something like a social media app where the data changes a lot, MongoDB would be better.

CST 363 - Week 6

Lab 17 -  In this lab, I learned how to connect a Java program to a MySQL database using JDBC. I handled user input, inserted data safely with checks for duplicates and valid departments, and used transactions with commit and rollback. I also tested everything from both Java and the MySQL terminal to make sure it worked as expected. Lab 19 - Group Project Our group built a prescription management system using Spring Boot and MySQL. I worked on the patient update controller, where I handled retrieving the patient's current info, displaying it in a form, validating the doctor’s name, and updating the patient's address and assigned doctor in the database. We also created tables for doctors, patients, drugs, pharmacies, prescriptions, and inventory. Then we wrote Java controllers to handle registering and updating doctors and patients, creating prescriptions, and validating input.

CST 363 - Week 5

Slow Indexes I learned that even if a query uses an index, it can still be slow. It’s not the index itself that’s slow, but what happens after. If the index finds a lot of matches, the database has to scan extra pages and go back to the table for each row. That’s what really slows things down, not a “bad” index. Week 5 Reflection: This week was interesting and fun as well because of the practical assignments we did. Lab 18 was a good practical experience where we designed a real-world database for a pharmacy system. Setting up the tables and connecting everything made it easier to see how this stuff would actually work outside of class.

CST 363 - Week 4

  5 things I’ve learned so far: I’ve learned how to break down large, messy data into normalized tables using 1NF, 2NF, and 3NF to reduce redundancy. I now understand how to write proper CREATE TABLE statements with primary and foreign keys to enforce relationships and data integrity. I’ve gotten comfortable using basic SQL commands like SELECT , INSERT , UPDATE , and DELETE to interact with databases. I learned how to read and design Entity-Relationship diagrams, and how those translate into actual table structures. I’ve seen how indexes can make data lookups way faster, especially when dealing with thousands of rows. 3 questions I still have or need more clarity on: How exactly are indexes structured and stored behind the scenes? Like what data structures are used? What should I consider when designing a database for a really large or growing application? I still want to understand how database transactions work, especially when multiple users access or ...

CST 363 - Week 3

  1. What is an SQL view? A view in SQL is like a virtual table. It doesn’t actually hold any data itself, it’s more like a saved version of a query that we can reuse. It works like a table since you can select from it just like any regular table, but it has some limits. A good example is that you usually can’t insert, update, or delete rows in a view unless it’s really simple and includes all the necessary columns like a primary key. It’s more useful for organizing or simplifying complex or complicated queries so you don’t have to rewrite them every time. 2. Comparing SQL to Java SQL and Java are pretty different overall, but they do share some ideas. In SQL, you use the where statement to filter results which is kind of like an if-statement in Java. And the select statement in SQL is like Java’s return statement as it tells the system what data to give back. But the big difference is that SQL is mostly about handling a lot of data like working with entire tables at once, while ...

CST 363 - Week 2

  1.   Example of a non-equality join: We have a list of people and a list of products. We want to find out which products each person can afford based on their income. This join doesn’t use an equal condition. Instead, it uses a greater than ( > ) comparison. English sentence: Match each person with the products they can afford where their income is greater than the product's price. SQL query: select people.name, products.item, people.income, products.price from people join products on people.income > products.price; 2. Opinion on SQL as a language: I think SQL is pretty easy to learn when it comes to basic queries. The structure is simple and readable. But it can get tricky when joins, groupings, or nested subqueries are involved. Once you practice it starts to make a lot more sense as you're essentially just pulling data from databases and files. The SQL language is what makes this process of pulling data easy because of its simple syntax and logic.  Most ch...

CST 363 - Week 1

  1. Differences between databases and spreadsheets: They might look pretty similar at first, but databases are way more structured. They have rules like primary keys and data types, and they’re built to handle a lot of data, multiple users, and complex queries. Spreadsheets are good for small tasks, but databases are better for anything bigger and serious. 2. Why databases are worth learning: It takes some effort to set them up and learn, but it's worth it. Databases keep data clean, organized, and secure. You can search through a lot of data quickly and make sense of it. That’s super helpful in real-world jobs or any big organizations. 3. What I want to learn: I want to get comfortable with SQL and really understand how databases work. I think it'll help a lot in any tech-related job, especially in backend development or data analysis which I am really interested in.

CST 338 Software Design - Week 7

  Look back at the HW1 Look back at the HW1 assignment and think about how you would approach it now.  Think about all the things we have covered and how far you have progressed. - Looking back at HW1 (the Markov assignment), I’d approach it with a much better understanding of the concepts now. In the beginning, I had some difficulty understanding how to implement the Markov chain and random text generation because of how complicated the different methods looked. But through the course, I gained more clarity on algorithms, handling edge cases, and how to structure my code for better readability and efficiency. I would also apply more testing in projects, ensuring edge cases are covered, and leverage better use of helper methods to keep the code clean. Overall, the learning from this course helped me approach the task with a more systematic and confident mindset.  Highlight at least two victories.  It is very important to celebrate things that go  right .  I...

CST 338 Software Design - Week 6

 Do it later

CST 338 Software Design - Week 5

Who did you work with? I worked with my teammates Nasser, Noah, and Jian. What was your strategy for solving the Markov assignment? I kept it simple and just went step by step. After going through the instructions, I didn’t waste much time and jumped straight into the code. I focused on writing each method one by one, starting with the main functionality of the Markov class—building the word dictionary and generating random sentences. I also made sure to get the file reading and punctuation handling right. What was THEIR strategy for solving the Markov assignment? Nasser, Noah, and Jian all took a similar approach. They also worked through the assignment step by step, carefully following the instructions, and coding method by method. How would you change your strategy having worked on the assignment? Honestly, I wouldn’t change my approach because it worked well for me. The instructions were clear, and breaking the task into steps was effective. If the instructions were less clear...

CST 338 Software Design - Week 4

  Work with some of your fellow classmates and go through your solution to project 1: LDPM With whom did you work? I worked with one of my teammates named Nasser.  What was your strategy for solving the assignments?       -  Did you start writing code right away? Did you plan it out on paper?  I have a very simple way of doing these kinds of assignments. I open the directions and start following the order and do it step by step. Thankfully we have clear enough directions to do that or else I wouldn't be able to as these projects are a little complex. I also don't like games at all so making a game is even harder for me. After looking through directions I just started coding method by method with the directions given until I completed it.       -  What was THEIR strategy for solving the assignments Nasser said he did the same thing.       -  How would you change your strategy having worked on the as...

CST 338 Software Design - Week 3

 Project 1 Part 1 and 2 Reflection: Who did you work with? I worked with all my teammates: Jian, Nasser and Noah What improvements would you make to your code/what was suggested? Based on the feedback I received, I would work on simplifying the logic in some of the methods, like attackModifier() and calculateAttackPoints(). These methods can be optimized and made clearer, as the game didn’t require overly complicated logic. I would focus on reducing the reliance on if statements and instead explore alternative approaches to handle multiple conditions more efficiently. Which unit tests were the hardest to pass? defTest. That one was very hard to pass for some reason. And the others I found out weren't passing because of the calculation methods not being correct. After editing those it passed.  How do the existing tests function and could they be improved? I think they function pretty nicely and can't think of any practical improvements as of right now...

CST 338 - Week 2

 Update later

CST 338 Software Design - Week 1

  Week 1 Learning Journal: Reflection on HW 01 and Other Assignments: Week 1 we worked on multiple assignments. Since these are all 8-week courses, we have to learn really fast which is a big challenge for me. I'm the type of person to work better as the days go on and the more I get used to something. As soon as I'll grasp everything here we'll already be finishing up with the course. Anyways, I worked on CodingBat exercises, learning UML and JUnit, setting up the LDPM project, etc. I really liked the Project 1 starter and IntelliJ stuff as I got to use the software and get accustomed to it. I am feeling more comfortable everyday as I use it. I can say I feel proud that I can use such a software. One of the challenges with this class is the Git platform. That will take a bit to get used to. “The submission is missing the screenshots of fields and auto generated setters+getters.” I received this comment in the first check in for the big project that’s coming and this was on...

CST 338 - Software Design | Week 0

Week 0 was mainly introducing us to Java. I haven't coded in this language for over a year so it was really rusty for me. However, thanks to Codingbat, I got to relearn some of my java capabilities. Here is a recap: Did you plan it out or throw code at it? In the first few exercises I did initially try just throwing code at it. I quickly realized that this was more than just solving a problem. We have to be systematic and organized as we learned in CST 300. You can't just get work done; you have to do it right.  What worked? I was thinking of hurrying through it and take only 45 minutes to an hour as it said it would take that long for these assignments. However, when I started planning out my solution and actually working through it, it took me much longer. What worked was to understand what the problem is asking from you and then to complete it step-by-step.  What DID NOT work? Throwing code at it didn't work. I had to look through the different functions and lines that j...

Week 8 - Final Week of CST 300 | Video Project Reviews | Learning Journal

Part 1: Video Review #1 (Evaluation and Suggestions included) - Replicant Collective: Biomimicry Video Link:  https://www.youtube.com/watch?v=ukOhBReFl5k 1. is the topic well covered?       Yes, very well. Intro is clear, then jumping into what they will present during this presentation.  2. is the presentation clear?      For the most part, yes. Speaker's spoke a little low or maybe audio was cut down during the editing of     the video and the background music . 3. how is the quality of the research?     The quality of the research is very good and is seen throughout the presentation.  4. how is the quality of the video production?     It is beautiful. The background music and video was very engaging and kept the audience engaged.  5. is the video engaging and interesting?     Yes. Because of the background effects, music and scenery.  6. is the team work evident?     Ye...

Week 7 - Video Project & Week's Reflection

Part One: How did you collaborate? So far, we completed the professional audience video. Our collaboration was phenomenal. We have two set times to meet throughout the week:  Monday at 4:00 PM and Wednesday at 1:00 PM. This allows us to start on assignments as soon as they are open and we have the time to sit through those days working together. One of our meetings lasted almost 5 hours. Everyone in our group is motivated and disciplined and also capable of working in a team. We listen to each other's opinions and make sure we communicate any problems we may have.  What tools did you use to communicate and produce? We used: - Discord for recording and communication.  - Google Slides for production. Is the process smooth? Yes and no. What happened the other day was that we didn't really read the directions right and thought the assignment was pretty straightforward. However, after almost completing the professional slides, we came to realize that we didn't follow through w...

Week 6 - Capstone Ideas Discussion, Weekly Journal

  Part 1: Help Your Teammates to Develop Capstone Ideas We discussed all our possible capstone ideas and saw a relation of organization and artificial intelligence within our ideas.  These were our ideas: User-friendly appointment booking system for small businesses - Many small businesses have a hard time with inefficient and difficult scheduling systems. This project would create a simple, mobile-friendly appointment booking system with features like automatic reminders and calendar, significantly improving customer experience and reducing no-shows. Smart navigation system or app for public spaces - Many people struggle with navigating crowded places like malls, airports, or large events. This project would create a user-friendly mobile app that provides real-time navigation indoors, showing the least crowded paths based on foot traffic data. It could also include accessibility-friendly routes for users with disabilities, improving overall user experience and convenience. AI...

Week 5 - Team Comments, Capstone Ideas, Weekly Journal, Industry Expert Interview

Image
  Part One: Team Comments  Comment for Jian:  Jian's Week 4 Journal Comment for Noah:  Noah's Week 4 Journal   Part Two: Capstone Ideas 1. User-friendly appointment booking system for small businesses - Many small businesses have a hard time with inefficient and difficult scheduling systems. This project would create a simple, mobile-friendly appointment booking system with features like automatic reminders and calendar, significantly improving customer experience and reducing no-shows.  2. Smart navigation system or app for public spaces - Many people struggle with navigating crowded places like malls, airports, or large events. This project would create a user-friendly mobile app that provides real-time navigation indoors, showing the least crowded paths based on foot traffic data. It could also include accessibility-friendly routes for users with disabilities, improving overall user experience and convenience. 3. AI-powered smart form auto...

Week 4 - Educational & Career Goals, ETS Readiness, and Learning Reflections

Part One: Educational Goals My goal in the CS program is to develop a good foundation in software development which specifically includes front-end and back-end technology. I also want to get a really good understanding of algorithms and develop problem solving skills. Programming languages are another important part of this plan. In fact, that is the essence of CS. I’ve done C++, Python, Java, Javascript and other languages, but want to revise them all again and this time create a nice portfolio utilizing some of the languages. The next goal is to hopefully land internships or full-time entry jobs to get real-world experience. All this is while attaining my bachelors. Part Two: Career Goals I want to start now in terms of career goals meaning that I want to start getting experience as soon as possible. This means I have to get into an entry level job and build from there. Something attainable can be taking courses on UI/UX design and get a career related to that. As I get used to that...

Week 3 - Time Management and Study Strategy, Weekly Update, Reflections

  Part 1: Study Tips Using this website, I got to read up on some important tips that I need to adopt in order to work on areas that I need to improve in regarding studying.  One of the study tips that really helped me was the prioritization tip. It said to prioritize by importance using the ABC method. This is extremely important because we fall behind due to a lack of prioritizing assignments which leads to procrastination since we don't really know what to start with or do at the time.  Part 2: Ethics I learned a lot this week through our different course material. One thing we went into depth on was on the topic of ethics. Ethics plays an important and big role in the world and always will. Life without ethical behavior and the ethical mindset would be a total mess. On this topic, we read up on general principals, avoiding harm, honesty and trustworthiness, justice, respect, privacy, and much more. We are also now starting to write a paper on this topic and had to sub...

Week 2 - Learning Strategies | Time Management | Project Management | Previous Capstones | Week Summary

Image
Learning Strategies Top 3 Study Skills I'm Good At: Following the SQ3R method: Survey | Question | Read | Recite   |   Review I didn't even know I followed this until I examined myself with it.  Minimizing Distractions While Studying: I’m good at selecting quiet, distraction-free environments like my study room at the corner of my house so not many people walk by throughout the day allowing me to focus deeply on the material. Looking for main ideas in paragraphs and extracting key details. Top 3 Areas I Need to Improve On: Creating/Following a Schedule:  I am not good at creating a schedule and even worse at following it. I'll try it for a day but then things pop up and I get inconsistent. I feel like I can't keep a good schedule when studying formally like school. However, this class is training us like we are working a job. Therefore, it is getting easier to follow a schedule as if we are needing to meet deadlines so I am enjoying it.  Time...