Skip to main content

Posts

CST383 Week 1: Python for Data Science

This week, I learned the basics of Python for data science and how tools like NumPy are used. I already have programming experience from my computer science classes, but Python feels different from languages like Java or C++. It is easier to write and more flexible because it does not require strict data types. This makes coding faster, but I also need to be careful to avoid mistakes. We also learned about the Python data science ecosystem, such as NumPy, Pandas, and tools like Google Colab and Jupyter Notebook. I liked using Google Colab because it is simple and runs in the browser, so I don’t need to install anything. However, I am curious when it is better to use local tools like Spyder or Jupyter instead of Colab. The most important concept for me this week was NumPy. I learned that NumPy arrays are much faster than Python lists because they store data in a continuous block of memory and use the same data type. This connects to what I learned in my algorithms class, where performan...
Recent posts

CST438: Top 5 Key Lessons Learned from the Course

One of the most important things I learned in this course is how to build full-stack applications using Spring Boot and React. Working on projects with REST APIs, DTOs, and React components helped me understand how the frontend and backend communicate, which is essential for modern software development. Another important concept I learned is testing, especially unit testing and system testing. Writing tests using tools like JUnit and Selenium showed me how to verify that my code works correctly and how to catch bugs early, which improves software quality. I also learned how to use Git and GitHub effectively. Version control helped me manage my code, collaborate with others, and safely make changes without losing previous work. This is a critical skill in real-world development environments. Understanding software design principles like low coupling and high cohesion was also important. These concepts helped me write cleaner, more maintainable code and made it easier to modify and ex...

CST438: Agile vs. Waterfall: Key Differences in Development Approaches

 Agile and Plan-and-Document (Waterfall) processes differ mainly in how they handle planning, flexibility, and development flow . In a Waterfall (Plan-and-Document) process , everything is planned upfront. Requirements are fully documented at the beginning, and development follows a strict sequence: requirements → design → implementation → testing → deployment. Changes later in the process are difficult and costly because each phase depends on the previous one being completed. This approach works well when requirements are clear and unlikely to change. In contrast, an Agile process is iterative and flexible. Development is done in small cycles (sprints), and requirements can evolve over time. Instead of heavy documentation upfront, Agile focuses on working software and continuous feedback from users. This allows teams to quickly adapt to changes, fix issues early, and improve the product incrementally. Overall, Waterfall emphasizes structure and documentation , while Agile emph...

CST462S - From Learning to Impact: My Service Learning Journey

What went well during my service learning experience was my ability to contribute meaningfully to the ASCENDtials web team. I was able to complete several tasks such as updating website pages, working on LifterLMS courses, and improving user experience through better layouts and navigation. I also communicated effectively with my team, asked questions when needed, and stayed consistent with meeting deadlines. Over time, I became more confident using tools like WordPress, WPForms, and course-building platforms. If I could improve something, it would be my time management and planning. There were moments when tasks felt overwhelming, especially when balancing schoolwork and service hours. I would also improve my confidence in decision-making, particularly when working independently on design or technical issues. Taking more initiative earlier and asking for feedback sooner would have made my work even stronger. The most impactful part of this experience was seeing how my work directly co...

CST438: Hands-On System Testing and Cloud Technologies

This week, I worked on both system testing and understanding cloud and distributed system concepts. One of the main things I learned was how to build Selenium system tests that simulate real user behavior. I created tests in which an instructor enters final grades and in which instructor-created assignments appear in a student’s view. While doing this, I learned how important it is to have all parts of the system running, including the frontend, backend, and external services like the gradebook. I also improved my debugging skills by fixing issues with Selenium, such as incorrect XPath selectors, missing UI elements, and unnecessary alert handling. I also learned how to properly manage my code using Git and GitHub. I created branches, committed my changes, pushed them to GitHub, and opened pull requests for review. This helped me understand a more realistic development workflow and how collaboration works in a team environment. In addition to coding, I reviewed several key concepts i...

CST438: Sprint Planning & Team Collaboration Reflection

 This week, I learned the importance of clear communication and teamwork during sprint planning. Our team successfully reviewed feedback, confirmed that all tasks and user stories for Iteration 2 are well understood, and ensured that responsibilities are evenly distributed through the GitHub project board. I also learned how regular check-ins, early scheduling, and consistent updates can help keep everyone aligned and prevent delays as we move forward with the project.

CST438: The Importance of Code Reviews at Google

 The most interesting thing I learned from Software Engineering at Google is how important code reviews are for both code quality and team collaboration. I used to think code reviews were mainly for finding bugs, but I learned that they also focus on readability, maintainability, and sharing knowledge across the team . I also found it interesting that Google keeps reviews small and frequent , which makes them more effective and less overwhelming. Another important idea is that different roles in a review (like the code owner and readability approver) each focus on different aspects of the code. Overall, this showed me that writing good code is not just about making it work, but also making sure others can understand and maintain it in the future.