Master of Science in Computer Science
Master of Science in Computer Science
Program overview
Program Profile
| Name of the program degree | Master of Science in Computer Science |
| Name of the program | Master of Science in Computer Science |
| Orientation | Research |
| Program Code | 8480101 |
| Vietnam Qualifications Framework Level | 7 |
| Length of Program | 2 years |
| Mode of Delivery | Full-time |
| Language of Delivery | English |
| Total credits | 60 credits |
| Home College | College of Engineering and Computer Science |
Program Purpose
The purpose of the program is to develop computer scientists with an in-depth understanding of fundamental computer science principles and significant exposure to practical and research activities. This preparation enables graduates to contribute to society as creative, innovative, and well-rounded individuals who proactively lead and advance technological development. After graduation, they will be able to work in organizations that design cutting-edge technologies, engage in research and development, or pursue careers in academia.
Program Educational Objectives and Program Learning Outcomes
1. Program Educational Objectives (PEOs)
The educational objectives of the Master of Science in Computer Science program are defined as follows. Within a few years after graduation, graduates are expected to:
- PEO1: Demonstrate advanced technical competence in computer science by applying cutting-edge knowledge and analytical skills to solve complex computing problems in industry, academia, or entrepreneurship.
- PEO2: Engage in research and development activities that contribute to scientific discovery, technological advancement, or innovative applications of computing in multidisciplinary domains.
- PEO3: Take on leadership roles in technical teams, research groups, or professional organizations, fostering effective collaboration and promoting ethical and inclusive practices in diverse working environments.
- PEO4: Pursue continued learning and professional development through advanced studies, certifications, publications, or leadership in technology-driven initiatives, contributing to sustainable development and digital transformation at local and global levels.
2. Program Educational Objectives (PEOs)
After successful completion of the program, students are able to:
Knowledge
- Apply advanced knowledge of computer science theory, algorithms, data structures, and computational models to analyze and solve complex computing problems in academic, industry, or interdisciplinary contexts.
Skills
Graduates will be able to:
- Formulate research questions, design experiments or computational studies, and apply rigorous methodologies to generate new knowledge, validate hypotheses, or develop novel technologies in the field of computer science.
- Design, implement, and evaluate large-scale or innovative software systems that meet user requirements, performance constraints, and security, ethical, or environmental considerations.
- Communicate effectively in technical, academic, and professional settings, including writing research papers, preparing technical documentation, and delivering clear oral presentations to both expert and non-expert audiences.
- Collaborate effectively within interdisciplinary teams, demonstrating leadership, initiative, and a commitment to inclusivity while managing complex technical projects or research initiatives.
Accountability
- Recognize and respond to ethical, legal, and societal implications of computing technologies, particularly in areas such as AI, data privacy, cybersecurity, and the impact of automation.
Self-Autonomy
- Demonstrate the ability to acquire and apply emerging computing knowledge independently through research, continuous professional development, or engagement in the computing community.
Job Positions for Graduates
- Senior Software Developers and Engineers
- System and Cybersecurity Analysts
- Data Scientists and Analysts
- Digital Policy Advisors
- Project Managers
- Research Scientists in Computer Science or Information Systems
- Further study toward a PhD in Computer Science
- IT Managers or Directors
Curriculum structure
| No. | Curriculum Components | Number of Credits | Notes |
| I | COURSE WORK | ||
| I.1 | Required courses | 19 | |
| 1 | Philosophy | 3 | |
| 2 | Research Communication | 4 | with PhD programs |
| 3 | Major course 1 | 4 | |
| 4 | Major course 2 | 4 | |
| 5 | Major course 3 | 4 | |
| I.2 | Elective courses | 11 | |
| Students select 3-4 project-based courses | |||
| II | RESEARCH WORK* | 30 | |
| 1 | Research Proposal | 5 | |
| 2 | Research Project 1 | 5 | |
| 3 | Research Project 2 | 5 | |
| 4 | Master Thesis | 15 | |
| TOTAL | 60 |
For more detailed information about our MSc. in Computer Science curriculum framework, please read here.
Course description
3 credits
Pre-requisites: none
This course introduces fundamental knowledge of philosophy. Topics include the characteristics of Western philosophy, Eastern philosophy, and Marxist philosophy; advanced content on Marxist-Leninist philosophy in the contemporary period and its role in worldview and methodology; the interrelationship between philosophy and science; and the role of science in social life.
4 credits
Pre-requisites: none
This course introduces and discusses practical aspects of research communication skills, including technical paper reviewing, writing, and oral presentation. Students will learn about scientific publications and peer review, and develop effective scientific communication skills through extensive practical training, including written assignments, oral presentations, and individual exercises drawn from their own research.
4 credits
Pre-requisites: Introduction to Programming (Python), Algorithms and Data Structures
This course provides a rigorous foundation in the theory and practice of algorithms and optimization. Students will study computational complexity and algorithm analysis, explore advanced data structures such as heaps, trees, graphs, and networks, and learn fundamental algorithm design paradigms including divide-and-conquer, greedy methods, and dynamic programming. The course further covers graph algorithms and network flows, the theory of NP-completeness, hardness and approximation, mathematical programming, and combinatorial optimization techniques such as branch-and-bound. Students will also be introduced to local search and metaheuristics, as well as planning and scheduling models and algorithms. By the end of the course, they will gain both the theoretical insights and practical skills necessary to design and analyze efficient algorithms and apply optimization methods to complex real-world problems.
4 credits
Pre-requisites: Introduction to Programming (Python), Algorithms and Data Structures
This course offers an in-depth exploration of the design and internals of modern database management systems, with a particular focus on the core components that underpin large-scale analytical systems (OLAP). Students will examine fundamental concepts, architectures, and implementation techniques, emphasizing both efficiency and correctness in system design. Through this study, participants will gain a deeper understanding of how databases manage storage, indexing, query processing, transaction management, and optimization at scale. The course is intended for graduate students specializing in software systems as well as advanced undergraduates with strong systems programming experience.
4 credits
Pre-requisites: Basic knowledge of probability, linear algebra, and calculus. Python programming experience and previous exposure to image processing are highly desirable.
Computer vision is the discipline of “teaching machines how to see.” It is a subfield of artificial intelligence (AI) and machine learning (ML) that focuses on enabling computers to extract meaningful information from visual data such as images or videos. The field involves developing algorithms and techniques to understand, interpret, and analyze visual content in a way that simulates human visual perception.
Computer vision plays a crucial role in numerous applications, including object recognition, image and video analysis, autonomous vehicles, medical imaging, augmented reality, and robotics. This course provides a coherent perspective on the different aspects of computer vision, including image formation, image processing and low-level vision, object detection, image recognition, and computer vision applications. Students will gain the ability to understand state-of-the-art computer vision literature and implement key components that are fundamental to many modern vision systems.
4 credits
Pre-requisites: Advanced undergraduates and graduate students with a background in formal language and automata theory. Programming experience is required for the assignments. The programming language used for all assignments is Python. Prior exposure to linguistics is not required.
This course introduces natural language processing (NLP), whose goal is to enable computers to use human language as input, output, or both. The course examines NLP in the context of different tasks such as machine translation, conversational assistants, and Internet search. Possible topics include text summarization, machine translation, sentiment analysis, and information extraction, as well as methods for handling underlying linguistic phenomena such as syntactic analysis, word sense disambiguation, and discourse analysis, along with their limitations and potential solutions.
4 credits
Pre-requisites: Introduction to Programming
Given the dominance of textual information on the Internet, mining high-quality information from text has become increasingly critical. The actionable knowledge extracted from text data facilitates decision making and supports a wide range of applications, including business intelligence, information acquisition, social behavior analysis, and decision support.
This course covers important topics in text mining, including basic natural language processing techniques, document representation, text categorization and clustering, document summarization, sentiment analysis, social network and social media analysis, probabilistic topic models, and text visualization. In addition, as we are in the era of Big Data, the course provides students with opportunities to gain hands-on experience in handling large-scale datasets. Modern data processing architectures such as Apache Hadoop, Apache Spark, and GraphLab will be incorporated into homework assignments.
4 credits
Pre-requisites: Introduction to Programming; Probability and Statistics
Visual media are increasingly generated, manipulated, and transmitted by computers. When well designed, visual displays capitalize on human abilities for processing visual information and thereby improve comprehension, memory, inference, and decision making. However, the digital tools used to transform data into visualizations still require low-level interaction by skilled human designers. As a result, producing effective visualizations can take hours or days and often requires significant human effort.
In this course, students will study techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. The course is intended both for students who wish to use visualization in their own work and for those interested in developing improved visualization tools and systems. In addition to participating in class discussions, students will complete several short programming and data analysis assignments as well as a final programming project.
4 credits
Pre-requisites: Control Systems
The course covers the components of robotic systems; selection of coordinate frames; homogeneous transformations; solutions to kinematic equations; velocity and force/torque relations; manipulator dynamics using Lagrange’s formulation; digital simulation of manipulator motion; trajectory planning; obstacle avoidance; controller design using the computed torque method; and different controllers for manipulators.
4 credits
Pre-requisites: Networks or equivalent
This course covers the main cybersecurity principles and technologies motivated by the evolving ecosystem of the Internet of Things (IoT), including smart devices, sensors, operating systems, data storage, networking, communication protocols, and system services. The course also addresses IoT device and system security threats, privacy issues, open challenges, and countermeasure techniques.
4 credits
Pre-requisites: Algorithm Design or equivalent
This course explores advanced concepts and research directions in cryptography. Building upon classical cryptographic primitives, the course covers modern theoretical foundations and recent breakthroughs in secure computation, post-quantum cryptography, and privacy-enhancing technologies. Students will study security models, reductions, and advanced protocols, with emphasis on both rigorous proofs and real-world applicability.
4 credits
Pre-requisites: Introduction to Programming (Python), Algorithms and Data Structures
This course provides a comprehensive overview of software engineering, focusing on both the theoretical foundations and practical aspects of software development. It covers key topics such as requirements specification, software design, project management, dependable and critical systems development, verification and validation, and software evolution. Emphasis is placed on understanding and applying the concept of the software engineering process, with particular attention to system models that support effective and scalable software development. By the end of the course, students will be equipped with advanced knowledge and methodologies to design, manage, and maintain complex software systems in real-world contexts.
5 credits
Students identify a relevant and challenging research topic in computer science, conduct a comprehensive literature review, and define research questions or hypotheses. They develop a detailed research proposal outlining the research objectives, methodology, expected outcomes, publication plan, and timeline. The proposal must be approved by a faculty advisor and the graduate research committee.
5 credits
Students conduct a research project related to the approved research proposal under faculty supervision. The project may involve theoretical analysis, software development, experimental work, or applied research. Deliverables include a project report and potentially a draft or submission to a Scopus-indexed publication.
5 credits
Students conduct a research project related to the approved research proposal under faculty supervision. The project may involve theoretical analysis, software or hardware development, experimental work, or applied research. Deliverables include a project report and potentially a draft or submission to a Scopus-indexed publication.
15 credits
Students synthesize their research into a comprehensive thesis that demonstrates innovation, scholarly depth, and relevance to computer science. The thesis is expected to consolidate findings from the research proposal and the research projects. Students must defend the thesis before a committee and meet the graduation requirement of two Scopus-indexed publications, with at least one led by the student based on their thesis or research projects.