Welcome to the ICS 414 web site.
Cam Moore will teach Section 001 (Tu/Th 10:30am-11:45am) which meets online.
ICS 414 is a fast-paced immersion into significant software engineering concepts and technologies. This semester is going to be very intense. We are building a Meteor application, HACC-Hui, integrated with Slack. The goal is to use HACC-Hui in the 2020 Hawaii Annual Code Challenge (HACC). We expect over 200 developers to participate in the HACC. They will use HACC-Hui to help form teams. The HACC kickoff is October 24th. That gives us about 8 weeks to complete the project. I’ve divided up the project into four milestones. We’ll form six teams, each team will work on the milestone. At the end of the milestone I’ll pick the best implementation, and we all will use that implementation going forward.
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 Semantic UI user interface framework, the Meteor web application framework, testing Javascript using fast-check and faker, and testing React with enzyme and sinon.
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,
Open source software engineering. You will learn some of the 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.
A significant component of the course is a final project to support the Hawaii Annual Code Challenge (HACC) 2020. Since HACC 2020’s kick off meeting is October 24th, we will have to start the project during the first week of class. This class will be quite challenging and should be a great learning experience.
ICS 414 is structured as a sequential series of modules, most taking approximately a week to complete. Each module has the following structure: