Title: ICS 314: Software Engineering
Instructor: Philip Johnson, POST 307, johnson@hawaii.edu
TA: Danny Weng, POST 307, weng@hawaii.edu
Meeting Times: Tuesdays and Thursdays, 9:00am (Section 001), 10:30am (Section 002)
Website: http://courses.ics.hawaii.edu/ics314f18
Prerequisites: ICS 211, ICS 241, or equivalent
ICS 314 is a fast-paced immersion into significant software engineering concepts and technologies. It incorporates 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 IntelliJ Idea integrated development environment, the git configuration management system, the GitHub project hosting, the Semantic UI user interface framework, and the Meteor web application framework.
Intermediate programming concepts. ICS 314 uses JavaScript, 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 from coding standards to testing to automated tools such as ESLint to software review.
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/WI Focus. 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. You will do a substantial amount of writing for this course, well over 16 pages or 4,000 words, and you must adequately complete all writing assignments in order to pass the course with a grade of D or better. For these reasons, ICS 314 is designated as 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. ICS 314 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.
There is no required textbook for this class. All material is found online.
Your grade is based on:
These percentages may change during the semester.
By default, grading will use the standard cutoffs of 90% (A), 80% (B), 70% (C), 60% (D), but the instructor may revise these percentages downward.
All occurrences of academic dishonesty will result in a grade of 0 for the assignment or exam, and in a memo in your ICS department file describing the incident. Should there be more than one memo of this type in your file, the incident will be referred to the Dean of Students. Disciplinary sanctions range from a warning to expulsion from the university, as seen at: http://www.catalog.hawaii.edu/about-uh/campus-policies1.htm.