production
Skip to Content

Undergraduate SCNU Joint Institute Computing Science 2025-2026

JC1001: PYTHON PROGRAMMING FOUNDATION

17.5 credits

Level 1

First Term

This course will provide a self-contained introduction to computer programming.  Students will be exposed to the basic principles of computer programming, e.g., fundamental programming techniques, concepts, algorithms and data structures. The course contains lectures where the principles are systematically developed. As the course does not presuppose knowledge of these principles, we start from basic intuitions. It will include a gentle introduction to professional issues and security concepts.

JC1004: ADVANCED MATHEMATICS I-1

20 credits

Level 1

First Term

Calculus is the mathematical study of change, and is used in many areas of mathematics, science, and the commercial world. This course covers, limits, continuity, differentiation, finding maximum and minimum values, integration.

JC1005: LINEAR ALGEBRA

15 credits

Level 1

First Term

Linear algebra is the study of linear equations and matrices.  At a more abstract level, it concerns vector spaces and linear maps between them, and it is a central subject within mathematics. It provides foundations for almost all branches of mathematics and sciences in general. The techniques are used in engineering, physics, computer science, economics and others.

JC1502: COMPUTER ARCHITECTURE

15 credits

Level 1

Second Term

Beginning with number systems and Boolean algebra, this course covers the fundamental building blocks for digital logic gates and the design of combinational and sequential circuits. In addition, students get an introduction to assembly, which is the inner language spoken by processors. By the end of the course, students will have a top-to-down understanding of how microprocessors work. The course is taught without prerequisites and students undertake plenty of exercises on a weekly basis.

JC1503: OBJECT-ORIENTED PROGRAMMING

20 credits

Level 1

Second Term

This course will build on the basic programming skills acquired previously and equip the students with advanced object-oriented programming knowledge, implementation of data structure and algorithms, and basic software engineering techniques. The course will build from simple exercises through to complicated programming problems.

JC1504: ADVANCED MATHEMATICS I-2

20 credits

Level 1

Second Term

This course deals with the theory of sequences and series, and discusses their applications to the theory of functions.  It also gives an introduction to differential equations and the theory of functions of several variables.  It provides the necessary mathematical background for further study in mathematics, computing science and other subjects.

JC2001: INTRODUCTION TO SOFTWARE ENGINEERING

20 credits

Level 2

First Term

This course provides a thorough introduction to fundamental concepts and methodologies of software engineering.

JC2002: JAVA PROGRAMMING

20 credits

Level 2

First Term

This course provides a thorough grounding in programming concepts and technologies for large scale and high dependability software systems.

JC2503: WEB APPLICATION DEVELOPMENT

15 credits

Level 2

Second Term

Web applications play a central role across business, entertainment, education, and public services. Therefore, web application development is one of the most in-demand skills in computer science. This course introduces the fundamentals of modern, interactive web application development. You will learn to build full-stack applications using a range of core technologies. The course emphasises the integration of HTML, CSS, and JavaScript on the front end, and the use of JavaScript with Node.js to create dynamic and responsive back-end systems.

JC2504: PRINCIPLES AND PRACTICE OF DATABASE SYSTEMS

20 credits

Level 2

Second Term

Databases are an important part of traditional information systems (offline/online) as well as modern data science pipelines. This course will be of interest to anyone who wishes to learn to design and query databases using major database technologies. The course aims to teach the material using case studies from real-world applications, both in lectures and lab classes.


The course introduces both relational databases (e.g., SQL) and non-relational databases such as NoSQL systems (e.g., MongoDB) and XML-based databases, enabling students to understand and work with a range of modern data models. In addition, the course covers topics including the management of different kinds of data such as spatial data and data warehousing. The course provides more hands-on training that develops skills useful in practice.

JC2505: OPERATING SYSTEMS PRINCIPLES

17.5 credits

Level 2

Second Term

This course discusses core concepts and architectures of operating systems, in particular the management of processes, memory and storage structures. Students will learn about the scheduling and operation of processes and threads, problems of concurrency and means to avoid race conditions and deadlock situations. The course will discuss virtual memory management, file systems and issues of security and recovery. In weekly practical session, students will gain a deeper understanding of operating system concepts with various programming exercises.

JC2506: ALGORITHM DESIGN AND ANALYSIS

15 credits

Level 2

Second Term

This course provides the knowledge needed to understand, design, and compare algorithms.  By the end of the course, a student should be able to create or adapt algorithms to solve problems, determine an algorithm's efficiency, and be able to implement it. The course also introduces the student to a variety of widely used algorithms and algorithm creation techniques, applicable to a range of domains. The course will introduce students to concepts such as pseudo-code and computational complexity and make use of proof techniques.

JC3001: ARTIFICIAL INTELLIGENCE FOUNDATION

15 credits

Level 3

First Term

Artificial Intelligence Foundation is an introductory course in Artificial Intelligence (AI) that provides a broad overview of its core concepts, methods, and applications. The course is designed for undergraduate students and covers several fundamental aspects of AI, including search and adversarial algorithms, knowledge representation, logical reasoning, planning, and basic machine learning and reinforcement learning algorithms. In addition to these, this course also covers the real-world application of AI and its ethical concerns. With the help of lectures and hands-on experience through assessments, the goal of this course is to equip students with the foundational skills necessary to understand and develop intelligent systems.

JC3002: ALGORITHM DESIGN AND ANALYSIS

15 credits

Level 3

Second Term

This course provides the knowledge needed to understand, design, and compare algorithms.  By the end of the course, a student should be able to create or adapt algorithms to solve problems, determine an algorithm's efficiency, and be able to implement it. The course also introduces the student to a variety of widely used algorithms and algorithm creation techniques, applicable to a range of domains. The course will introduce students to concepts such as pseudo-code and computational complexity and make use of proof techniques.

JC3007: SCIENTIFIC RESEARCH METHODS

15 credits

Level 3

First Term

This course provides an introduction to experimental research for science and engineering. A key focus is on proper experimental design, supported by honest evaluation through the use of, usually, statistical methods. The course uses many examples of widely varying types as illustration of how empirical research should - and should not - be done in the sciences.

JC3008: LANGUAGES AND COMPUTABILITY

15 credits

Level 3

First Term

This course provides a basic-level introduction to formal languages, mathematical models of computation, and the theory of computation. Application areas include the design of programming languages, and the recognition of fundamental limits of computation in solving problems.

JC3011: ENTERPRISE COMPUTING & BUSINESS

17.5 credits

Level 3

First Term

This course provides insight into the business reasons for large software systems such as loyalty card systems, backend systems integrating firms and their suppliers and larges systems that integrate payroll, finance and operational parts of a business. You also learn the entrepreneurial aspects of business during the practical sessions where you explore and develop your own business application idea using service design and lean startup approaches centred around customer development, which you will find useful in any future work. This course is open to anyone across the university and requires no programming experience.

JC3012: NETWORK SECURITY TECHNOLOGY

15 credits

Level 3

First Term

The course provides a solid foundation in computer and information security. It will cover topics of Information and Risk, Threats and Attacks, Cybersecurity Architecture and Operations, Secure Systems and Products, Cybersecurity Management and Trustworthy Software.

JC3503: DATA MINING AND VISUALISATION

15 credits

Level 3

Second Term

This course provides an introduction to machine learning, data mining, and data visualisation. Students will learn how to analyse complex datasets by applying data pre-processing, exploration, regression, classification, clustering, time-series analysis, text mining, and many other techniques. This course is particularly suitable for those who are interested in working as data analysts or data scientists in the future.

JC3504: ROBOT TECHNOLOGY

15 credits

Level 3

Second Term

This course surveys many of the core problems of robotics, and their solutions. By the end of the course, a student should be able to program robots that move in predictable ways, overcoming environmental uncertainties; that can interpret their surroundings; and that can plan their motion in order to achieve goals. Topics covered include robot motion; image processing and computer vision; localisation methods and computer-based search and planning. Apart from using programming skills to implement robot algorithms, the students will learn how to mathematically model robots in order to understand why robot algorithms are designed as they are.

JC3505: SOFTWARE PROCESS AND MANAGEMENT

10 credits

Level 3

Second Term

Students will develop large commercial and industrial software systems as a team-based effort that puts technical quality at centre stage. The course will focus on the early stage of software development, encompassing team building, requirements specification, architectural and detailed design, and software construction. Group work (where each team of students will develop a system selected using a business planning exercise) will guide the software engineering and management learning process. Teams will be encouraged to have an active, agile approach to problem solving through the guided study, evaluation and integration of practically relevant software engineering concepts, methods, and tools.

JC3506: SOFTWARE DESIGN AND IMPLEMENTATION

30 credits

Level 3

Second Term

In this module students will focus on the team-based development of a specified, designed, and concept-proofed software system. Each team will build their product to industrial-strength quality standards following an agile process and applying the software engineering concepts, methods, and tools. The course includes a series of mandatory participatory seminars on professional and management issues in IT and IT projects. Students will be expected to relate their engineering work to these issues.

JC3509: MACHINE LEARNING

15 credits

Level 3

Second Term

This course introduces the foundations of Machine Learning. It covers core algorithms like regression, classification and gradient descent before advancing to deep learning, including Neural Networks, CNNs, and RNNs. The curriculum examines advanced paradigms such as reinforcement learning and foundation models, building essential skills in model training and validation for a rigorous understanding of the field.

JC3510: INTELLIGENT SOFTWARE IMPLEMENTATION

30 credits

Level 3

Second Term

In this course students will focus on the team-based development of a specified, designed, and concept-proofed software system. Each team will build their product to industrial-strength quality standards following an agile process and applying the software engineering concepts, methods, and tools. The course includes a series of mandatory participatory seminars on professional and management issues in IT and IT projects. Students will be expected to relate their engineering work to these issues.

JC4000: GRADUATION THESIS

30 credits

Level 4

Full Year

This course consists of a supervised project which provides experience of investigating a real problem in computing science, or a computing application/technology. Students will apply knowledge and skills gained earlier in their degree programme and seek to go even further. Managing the project and presenting the results obtained are an integral part of the investigation.

JC4001: DISTRIBUTED SYSTEMS

15 credits

Level 4

First Term

This course discusses core concepts of distributed systems, such as programming with distributed objects, multiple threads of control, multi-tier client-server systems, transactions and concurrency control, distributed transactions and commit protocols, and fault-tolerant systems. Practical sessions cover a set of techniques for the implementation of distributed system concepts such as programming with remote object invocation, thread management and socket communication.

JC4002: KNOWLEDGE REPRESENTATION

15 credits

Level 4

First Term

Knowledge Representation (KR) is concerned with how knowledge can be represented symbolically and manipulated in an automated way by reasoning programs. In fact, KR has long been considered central to AI because it is a significant factor in determining the success of knowledge-based systems.

This course describes the formalisation of knowledge and its use in knowledge-based systems. It follows the whole "life-cycle" of knowledge, from the initial identification of relevant expertise, through its capture, representation (in ontology and /or rule languages), use (based on reasoning), evaluation, and reuse.

JC4003: NATURAL LANGUAGE PROCESSING

15 credits

Level 4

First Term

Natural Language Processing (NLP) is an influential topic that relates to Artificial Intelligence, Linguistics and Human Computer Interaction. NLP engineers are in high demand at companies such as Google, Facebook, Twitter, Yahoo and Microsoft that require sophisticated analysis of text on the internet. This course covers a range of theoretical and applied topics related to how computers interpret human language, and also how computers can generate human language; for example, to summarise data. Topics include grammar formalisms and algorithms for parsing sentences, natural language semantics, text analytics using sentiment analysis, machine translation, grammar checking and natural language generation from data.

JC4004: COMPUTATIONAL INTELLIGENCE

15 credits

Level 4

First Term

Computational intelligence (CI) is the subfield of artificial intelligence (AI) covering the biologically and linguistically inspired AI techniques, including fuzzy systems, neural networks, evolutionary computation, and Bayesian modelling. This course introduces the fundamentals of CI including probability theory and fuzzy logic, as well as the modern neural network architectures including convolutional neural networks and transformers. We will also discuss the recent developments and future trends in CI.

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.