Throughout my journey in ICS 314, I have gained valuable insights into the domain of software engineering even though the main focus in class was in web application development. From this course, I have developed a better understanding of the principles of software engineering through its application to various aspects of computer science.
Coding Standards and Tools: In regards to coding standards, ICS 314 utilized Eslint. Eslint is a static code analysis tool that maintains the code quality and style. Through Eslint, I have learned the universal importance of coding standards. Through usage, I can see that coding standards are the foundation of the consistency and structure of any software project. In example, in my final project, I utilized Eslint throughout all areas of my codebase. I noticed that Eslint maintains a consistent structure and if I were to deviate, I can address the errors accordingly. As a result, my style of coding was clear and structured allowing me and my teammates to collaborate.
Ethics in Software Engineering: Through ICS314, I got to further learn about ethics in software engineering. I learned that it extends beyond more than contractual obligations. While those factors are important, I saw that it encompasses a commitment to quality, timeliness while upholding general standards. For example, during my final project, I realized even if your teammate doesn’t stick with the contract and produces work that is non functional, you are responsible for working around any issues as the end goal is the project’s completion. These type of knowledge, I believe, encompasses ICS 314 and all other fields of software development.
User Interface Frameworks: My exposure to User Interface Frameworks, mainly through React Bootstrap and the integration with Meteor and MongoDB was one of the highlights for me. Through learning about the different types of user interface frameworks, I developed a better understanding of client-server interaction, component creation, and page layouts. This knowledge is transferable to other software development areas like mobile applications where similar principles like component-based architecture and responsive design are applicable.
Development Environments: Mentioned previously, the final project was a practical immersion into a development environment, leveraging tools like GitHub for issue and task management. This aspect of the course highlighted the significance of organized, collaborative environments in software development.
ICS 314, though centered around web application, has been a great introduction to fundamental software engineering concepts. Learning about coding standards, ethics, user interface frameworks and development showed me that these areas all shine in other areas of software development.