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 explores the relationship between humans and technology, with a focus on creating interfaces and systems that are intuitive, efficient, and enjoyable for users. The class typically covers a range of topics, including user-centered design, user research methods, interactive prototyping, usability testing, accessibility, and emerging technologies like human-AI interactions. Through a combination of theoretical lectures, hands-on projects, and practical exercises, students will develop the knowledge and skills necessary to create intuitive and user-friendly interfaces.