Lectures

Graduate Courses:

SEP521: Software Engineering Principles

[Spring 2014] [Spring 2015] [Spring 2016] [Spring 2017]

This course is a graduate-level introductory course on the fundamental concepts and principles of software engineering. This course is designed to provide students with all aspects of software development from the requirement specification to the maintenance of a software system. It also includes software development processes as well as all the activities such as project management, supporting tools, and other supporting theories.

CS550: Software Engineering
[Spring 2011] [Spring 2013] [Spring 2015] [Spring 2017] [Spring 2020][Spring 2021] [Spring 2022] [Spring 2024]

This course is a graduate-level introductory course on the fundamental concepts and principles of software engineering. This course is designed to provide students with all aspects of software development from the requirement specification to the maintenance of a software system. It also includes software development processes as well as all the activities such as project management, supporting tools, and other supporting theories.

CS656/ICE0539: Software Engineering Economics
[Spring 2006] [Spring 2007] [Spring 2008] [Spring 2009] [Spring 2011] [Spring 2013] [Spring 2016]

As software size is getting bigger and more complex, it is very hard to lead software projects successful. During the course of software development, project managers need to solve various problems related to people, economic values, and software techniques. The primary objectives of this course are to enable the students to understand the fundamental principles underlying software management and economics; to analyze management situations via case studies; to analyze software cost/schedule tradeoff issues via software cost estimation tools and microeconomic techniques; and to apply the principles and techniques to practical situations

ITTP702: Software Engineering in Korea
[Spring 2007] [Spring 2008]

This is an introductory course to software engineering. In this course, students will learn the major software engineering issues such as software requirements, design, process, and management. Students will also conduct team projects to practice how to apply major software engineering concepts and methods to software development problems.

ICE0538/SEP591: Managing Software Development
[Fall 2007] [Fall 2008] [Fall 2009] [Fall 2010]

Large scale software development requires the ability to manage resources – both human and computational – through control of the development process. This course is a breadth oriented course, designed to help technically-trained software engineers to acquire the knowledge and skills necessary to lead a project team, understand the relationship of software development to overall project engineering, estimate time and costs, and understand the software process. The nature of software development is sufficiently unique to require specialized management techniques, especially in the areas of the estimating and scheduling.

Undergraduate Courses:

CS101: Introduction to programming
[Fall 2013][Spring 2020] [Fall 2020] [Spring 2021] [Fall 2021] [Fall 2022] [Fall 2023] [Spring 2024]

The objective of CS101 is to teach programming skills and computational thinking. The first is important because programming is needed in all areas of science and engineering, although very different programming languages are used. The second is perhaps even more important, as it influences how you go about solving a problem. 50 years ago, the solution to a problem in mathematics or engineering was often a formula. Today, it is usually an algorithm.

ED100: Freshman Design
[Fall 2010][Fall 2010]

Teaching Objectives:

  • Introduce the fundamentals of conceptual design and critical thinking to students to produce a paradigm shift in the way students think, view the world, and view their role in the world.
  • Introduce technical communication skills to permit students to work together and effectively express ideas in English.

CS350: Introduction to Software Engineering
[Spring 2010] [Spring 2014] [Spring 2016] [Fall 2023]

Software Engineering is the systematic discipline that help to create practical, cost-effective solutions to the problems in developing software systems. The primary objectives of this course are to provide the fundamental knowledge of software engineering, including understanding software requirements, effective methods of design, coding, and testing, and the application of software engineering tools.

CS408: Computer Science Project
[Fall 2009] [Fall 2010] [Fall2011] [Fall 2012] [Fall 2010] [Fall 2016] [Spring 2017]

In this course, students will learn project management and large-system programming skills that are not usually covered in any single course. Students form teams and execute one of project ideas proposed by individual team or suggested by a professor. The scope of the project must cover multiple areas in computer science and be of a magnitude sufficient for a team project.

ICE1202: Software Studio
[Spring 2007] [Spring 2008] [Spring 2009]

The objective of this course is to teach the fundamental concepts of software engineering through studio project work. Teamwork, organization, processes, and disciplined techniques of software development will be of the major focus.

By the end of the semester the students are expected to have achieved the following goals:

  • To understand the role, rationale and methods of implementation of information systems within organizations
  • To learn various methods and aspects of systems analysis and design methodologies
  • To be able to analyze existing information systems and justify for new development
  • To incorporate classroom lessons into their studio projects by teamwork

ICE0125: Programming Fundamentals II – C/C++
[Fall 2005]

This course provides the fundamental concepts of analysis, design, coding, and testing using C/C++ programming languages. Upon successful completion of the course, student will gain understanding the basic concepts of structured programming and object-oriented programming. Also, they will be able to create well organized working programs using C/C++ to solve real world problems.

ICE0124/ITB0121: Programming Fundamentals I – Java
[Summer 2005] [Spring 2006]

This is an introductory class to computer programming with the Java language. The goal of this course is to learn concepts and skills of object-oriented programming, GUI (Graphical User Interface) programming, and Web-based programming, and to practice problem solving and programming in Java by performing a term project.

Locations of visitors to this page