Posts

Showing posts from March, 2025

Week 3: CST438

I have limited experience in frontend development, so React would be the most complex framework I've used. I believe I've also used Next.js in a previous course (if I remember correctly). I would say React is a lot more intuitive, especially when it comes to connecting frontend components to a backend server and database. I believe Next.js was slightly more intuitive when adding custom styling and templets. But that have more to do with the type of assignments I worked on using Next.js. React seemed easier to use for more complete projects, or for coming into a new project since it's pretty popular.

Week 3: CST334

This week we learned about memory management. We learned about earlier static memory systems and how that differs from dynamic memory. Static memory was good for predictable operations, but dynamic memory was more flexible and opened the doors to more powerful computing. We also learned about virtual memory, and how it mimics a big space of memory for each individual process (even though physical memory space is limited). The lectures described how memory is allocated, and how data is transferred between RAM and disk storage. We learned about how virtual memory ensures each process appears to have its own private memory so the processes don’t get in each other’s way. We also learned about how C functions malloc(), free(), and calloc() are used to manage memory. The function malloc() is used to allocate a specified amount, free() is used to release previously allocated memory, and is used to zero out and allocate memory. We also talked about how the operating system system manages memor...

Week 2: CST438

 A mock is a an object in testing that's meant to act like a more complex service/dependency. A lot of times it can be impractical to make calls to an outside service/object/dependency like a database or a slow/expensive library just to run tests. Also, sometimes these external services might be out of our control and they may not behave the way our tests expect them to act every time, making our tests less useful and less isolated. With a mock, it's much easier to control it's simulated behavior instead of the actual object's behavior, which is often controlled by someone else or depends on other variables. Also for performance, mocks usually run a lot faster making our tests more lightweight.

Week 2: CST 334

This week we learned about process abstraction, limited direct execution, process scheduling, and multi-level feedback. It was interesting to learn about the distinction between programs (instructions stored on a computer) and processes (those programs running within the computer). Also, it's interesting to see a lot of the concepts from past courses come up again, like stacks, heaps, registers (and computer architecture topics in general). Because so much of this is abstracted by the operating system, and then user applications on top of that, it's easy to lose track of how complex it is just to run a program on one's computer. From our standpoint, we don't notice processes stopping and starting as they share the computer's processing. This week I also looked into papers I could use for a research project. One that caught my eye was a paper on Meta's service mesh. I have to look into it more to see how it relates to operating systems and what we're learning...

Week 1 - CST334

 In this week, I read one of the introductory chapters (2) to our operating systems text. It had a good overview on the features and processes within an operating system. Also, through the text and lectures, there were references to concepts I learned previously in my computer architecture class. I do find myself looking up some of these topics for additional information since it's been a while. I didn't get to review all the optional material on bash scripts and commands but I hope to go back to that since I expect it to be very useful throughout the course based on the assignments so far.

Week 1 - CST438

 I expected this Software Engineering course to be focused on putting together concepts from previous courses and building a complete software program. So far I believe the course has definitely met those expectations. However, I was surprised to find the course has a strong focus on industry software engineering practices (like agile, project management, etc.), which is great and extremely relevant. I believe that will be very helpful as we're nearing the end or our cohort and are getting ready to begin our careers. A lot of times we as students don't know what to expect or how our skills will actually be applied in practice. This course seems to demystify that aspect of software engineering.