Software Construction and User Interfaces

COM S 319

Offered during Fall and Spring Semesters each year.

  1. Credits and contact hours: 3 credits, 3 contact hours
  2. Instructor’s or course coordinator’s name: Ali Jannesari, Jinu Kabala
  3. Text book, title, author, and year: None required
  4. Other supplemental materialsSoftware Engineering, Ian Sommerville, Pearson; 10th edition; Designing the User Interface: Strategies for Effective Human-Computer Interaction, Schneiderman, 6th Edition

Specific course information

  1. Brief description of the content of the course: Overview of user interface design. Evaluation and testing of user interfaces. Review of principles of object orientation, object oriented design and analysis using UML in the context of user interface design. Design of windows, menus and commands. Developing Web and Windows-based user-interfaces. Event-driven programming. Introduction to Frameworks and APIs for the construction of user interfaces.
  2. Prerequisites or co-requisites: COM S 228
  3. Required, elective, or selected elective? Selected Elective

Specific goals for the course

  1. Specific outcomes of instruction:
  • An ability to analyze a complex computing problem, and to apply principles of computing and other relevant disciplines to identify solutions. (1)
  • An ability to design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. (2)
  • An ability to apply computer science theory and software development fundamentals to produce computing-based solutions. (6)

Brief list of topics to be covered

  • Process vs thread, client/server applications
  • Human Computer Interaction (HCI)
  • Web user interfaces, web programming (JavaScript, Node.js, PHP, client/server programming)
  • Event-driven architecture
  • Event-driven programming in JavaScript and Node.js
  • Windows-based user-interfaces
  • Event-driven programming in JavaFX, APIs and frameworks
  • Design principles for user interfaces
  • Design issues
  • User interface construction
  • Testing of user interfaces
  • System modeling using UML
  • Behavioral and structural modeling using UML
  • UML diagrams
  • Interaction Diagrams using UML
  • Unit testing, system testing, and user interface testing in Test-Driven Development (TDD)