ICS 314 is a fast-paced introduction to software engineering concepts and technologies, using web application development as the application target.
ICS 314 is not a Writing Intensive course.
We do not have the grading resources to provide the level of feedback necessary to meet the requirements of a Writing Intensive course.
All sections meet in POST 319.
Section | Days | Time | Instructor | TA |
---|---|---|---|---|
001 | Tue, Thur | 12:00pm - 1:15pm | Dan Port | Al |
002 | Tue, Thur | 10:30am - 11:45am | Brook Conner | Al |
004 | Mon, Wed | 10:30am - 11:45am | Cam Moore | Ali |
005 | Tue, Thur | 6:00pm - 7:15pm | Chad Morita | Ali |
This course includes the following themes:
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 Visual Studio Code integrated development environment, the git configuration management system, the GitHub project hosting, the Bootstrap 5 user interface framework, and the Nextjs web application framework.
Intermediate programming concepts. This course uses TypeScript, which enables you to experience programming concepts including higher-order functions, closures, and functional programming idioms (map, reduce, filter).
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 including coding standards using ESLint, acceptance testing using Playwright, and continuous integration using GitHub Actions.
Professional development. The course will help you establish and/or improve your “professional online persona”. This includes: (a) a professional portfolio web site like those at ICS Portfolios; (b) a set of publicly available software projects in which you have participated; (c) a set of well-written technical essays; and (d) participation in professional networking sites such as LinkedIn and TechHui.
Technical writing. The course will help you develop effective strategies for writing, to use and value writing as a tools for learning, and to learn to write in an appropriate manner for software engineering. This course is not a Writing Intensive course.
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.
Athletic software engineering. This course implements an educational technique called athletic software engineering, which relies heavily on WODs (Workouts of the Day) to help you acquire mastery of the concepts in this course.
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.
For more details, consult the syllabus page within the Introduction Module.
This course is intended for undergraduates or graduate students in computer science or computer engineering who have a working knowledge of Java or C++ and who want to invest effort into developing their software engineering skill set.
A significant component of the course is a student-selected final project to showcase the techniques learned during the course.
ICS 314 is structured as a sequential series of modules, most taking approximately a week to complete. Each module has the following structure: