WK58: CST462S - Race Gender & Class in Digital World Service Learning Final Reflection My service learning project was a meaningful experience because it gave me a chance to work on a real website for a real organization. During this project, I worked on improving the site layout, navigation menu, mobile and tablet views, footer, page sections, colors, spacing, and general visual style. I also communicated with the site supervisor to understand what changes were needed and to make sure the website matched the organization's goals. One thing that went well was that I learned how to solve real design problems. Some parts looked simple at first, but they became more complicated when I tested them on different screen sizes. For example, the navigation menu needed a lot of CSS work to look good on desktop, tablet, and mobile. I also learned that small changes, like padding, colors, and alignment, can make a big difference in how professional a website feels. If I could impro...
Posts
Week 31: CST 334 - Operating Systems
- Get link
- X
- Other Apps
WK07: Weekly Learning Reflection This week we covered several connected topics related to storage and input/output in operating systems. The main topics were I/O devices, hard disk drives, files and directories, and file system implementation. These topics helped explain how the operating system communicates with hardware and how data is stored and organized on disk. I/O devices focused on how the OS interacts with devices like disks and keyboards. We learned about programmed I/O, interrupts, and DMA, and how each method affects CPU usage and performance. Hard disk drives built on this by explaining how physical disks work, including seek time, rotational delay, and transfer time. This helped me better understand why disk access is much slower than memory access and why performance optimizations matter. The interlude on files and directories explained how files are organized and accessed. We learned that files are made up of data and metadata, and that directories are special files tha...
Week 30: CST 334 - Operating Systems
- Get link
- X
- Other Apps
WK06: Weekly Learning Reflection This week's material focused heavily on thread synchronization, and I found that the topics connected more tightly than I expected. We covered condition variables, the bounded buffer implementation, the Anderson/Dahlin method for transforming ordinary classes into thread-safe ones, semaphores, and synchronization barriers. Although each topic introduced a new primitive or pattern, they all centered on the challenge of coordinating multiple threads correctly and avoiding issues like races, deadlock, or inconsistent shared state. In my own words, condition variables provide a way for a thread to sleep until some condition becomes true, while the lock protects shared data the condition depends on. Coding the bounded buffer helped me see why both the lock and the condition variable are essential; without the while loops, spurious wakeups or reordered scheduling would break correctness. The Anderson/Dahlin method made this even more procedural by giving ...
Week 29: CST 334 - Operating Systems
- Get link
- X
- Other Apps
WK05: Weekly Learning Reflection This week we covered four main topics: Concurrency, Thread API, Locks, and Lock-based Data Structures. Concurrency introduced the idea that multiple tasks can overlap in time, even if only one runs at a time on a single CPU. I learned how unpredictable a program can become when threads share data without proper control, and how race conditions appear when two threads access the same data at the same time. The Thread API section helped me understand how threads are created, joined, and managed in code. I liked seeing how these functions make it possible for a single process to do many things at once, as long as we handle synchronization carefully. Locks were one of the most interesting topics. A lock prevents multiple threads from entering the same critical section at the same time, which helps avoid corrupted data. However, it also made me realize that using locks correctly is not always simple. We must think about fairness, performance, and what happen...
Week 28: CST 334 - Operating Systems
- Get link
- X
- Other Apps
WK04: Weekly Learning Reflection This week's material covered four major topics in memory management: Free Space Management, Translation Lookaside Buffers (TLBs), Multi-level Paging, and Swapping. Each of these concepts plays an important role in how operating systems efficiently manage memory, and together they form a larger picture of how virtual memory systems function. Free Space Management was the most straightforward topic for me. The core ideas- how memory allocators track free blocks, split them, merge them, and choose which space to reuse- felt familiar and intuitive. Concepts like first-fit, best-fit, and worst-fit echo topics from previous programming courses and even some of the work I've done in C. TLBs also made sense because they resemble other caches in computer architecture. It helps to think of a TLB as a small, specialized 'shortcut' the CPU uses to speed up address translation. Because I already understood how caches work, this topic did not feel ove...
Week 27: CST 334 - Operating Systems
- Get link
- X
- Other Apps
WK03: Weekly Learning Reflection This week we covered several chapters from OSTEP: Address Spaces, the C Memory API, Address Translation with Base-and-Bounds, Segmentation, and Paging. All of these topics focused on how operating systems virtualize memory and how the hardware supports that process. Address spaces made a lot of sense to me. The idea that each process gets its own 'private' view of memory, even though they all share the same physical RAM, was clear and understandable. I especially liked how the book explained time-sharing and virtualization - how the OS switches between processes so quickly that it feels like they are running at the same time. The C Memory API was also straightforward. We reviewed malloc, calloc, and the importance of free. I feel comfortable with the basics, especially how these functions interact with the heap. The main takeaway is simple: when you allocate memory, you must remember to free it. Address translation and the MMU concepts also mad...
Week 26: CST 334 - Operating Systems
- Get link
- X
- Other Apps
WK02: Processes, Scheduling, and CPU Management This week's topics deepened my understanding of how operating systems handle processes and CPU scheduling. We covered OSTEP chapters 4–8, focusing on Processes, the C Process API, Limited Direct Execution, CPU Scheduling, and Multilevel Feedback Queues (MLFQ). Starting with Processes, I learned that a process is more than just a running program - it's an isolated execution environment with its own address space, registers, and program counter. This made me appreciate how the OS provides both protection and controlled sharing among processes. The C Process API helped bridge theory and practice by introducing system calls like fork(), exec(), and wait(). These calls illustrate how new processes are created and managed. Seeing how fork() duplicates the current process and exec() replaces it with a new program clarified how shells and multitasking work under the hood. The idea of Limited Direct Execution was harder to grasp at first. ...