Welcome to the ICS 414 website.
Meeting times
Tuesdays and Thursdays at 1:30 pm to 2:45 pm in Kuykendall Hall 305
If we can’t meet face-to-face we will meet via Zoom.
ICS 414 is a fast-paced immersion into significant software engineering concepts and technologies. This semester is going to be very intense. We’ll form teams, each team will work on the same project.
ICS 414 follows many of the themes of ICS 314 such as:
Software engineering concepts. Classical concepts include requirements, design, implementation, testing, configuration management, development environments, quality assurance, deployment, and project management.
Software engineering technologies. You will explore with a variety of technologies including: the IntelliJ Idea integrated development environment, the git configuration management system, the GitHub project hosting, the Bootstrap user interface framework, the Meteor web application framework, using React, testing Javascript using fast-check and faker.
Requirements. You will explore project requirements including requirements elicitation, tracking, and acceptance.
Design. You will gain experience with a variety of design domains, including user interface design, application design, data design, security design, and requirements design.
Quality Assurance. The course presents quality assurance concepts from coding standards to testing to automated tools such as ESLint to software review. We will explore unit testing of our collections, integration testing of our Meteor methods, acceptance testing using testcafe and reviews.
Open source software engineering. You will learn some fundamental issues involved in successfully developing open source software, as well as the many professional benefits of developing open source software as a student.
The course grounds these thematic elements by covering the skills necessary to quickly build two-tier web applications with a modern look-and-feel. Many computer science and computer engineering projects benefit from a web-based user interface, and this class will help you to create a nice one regardless of your “design” background.
This course is intended for undergraduates in computer science or computer engineering who have taken ICS 314.
ICS 414 is structured as a sequential series of modules, most taking approximately a week to complete. Each module has the following structure:
A list of the previous projects
While ICS software engineering requires discipline and effort, the results appear to be worth the investment. Here are some student reflections on ICS 414:
In the beginning of the Fall of my University of Hawai’i at Manoa Fall 2021 semester of my Software Engineering II class, my class had been assigned to work on a project with an actual client. The goal of the assignment was to automate the inventory process of a free clinic here on Oahu, this was such a great opportunity because my team and I had a chance to be able to impact our community. One thing that I definitely discovered through this project is that I want to do something like this in the future where I positively impact my community and helping out this free clinic definitely helps out my community and those in need.
This semester I decided to take ICS 414 - Software Engineering II. There were no exams, no lectures, no assignments, and no quizzes. One may even question if anything was learned in this class. As it turns out, this class proved to be one of the most valuable classes I have ever taken. (Fall 2021)
Even though ICS 414 did not have any lectures, no exams, and no assignments, I feel like this probably has been my most valuable class yet. With my interest being in software engineering, being able to take a class that provides a realistic approach as to how software engineering is actually done in the tech world has been very beneficial to me and my computer science career. From running into communication issues with the client, to having issues within the development group, to improving my problem-solving skills and self learning skills, I feel like I have gained valuable experience on how a career in software engineering may be like. Because of this, I feel a lot more confident in my ability to become a software engineer, and I feel like I have a significant advantage over my peers trying to get into the same career choice. With all the problems and lessons learned while taking this course, I really feel like ICS 414 provided me a glimpse into my future, and I have never been more excited for it. (Fall 2021)