Bachelor Of Computer Science (Full Stack Development)

Why this Program?

  • Do you hunger for the expertise to build engaging web and/or mobile applications?
  • Do you also have a strong desire on the know-how to implement the underlying cloud infrastructure and technologies needed for rapid deployment of the web and/or mobile applications for the world to see and use?
  • Are you a strong advocate of using DevOps techniques to improve and automate the software development and delivery process?

In Full Stack specialization, students learn to translate user requirements into the overall software architecture and implement the new solution as web or mobile applications, using cutting-edge frameworks, state-of-the-art toolsets on cloud and enterprise technologies. As a Full-Stack Professional, he or she is expected to work on both Front End & Back End Development, and applying DevOps skills to deploy workloads through Continuous Integration/Continuous Deployment (CI/CD) pipeline. He or she should have a genuine interest in all software technologies.

What would I learn?

Upon successful completion of the program, you will acquire:

  • Competency in Front End & Back End Development for web and mobile applications and integration with databases & APIs.
  • Expertise in Cloud Capabilities through automation and virtualization to deploy applications to production.
  • Proficiency in applying Agile methodology and DevOps processes to deliver high performing applications.
  • Industry Practices in ensuring software hygiene through the Software Development Lifecycle.

Program Structure

The program is designed as a four-year undergraduate degree. The first year is broadly a foundation year comprising modules that will be built upon it in the subsequent years. Each semester will have five theory modules or projects that will deliver practical sessions to promote inquiry-based learning.

In addition, two modules are included for the development of communication skills through Academic Skills and Dzongkha Communication and four modules from management and industrial practices including life skills such as Economics, Portfolio Design and Presentation, Advanced English Skills for Career Development and Introduction to Research.

Students will have to complete 60 credits in each semester. In total, a student has to complete 480 credits to be eligible for the award of a Bachelor of Computer Science (Full Stack Development) degree.

Your career prospects…

As graduates of the Bachelor of Computer Science program with specialization in Full Stack Development, you can work as professionals in a range of global and local organizations like financial institutions, insurance companies, business organizations as well as the government agencies and ministries. Here is a list of key job opportunities that the graduates of this program can undertake.

  • Software Analysts, Software Engineers
  • Software Solution Architects
  • Application Developers
  • Web and Mobile Application Developers
  • Project Managers, Scrum Masters
  • Software QA Engineers
  • Cybersecurity Professionals
  • IT Consultants
  • IT Entrepreneurs

And with Full Stack Development Specialization,

  • Cloud Engineers, Architects
  • Cloud Consultants, Specialists
  • Full Stack Developers
  • DevOps Engineers

Are you ready to be the trailblazer for Bhutan’s Digital Frontier?

Year 1

Semester I

This module aims to teach the foundation of structured programming language. Students will be begin with foundational construct of a programming language which include variables manipulation, decision, repetitive statement. Students will also learn functional and objects programming that will be applied to the front end web applications for dynamic contents.

This module aims to teach the foundation of mark-up, styling and interactive language that is used in front end web development. Students will be introduced to the fundamental web technologies and also basic web design principle to develop a functional interactive and responsive web site. Students will also learn the production pipeline to bring their work from development to production.

This module aims to provide students with an understanding of basic concepts and working of an operating system (OS) and computer networking. Students will experience hands-on sessions on with modern operating systems using Command-Line Interfaces. Students will be taught how to write scripts based on the OS commands / system tools for user management, software installation, network administration and configuration of services. These topics are essential to future DevOps modules.

This module introduces the students to modern database system which include both SQL and NoSQL database. Students will learn database concepts along with theoretical foundation and practical skills needed to design, and implement both database systems. Students will also learn the SQL and NoSQL methods for data handling for both databases and apply them in a application context.

This module aims to provide students with the fundamental knowledge and understanding on the history Dzongkha language. Students will learn the purpose of learning Dzongkha language and the grammars involved. Students will have hands-on experience on installation of Dzongkha Unicode and Dzongkha typing. This module will focus on the development of academic listening, speaking and writing skills to enable the students to communicate effectively in both spoken and writing at the university level and beyond. This module will enhance the students’ skills in writing letter, application and agreement related to government and private sectors. The module will also enhance the students’ in using references appropriately.

Semester II

This module enables students to develop a scalable and reliable backend web applications that can handle high volume concurrent connections, which is the need of modern day web application. Students will build application based on Object Oriented Design and MVC architecture on the server side and expose necessary APIs. The module will also cover automated test and test management.

This module aims to equip students with the interactive design knowledge for interfaces for a variety of application. Students will explore principles, patterns and process for interaction design, rapid prototyping, user interface (UI) and user experience (UX) design. They can then applied to web, mobile development to create interactive prototype using prototyping tools.

This module introduces the student to the general area of Discrete Mathematics commonly required in many areas of computer science, in particular, Graph Theory. It reinforces mathematical maturity and ability to deal with abstraction. The module will also use a programming language to implement and illustrate the mathematics concepts and techniques in the subject.

This module aims to develop the knowledge and understanding of a range of academic skills required for study at university level. The module will focus on the development of academic writing, oral presentation, as well as listening skills to enable students to communicate effectively in both spoken and written forms. The module will enhance the students’ learning throughout their studies at university and beyond, through close reading, discussions and critiquing of academic texts. Further, it will also enhance students’ capacity to reflect critically on their own learning. 

This is a cap stone module where students will develop a responsive full stack web application. The students will be required to produce a solution from requirement analysis, to conceptualisation, to system design, to prototyping, to testing and finally to ‘live’ deployment.

Year 2

Semester I

This module aims to advanced students development of front end web development through the use of modern front end frameworks. The module will introduce advance technique such as reactive programming, design patterns of reusable Object-Oriented Software with discussion and implementation of MVC, MVP, MVVM.

This course covers fundamental concepts and the application of data structures and algorithms. Topics may include abstract data type, dynamic array, iterators, linked list, generics, stacks, queues, binary search tree, collections, maps, hashing, graphs, and sorting. It introduces a variety of application scenarios including graphics, web programming and user interfaces.

This module aims to provide students with an immersive experience in Agile software development. It will cover both the technical and social aspects of Agile, including pair programming, test-driven development, behavior-driven development, continuous delivery, clean code, refactoring, Scrum, and Agile project management. Student will understand Agile software development so as to become an effective leader or member of a software development team.

This module provides students with the skills to analyze and evaluate information in order to obtain the greatest amount of knowledge from a piece of data, and leads students to be rational and disciplined thinkers. It provides the best chance of making the correct decision, reduces bias and minimizes damages if a mistake does occur while e-learning the right writing approach to create your narrations through storytelling. Students will bring data to life through immersive storytelling by art of speaking the language of data.

Semester II

This module aims to transition students from web development to mobile app development with cross platform technology. Through hands-on projects, students will gain experience with mobile development and its paradigms, app architecture, and user interfaces. The module culminates in a mobile project for which students will implement an app entirely of your own design.

This module aims to introduce students to design fundamentals, allowing them to identify and critique components of effective visualised data, charts and the visualisation of complex relationships using popular programming language. Students will also learn to use popular data analytics tools to do data wrangling and munging to prepare the data for visualisation.

This module aims to introduce the fundamental concepts of linear algebra and numerical methods and its applications to programming. This module will help the students in understanding the algorithms in programming languages. This module will expose students to basic theory and principles to follow the logic of computer processing, with reference to information technology and software engineering disciplines. This module will develop problem solving abilities of the students through examples and communicate the results in a readily understandable format.

Design thinking for Innovation is a human-centred, interdisciplinary approach towards innovation, and particularly valuable for sketchy and complex problems. In this module, students will learn the different stages of the design thinking approach, and also the various methods supporting each of the stages. Learning will be largely experiential in nature; students will work in small groups and gain first-hand experience working on a design challenge using design thinking approach and methods.

This is a cap stone module where students will develop an advanced responsive full stack web and mobile solution using Agile process in a team. The students will be required to produce a solution from requirement analysis, to conceptualisation, to system design, to prototyping, to testing and finally to ‘live’ deployment.

Year 3

Semester I

This module aims to prepare the students to handle the DevOps pipeline process starting from Agile to development, software version control, continuous integration (CI), automated test and continuous delivery (CD). This modules will provide students with hands on experience in building the pipeline process to eventually deploy a project live using CI/CD with automated testing.

This module aims to provide students with the fundamental concepts in Artificial Intelligence (AI) and Machine Learning. Students will have hands-on experience in building applications that make use of machine learning. This module covers both supervised, unsupervised learning techniques as well as ensemble techniques, machine learning pipelines, data engineering process.

This module acquaints the students with the theories and practices of scientific research. It aims to develop their competency in designing, conducting and effectively communicating their research by using pertinent methodologies/techniques and tools. Moreover, it elucidates various issues and considerations along the path of a research journey that the students shall embark upon in this module. The skills and knowledge acquired in the module are deemed useful for a range of upcoming projects and inquiry-based problem-solving endeavors.

This module gives a detailed overview of the principles of microeconomics, macroeconomics and international economics. It will also introduce the students to the basic operation of the economy focusing on the most important tools in economics and applying these concepts to clearly explain real-world economic issues and events.

This module aim to provide the basic IT professional certification for the students. Students will be prepared for industrial recognised certification so as to bench mark their standard and build the necessary credential for future IT employment.

Semester II

This module aims to equip students with the skills to architect and design modern, complex, scalable and mission critical Enterprise Systems. Students will develop an in-depth understanding of high-level concepts such as enterprise architecture and software architecture. They will be able to apply good software design patterns learned in the software engineering when designing their applications and understand the techniques to optimize and host their applications on the cloud. Students would also be taught on good practices of secure coding and be able to perform basic securing of their enterprise web application.

This module aim is to provide an introduction to the fundamental concepts of probability and statistics, as tools for decision making and expose students to basic theory and practice of statistics applied using a programming language. Student will develop problem solving abilities through examples and applied the results using programming.

This is a mini cap stone module where students will undergo the full software development life cycle using Agile process. Students will work together in small groups to come up with innovative solutions for real-life problems and It can serve as an opportunity to demonstrate knowledge mastery and creative thinking.

Year 4

Semester I

This module aims to introduce students to the fundamentals of cloud computing, how to setup a private cloud, provision computing resources with public cloud, and to use various platform to upload data to cloud for processing. Students will learn crucial aspects that help in building and maintaining cloud security with focus on the characterization and exploitation of software as a Service (SaaS).

This module prepares the students to design, implement and present algorithmic approaches to a variety of programming scenarios in a timely manner. Students will apply the recurring themes from earlier data structure and algorithms modules to a variety of domains, including string processing, geometry, graphs, trees, combinatorics and number theory.

This module aims to discuss ethical problems that computer scientists face, the codes of ethics of computing professional societies, legal issues involved in technology, and the social implications of computers, computing, and other digital technologies. The students will be able to understand concepts of impact of social media, economic implications of globalization, intellectual property rights, computer crimes and security related legal redress.

This module aim to provide the advanced IT professional certification for the students. Students will be prepared for industrial recognised certification so as to bench mark their standard and build the necessary credential for future IT employment.

Semester II

This is the final capstone project is designed to provide the students with a hands-on environment to test and apply the knowledge and skills, tools and techniques, learned throughout the programme in a practical, real world setting. The focus of this project is to encourage students to think critically, solve challenging problems, and develop skills such as oral communication, public speaking, research skills, teamwork, planning and goal setting when given a real industry project.