CST 438-40 Software Engineering - Week 8
Week 8 Learning Journal:
Throughout this course, I learned a lot about the software development process and the technologies used in modern application development. These are the five most important things I learned and why I chose them.
1. Agile Development (BDD and TDD)
Learning about Agile development was one of the most valuable parts of the course. I learned how breaking work into smaller tasks, testing often, and continuously improving the project helps teams develop software more efficiently. I also gained a better understanding of Behavior Driven Development (BDD) and Test Driven Development (TDD), which showed me the importance of writing reliable, well tested code.
2. Working as a Team with Git and GitHub
One of the biggest things I learned was how to collaborate with a development team using Git and GitHub. Throughout our project, we created branches, made commits, submitted pull requests, reviewed each other's code, and resolved merge conflicts. Using GitHub Projects also helped us organize tasks and keep track of our progress. This experience gave me a much better understanding of how professional software teams work together in an Agile environment.
3. Full Stack Development with Spring Boot and React
I enjoyed learning how the backend and frontend work together. Using Spring Boot to build REST APIs and React to create the user interface showed me how modern web applications are developed. It was rewarding to see both sides connect and communicate with each other.
4. Testing Software with JUnit and Selenium
Before this course, I did not fully understand the importance of automated testing. Learning to write unit tests with JUnit and browser tests with Selenium helped me see how testing improves software quality and reduces bugs before deployment.
5. Cloud Deployment and Software as a Service (SaaS)
Learning about SaaS applications and deploying projects to AWS gave me insight into how software is delivered to users in the real world. It was interesting to see how cloud platforms make applications accessible, scalable, and easier to manage.
Topics to Add or Remove
Overall, I thought the course covered a wide range of useful topics, and I would not remove any of them. If I could add one thing, I would like to spend more time on cloud deployment and CI/CD pipelines. Learning how applications are automatically built, tested, and deployed would be a great addition and would better prepare students for real software development environments.
Overall, this course gave me valuable technical skills while also teaching me how to work effectively as part of a software development team. The experience of collaborating through Agile practices, making commits, submitting pull requests, and contributing to a shared project was just as valuable as learning the programming technologies themselves.
Comments
Post a Comment