This course offers an exploration of software engineering fundamentals, encompassing both principles and applied methodologies. Student will delve into the nuances of the software development life cycle, master the art of requirements engineering, grasp the intricacies of software design and architecture, and understand the significance of testing, version control, and project management in the software engineering realm. Through a blend of insightful lectures and in-class exercises, students will cultivate the expertise to effectively analyze requirements, architect resilient software solutions, and implement rigorous testing and quality assurance practices in their software endeavors.
This course offers an introduction to Human-Computer Interaction (HCI) and the design process. Students will acquire methods and skills essential for designing and prototyping interactive systems. The curriculum encompasses the entire design process, from defining a design problem to creating digital prototypes. Key topics include user-centered design principles, user research methods, rapid prototyping techniques, user evaluation methodologies, and emerging technologies in HCI. The course format combines lectures, hands-on activities, and peer and instructor-led critiques. While this course does not include in-depth instruction in coding and system development, it expects students to engage in self-directed learning to develop functional systems. Notably, the major focus of the course is a collaborative team project, where students will work together to build and present a functional prototype in the class.