Title: ICS 314: Software Engineering
Website: http://courses.ics.hawaii.edu/ics314f23
Prerequisites: ICS 211, ICS 241, or equivalent
Meeting times
Section 1: Tuesdays and Thursdays 12:00 pm to 1:15 pm in POST 319
Section 2: Tuesdays and Thursdays 10:30 am to 11:45 am in POST 319
Section 3: Mondays and Wednesdays at 09:00 am to 10:15 am in Kuykendall 209
Section 4: Mondays and Wednesdays at 10:30 am to 11:45 am in POST 319
Section 5: Tuesdays and Thursdays 6:00 pm to 7:15 pm in POST 319
Student/Office Hours
Branden Ogata (Section 003 instructor): Mondays 11:00 am - 12:30 pm or by appointment in POST 314A
Others TBD.
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 Bootstrap 5 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 including coding standards using ESLint, acceptance testing using TestCafe, 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. 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.
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.
Artificial Intelligence support for software engineering. This course embraces tools like ChatGPT and GitHub Copilot to help you develop effective strategies for using AI to help you build web applications.
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.
Students are strongly encouraged to familiarize themselves with the Systemwide Student Conduct Code. I expect you to behave with integrity and hold both yourself and your peers to the highest standards of ethical behavior.
The Student Conduct Code (EP 7.208) expressly prohibits Academic Dishonesty among the standards and values in the UH Community. Engaging in any of these behaviors subjects a student to the disciplinary process and sanctions on campus. I expect you to behave with integrity and hold both yourself and your peers to the highest standards of ethical behavior.
All occurrences of academic dishonesty, as defined below, will result in a grade of 0 for the assignment or exam. The incident will be referred to the Student Conduct Administrator for action under the Student Conduct Code.
See relevant excerpts below:
The integrity of a university depends upon academic honesty, which consists of independent learning and research. Academic dishonesty includes cheating and plagiarism. The following are examples of violations of the Student Conduct Code that may result in suspension or expulsion from UH Manoa.
Cheating is an act of academic dishonesty and includes, but is not limited to: (1) use of any unauthorized assistance in taking quizzes, tests, or examinations; (2) use of sources beyond those authorized by the instructor in writing papers, preparing reports, solving problems, or carrying out other assignments; (3) the acquisition, without permission, of tests or other academic material belonging to a member of the UH faculty, staff or student body; and (4) engaging in any behavior specifically prohibited by a faculty member in the course syllabus or class discussion.
Plagiarism includes, but is not limited to, submitting, to satisfy an academic requirement, any document that has been copied in whole or in part from another individual’s work without identifying that individual; neglecting to identify as a quotation a documented idea that has not been assimilated into the student’s language and style; paraphrasing a passage so closely that the reader is misled as to the source; submitting the same written or oral material in more than one course without obtaining authorization from the instructors involved; and “dry-labbing,” which includes obtaining and using experimental data from other students without the express consent of the instructor, utilizing experimental data and laboratory write-ups from other sections of the course or from previous terms, and fabricating data to fit the expected results.
In cases of suspected or admitted academic dishonesty, the instructor involved shall attempt to resolve the matter with the student. Actions may include allowing the student to redo the assignment or giving a failing or reduced grade for the course. Instructors are encouraged to bring the matter to the attention of the departmental chairperson and/or academic dean of the instructor’s school or college, and provide an informational report to the Student Conduct Administrator. Additionally, an instructor may formally refer any case of academic dishonesty to the Student Conduct Administrator for action under the Student Conduct Code. The Student Conduct Administrator or designee shall pursue such cases to determine appropriate disciplinary actions if, after a preliminary investigation, it is their determination that sufficient information exists to establish that an act of academic dishonesty took place.