Software Development/Engineering (2016-Present, Undergrad.)
We are going to learn how to develop a software system, including software processes, methods and tools. To learn software processes, you will work based on agile development (e.g., XP and SCRUM). To learn analysis and design methods, you will learn and apply Unified Modeling Languages as well as quality scenarios. To learn development tools, you will experience several tools such as Jira, GitLab, Maven and JUnit. In the end, you will also improve your communication skills through this course.
Object-oriented Programming (2016-Present, Undergrad.)
We are going to learn the Java programming language, its object-oriented concept, and the GUI programming. Java is a practical, powerful language to utilize. By learning Java, you can easily implement an Android application by using Android Studio. By learning Java, you can easily understand what is an object-oriented programming. If you want to know where Java is used, please see the article, "Where is Java used in Real World?"
Software Architecture Design (2014-2021, Undergrad./Grad./Industrial Lecture)
We will review the concept of software architecture and practice software architecture design. We also review the architectural tactics, patterns, and viewsets. We also use architecture design tools, if needed.Â
Special Topics in Software Engineering & Evolution (2018-2021, Grad.)
We will look at the latest research trends and tools necessary for software evolution with an overall understanding of software engineering.