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.

Cloud Native Architecture (2022, Grad.)

We are going to review the cloud native archiecture, including the implementation of serverless applications with three major cloud services: AWS, GCP, and Azure.

Text Mining (2022-Present, Undergrad.)

We are going to learn machine learning techniques for analyzing text data.

Natural Language Processing (2021, Grad.)

We will cover the introductory topics of natural language processing. If possible, we will also look at the latest research trends and tools necessary for natural language processing techniques. 

Artificial Intelligence / The fourth Industry and Artificial Intelligence (2021-Present, Cultural Studies, Undergrad./Grad.)

We will review the overall concepts and histories of AI systems and AI developments.

Data Structure and Algorithm (2020-2021, Undergrad./Grad.)

Students will learn the basic concepts of data structures and algorithms, including advanced ones

Introduction to Programming (2016-2017, Undergrad.)

We are going to learn two languages in this course, Python and C. Python is a language that is easy to learn. By learning Python, you can easily understand the components of programming. Python is also powerful, jumping to the top of the uses of programming languages (see The Top Programming Languages 2017). C is a lower-level language than Python. If you are going to develop embedded software systems, such as aerospace software systems, you need to use C and its variations (e.g., C++ and C#). By using C, you can control the details of hardware and operating systems.

Discrete Mathematics (2016, Undergrad.)

We will study discrete mathematics, including logics, sets, functions, trees, graphs, proofs, etc.

Aerospace Software Standards and Testing (2020-Present, Undergrad./ Grad.)

We are going to review DO-178C as Aerospace Software Standards and learn the basics of software testing, including MC/DC for testing a software product in level A (Catastrophic).