The Software Engineering Program was initiated in 2009 in the International School at Duy Tan University. This is a general program of study in the field of information technology, subfield of software development, in service of the Central and national economy of Vietnam. A bachelor’s degree of Software Engineering is considered the minimum requirement for most entry-level software engineering positions. Students who pursue this degree will learn how to perform key processes at different stages of software creation, along with the fundamental theories that guide this cutting-edge field.

Bachelor’s in Software Engineering Program culminate with a capstone course, which allows students to demonstrate the knowledge and skills they have gained with a comprehensive research project. Software Engineering Program at Duy Tan University has long been recognized around the country as one of the top 5 programs in the discipline.

PROGRAM EDUCATIONAL OBJECTIVES

The Software Engineering Program at International School expects the graduates within
three to five years of graduation to attain the following:
» Strive for professional practices in the design, implementation, operation, and maintenance of computer software and systems in their future career under constantly-changing environments;
» Excel in their everyday work environment and to continue their professional development through expertise exchange, continuing education and/or graduate studies;
» Function effectively as a team-player with strong personal and interpersonal skills and a high level of ethics and social responsibility.

STUDENT OUTCOMESThe students are expected to be able to do by the time of graduation from Software Engineering
Program:
(a) an ability to apply knowledge of mathematics, science, and engineering,

(b) an ability to design and conduct experiments, as well as to analyze and interpret data,

(c) an ability to design systems, components, or processes meeting desired needs within realistic
constraints that can be economic, environmental, social, political, or ethical, or that can concern health
and safety, manufacturability, or sustainability,

(d) an ability to function in multidisciplinary teams,

(e) an ability to identify, formulate, and solve engineering problems,

(f) an understanding of professional and ethical responsibility,

(g) an ability to communicate effectively,

(h) the broad education necessary to understand the impact of engineering solutions in a global,
economic, environmental, and societal context,

(i) a recognition of the need for, and the ability to engage in life-long learning,

(j) a knowledge of contemporary issues,

(k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering.

CMU-SE 100 – INTRODUCTION TO SOFTWARE ENGINEERING (3). This course aims at helping students to build up an understanding of how to develop a software system from scratch by guiding them through the step-by-step in-software development process and giving them the knowledge of fundamental principles and discipline of a software engineer. The course will provide students with overview about all phrases in a software life cycle such as requirement, analysis, design, coding, testing and maintenance. Prerequisite: N/A.

CS 211 - FUNDAMENTALS OF PROGRAMMING (4, 3-1). This course equips students with the basic skills and knowledge of computer programming with the C/C++ programming language. Students will first learn about basic data types, storage classes, block structures, data hiding and data initialization. They will then move on with topics on pointers and storage allocation as well as arrays and dynamic memory allocation. Later in the course, students will learn how to write functions or subroutines with the emphasis on command line arguments, environment variables, recursion and reentrancy. By the end of the course, students will be introduced to structures and file structures: how to define and declare structures, how to access members, how to pass a structure to a function, etc. Prerequisite: N/A

MTH 254 – DISCRETE MATHEMATICS & APPLICATIONS (3, 2+1). Discrete mathematics is a branch of mathematics that studies discrete objects and it is a required subject for Information Technology students. This course not only gives students an understanding and application for the problems encountered in the foundation of basic discrete structures such as sets, relations, graphs, but also helps students create conditions to understand storing and processing data in computers where discrete progresses are the essentials.

CMU-CS 252 – INTRODUCTION TO NETWORK & TELECOMMUNICATIONS TECHNOLOGY (3). This course will focus on the following key issues: Understand the basic concepts of computer network technology. The ability to design, implement, operate and evaluate a network system to meet desired needs and analyze the local and global impact of computer network on individuals, organizations, society and all requirements of the curriculum. Prerequisite: N/A.

CMU-CS 303 - FUNDAMENTALS OF COMPUTING 1 (3, 2-1). This course introduces basic programming using the JAVA programming language with object-oriented programming principles. There will be a revisit to basic concepts of programming but the emphasis is placed on object-oriented programming principles, the use of some of the common Java libraries from the core Java APIs and event-driven programming. The purpose is to help students develop programming skills and form object-oriented thinking which serves as the foundation for becoming a software engineer. Prerequisite: N/A.

CMU-CS 316 - FUNDAMENTALS OF COMPUTING 2 (3). This course introduces the student to fundamental data structures & algorithms and the tradeoffs between different implementations of the following abstractions of array lists, linked lists, stacks, queues, heaps, trees, binary search trees and balanced trees. This course also introduces algorithm designs including searching, sorting, and recursion as well as the basic performance and analysis (i.e., the best case, worse case, average case, linear and non-linear algorithms and their impact on performance). Prerequisite: CMU-CS 303.

CMU-SE 214 - REQUIREMENTS ENGINEERING (3). The course presents basic concepts and techniques in requirements engineering. Students will learn to systematically establish, define and manage the requirements of software systems, from technical, organizational and management perspectives. The course also focuses on various techniques of elicitation, analysis, specification, documentation, validation, verification and requirement change management in software development. Prerequisite: Sophomore status or above.

CMU-SE 252 – COMPUTER SCIENCE FOR PRACTICING ENGINEERS (Software Construction)(3). This course introduces the concepts which are related to the design and analysis of algorithms. It covers in detail algorithm complexity such as greedy strategies, divide and conquer techniques, dynamic programming, and approximation algorithms. It also covers some abstract data types and their attributes. Prerequisite: CMU-CS 316.

CMU-IS 432 - SOFTWARE PROJECT MANAGEMENT (3). This course provides engineering students with a comprehensive understanding of how to plan, optimize and efficiently manage projects (or tasks) to implement products, services or developments. This includes building the structures, processes, components and linkages in a team for successful project delivery within schedule, budget and quality requirements. Prerequisite: Sophomore status or above.

CMU-SE 303 - SOFTWARE TESTING (Verification & Validation) (3). Major topics of this course include practical software testing goals and approaches to testing software through all phases of the Software Testing Lifecycle. Practical testing tools are discussed and used in assignment work. In particular, students learn how to apply the tools that come in open-source package in order to gain a solid understanding of how testing is done in practice. The course also covers the difference between ideal testing practice and real-life scenarios where standards are not always given appropriate levels of importance. Prerequisite: CMU-CS 303.

IS 301 – DATABASE (3). This course presents the database concept with extensive coverage on data modeling, database design, data definition language, relational algebra, and SQL. The course also covers relational design principles based on dependencies and normal forms (Boyce-Codd Normal Form: 1NF, 2NF, 3NF). Students will have the chance to practice with SQL 2000, T-SQL, indexes, views, and constraints in a small database design project. Prerequisite: CS 101.

CMU-IS 401 - INFORMATION SYSTEM APPLICATIONS (3). The course aims to provide students with knowledge about the Relational DataBase Management Systems such as data structure, file organization, the Structured Query Language (SQL), transaction management, concurrent access management mechanisms, security and data recovery after an incident, optimization as well as questions of organizational structure and access methods. Prerequisite: IS 301.

IS 384 - E-COMMERCE TECHNOLOGIES (ASP.NET) (3). In this course, students will learn about major technologies for ecommerce such as ASP.NET (C#), CSS, JavaScript, XML and SQL Server. Students, in teams of 3 to 5 members, will also engage in a full-scale group project to develop an ecommerce application of their own design. A brief introduction to GUI design and database optimization for web applications is also given in this course. Prerequisite: CS 211.

CMU-SE 433 - SOFTWARE PROCESS & QUALITY MANAGEMENT (3). The course is designed to provide students with the basic concepts of process justification, identification, implementation, and software development, the different process improvement models, and how organizations can be evaluated for adherence to high quality processes that generate high quality products. The course offers an understanding of how to evaluate, instantiate, and analyze a development process in an organization. Prerequisite: CMU-IS 432.

CMU-CS 445 - SYSTEM INTEGRATION PRACTICES (3). This course gives students an understanding about many of the problems encountered when integrating two or more applications into a single system following the System Integration Life cycle. Based on the case studies, students can recognize the challenges of integrating different applications with different database schemas and different security services. Students also learn when it is appropriate to apply integration models and middleware technologies. Prerequisite: CS 211, CMU-CS 316.

CMU-SE 403 – SOFTWARE ARCHITECTURE AND DESIGN (4). This course is targeted at those practicing professionals who design, develop, and/or manage the construction of software-intensive systems. It provides an overview of architecture design for practicing engineers and provides insights on the latest thinking in architecture design. The topics such as “Why architecture design is important, what is architecture, how to design and do documentation, how to create architecture, how to evaluate the architecture and what is its role in system development” will be discussed in the class. Students should have prior experience in the development of software-intensive systems and some familiarity with modern software engineering concepts. Prerequisite: CMU-CS 311, CMU-SE 214.

CMU-CS 246 – APPLICATION DEVELOPMENT PRACTICES (3). In this course, students will play a variety of roles in the software industry, including: team leader, project manager, and quality assurance manager. With such roles, students will learn to know-how each position in the software industry. Also, this course helps students to deal with critical issues in the process of working as technical review and configuration management. Prerequisite: N/A.

CS 424 – MOBILE APPLICATION DEVELOPMENT (3). This course is designed to introduce students how to develop smartphone apps on major platforms. The course includes hands-on tutorials with screenshots and step-by-step instructions to guide students in developing applications for Google Android, Apple iOS and Windows Phone. Featured topics are installation and setup, best practices for small device programming, Android Studio, Apple iOS, Microsoft Windows Phone and Cross-Platform Development with Phone-Gap or Unity. Prerequisite: CMU-CS 303.

CS 366 – L.A.M.P (LINUX, APACHE, MYSQL, PHP) (2). In this course, students will learn the fundamental of web application with PHP technology. The web solutions of this course are using: Linux as server operation system role, apache web server to operate the web, PHP server-side language to write the code and, MySQL database to store data. This course involves installing and configuring the PHP engine, a MySQL database, and an Apache web server. Prerequisite: CMU-CS 303, IS 301

.

CS 414 – WINFORM PROGRAMMING: VB.NET/ C#.NET (3). This course provides knowledge of Windows form programing, object-oriented programing with C#.NET, and database access with ADO.NET. It helps students analyze real world problems and develop Windows form applications in an object-oriented manner. The objective of this course is to help students to develop the skills of Windows Form application programming and database connectivity a variety of DBMS, especially in developing management applications. Prerequisite: CMU-CS 303, IS 301

CMU-SE 450 - CAPSTONE PROJECT FOR SOFTWARE ENGINEERING 1 (3). This Capstone project focuses on a simulation project. It emphasizes team collaboration and application of modern engineering approaches to software construction. The main objective is the development by each team of an original, industry-strength and system-intensive product. The teams report on their project’s progress by giving presentations and submitting deliverables related to the project. The teams deliver and present project parts at the following stages of project development: (1) topic proposal (concept), (2) software specification (requirements), (3) design (model), and (4) implemented software/system (in-progress & final product/service). At the beginning of the semester, the teams set up a communication protocol between team and its mentor(s), which will be updated regularly to reflect the projects’ progress and team meetings. At the end of the semester, there is a Senior Projects Defense with project demos, posters, and presentations. Prerequisite: CMU-SE 214, CMU-IS 432, CMU-CS 316, CMU-SE 303 or CMU-CS462.

CMU-SE 451 – CAPSTONE PROJECT FOR SOFTWARE ENGINEERING 2 (3). This capstone course focuses on a real-world project. It emphasizes team collaboration and application of modern engineering approaches to software construction. The development by each team of an original, industry-strength software-intensive product is the main objective of the course. The teams will report on their project’s progress by giving presentations and submitting deliverables related to the project. The teams will deliver and present project parts at the following stages of project development: topic proposal (concept), software specification (requirements), design (model), and implemented software (in-progress & final product). At the beginning of the semester the teams will set up a communication protocol between team and mentor, which will be updated regularly to reflect the projects’ progress and team meeting. At the end of the semester there will be a Capstone Projects Defense with project demos, posters, and presentations. Prerequisite: CMU-SE 450.