ICS 314 Reflection: What I Learned

16 May 2025

ICS 314 Reflection: What I Learned

ICS 314 wasn’t just about learning how to build websites. It helped me understand the bigger picture of software engineering; how to plan projects, work with a team, and build clean and functional apps. I contributed to a group project called Da Grindz, a meal planning app. I worked on the planner page, where users could drag and drop meals, track macros, and view their week.


Agile Project Management

We followed a style called Issue-Driven Project Management. That means we used GitHub to create tasks called “issues,” labeled and assigned them, and tracked their progress through a project board. Each task was something like “Add calorie tracker” or “Fix footer overlapping on short pages.”

This method helped our team stay organized and make steady progress. For example, when I was working on the drag-and-drop feature, I created an issue for it, broke it into subtasks, and moved it across columns as I worked.

Even outside of coding, I could use this approach for organizing tasks in a research project, planning a club event, or managing a group presentation. It’s a clear way to divide responsibilities and hold everyone accountable.


User Interface Frameworks

I used React and Bootstrap 5 to build the meal planner UI. React helped me break the page into components like MealBox, Vault, and WaterTracker. Bootstrap gave me a quick way to style the layout using grids, buttons, and responsive containers.

Some specific things I built or fixed:

I also made sure the meal cards didn’t overflow or wrap weirdly by tweaking their Bootstrap column settings and using custom CSS. These are all things real users notice, and I learned how to think from a user’s point of view.

This skill will help me design UIs for mobile apps, dashboards, or even simple internal tools for a job. It taught me how to balance function and form.


Functional Programming

In our TypeScript assignments, we weren’t allowed to use loops or conditionals. Instead, we used map, filter, and reduce to transform data. This forced me to think differently about how to solve problems.

For example:

This taught me to write cleaner and more readable code. Functional programming helps prevent bugs by avoiding shared state and side effects. I can use this approach in data analysis, backend APIs, or anywhere I’m processing large sets of data.


Final Thoughts

This class showed me how real software projects work. I learned how to manage tasks, collaborate with teammates, build responsive user interfaces, and write clean code using functional techniques. These skills will stick with me no matter what kind of software I work on in the future.

Note: I used AI tools to help check grammar and wording in this reflection.