Spring 2023 - IAT 452 D100

Developing Design Tools (3)

Class Number: 4234

Delivery Method: In Person

Overview

  • Course Times + Location:

    Jan 4 – Apr 11, 2023: Mon, 12:30–2:20 p.m.
    Surrey

  • Prerequisites:

    Completion of 60 units, including IAT 351 with a minimum grade of C-.

Description

CALENDAR DESCRIPTION:

Introduces approaches to customizing and developing software applications as design-support tools to be employed in dynamic design environments comprising people, other tools, and their interactions in relation to the tasks to be performed. Discusses effective strategies for software development to find the best matching solutions for a given situation and applies the select methods in software design, prototyping, and evaluation. Makes use of software development processes, languages, and notations in representing design of the tools being developed. Experiments with contemporary systems such as drafting tools (CAD), authoring applications (for games, Websites, animations), parametric design-modeling systems, etc.; and searches their potentials to enhance design environments.

COURSE-LEVEL EDUCATIONAL GOALS:

Objectives:

  • To develop an advanced level understanding of using, customizing and designing computational systems for various creative domains.
  • To learn-by-doing how to develop interfaces as creative technologies in relation to tasks, users, representation and system design methods.
  • To experience an interdisciplinary software design and development process and identify the role responsibilities.
  • To encourage creativity and critical thinking in software development and in all phases of the course.
Course Outcomes:
By the end of the course, the students will be able to:
  • Describe design environment settings in a given design domain and a particular context; and propose systems to support designers achieve their tasks.
  • Analyze complex design activities requiring significant cognitive load by using task analysis methods for the purpose of developing design-support tools.
  • Develop models for system designs, including architecture and user-system interaction.
  • Identify and use various forms of Object-Oriented modeling strategies.
  • Perform assessment of system designs and evaluation of design interfaces.
  • Apply use-cases, UML, and various programming languages and API during software development.

Grading

  • Assignment 5%
  • Quizzes (x2) 10%
  • Mid Term Exam 30%
  • Course Project (Team) 50%
  • Readings - Participation 5%

NOTES:

Assignments and Projects:

  • You are required to provide your solutions to the given assignments and to present them to the instructors.
  • The presentations will take place during each lab session and will be graded towards your lab grade.
  • The lectures and labs have activities to apply the conceptual material discussed. If the time reserved for class sessions will not allow you to complete given assignments in the class, you are expected to continue working on the assignments and projects out of class. 
  • We recommend considering three to six hours for out-of-class activities: projects, assignments, reading, and self-improvement.  The students will work most of the time collaboratively.

Materials

MATERIALS + SUPPLIES:

Reading References:
TBA – see the detailed schedule.

  • “…the complexity is a reflection of the complexity in the environment”, Herbert Simon (1969): Systems development is generally acknowledged to be an intellectually complex activity. This complexity is magnified by the need for expertise in two disciplinary areas—the area of the problem being solved (the application domain), and the area of constructing a software solution (the systems and software discipline). The application knowledge component of this dual disciplinary problem is significant. Blum states “… much of what we consider to be software development is actually application domain problem solving …” A successful systems developer is one who masters the large amounts of knowledge present in both disciplinary areas. This complexity inherent in systems development typically is addressed by employing standardized methods to develop systems.
  • Vessey, I. and R. Glass, (1998) Strong vs. Weak Approaches to Systems Development, Communications of the ACM April 1998/Vol. 41, No.
Useful Resources:
  • Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition by Craig Larman. [ONLINE]
  • Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example by Doug Rosenberg, Kendall Scott [ONLINE]
  • Software Design, Edition 2nd ed. by David Budgen Addison-Wesley 2003 [RESERVE]
  • Advanced systems design with Java, UML, and MDA by Kevin Lano. Boston: Elsevier Butterworth- Heinemann, 2005 [RESERVE]
  • UML Distilled: A Brief Guide to the Standard Object Modeling Language, third edition, by Martin Fowler

REQUIRED READING NOTES:

Your personalized Course Material list, including digital and physical textbooks, are available through the SFU Bookstore website by simply entering your Computing ID at: shop.sfu.ca/course-materials/my-personalized-course-materials.

Registrar Notes:

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS

SFU’s Academic Integrity website http://www.sfu.ca/students/academicintegrity.html is filled with information on what is meant by academic dishonesty, where you can find resources to help with your studies and the consequences of cheating. Check out the site for more information and videos that help explain the issues in plain English.

Each student is responsible for his or her conduct as it affects the university community. Academic dishonesty, in whatever form, is ultimately destructive of the values of the university. Furthermore, it is unfair and discouraging to the majority of students who pursue their studies honestly. Scholarly integrity is required of all members of the university. http://www.sfu.ca/policies/gazette/student/s10-01.html