## First-Year Courses

### CPT 111 ~ Principles of Programming

The main emphasis of the course is on the basic principles of programming using the
C++ programming language. This course covers basic concepts of a computer system,
introduction to problem-solving techniques, basics of programming, control structures, modular programming, data file processing, reference variable, pointers and one dimensional array.
At the end of the course, the students will be able to:

• Explain the basic concepts of programming and components of computational thinking.
• Follow computational thinking methods in program development.
• Write programs using C++

### CPT 112 ~ Discrete Structures

Discrete mathematics is the study of mathematical structures that are fundamentally
discrete. The discrete structure serves as a fundamental concept which lies at the core of a Computer Science study. A computer system is essentially a finite discrete system in which understanding such a system can be aided by modelling it as a discrete mathematical system.
At the end of the course, the students will be able to:

• Select the right mathematical structures to be used in problem representation by using the concepts and characteristics of mathematical structures.
• Practice basic computing concepts and theories in other computer science courses
• Follow an appropriate algorithmic approach in problem-solving.

### CST 131~ Computer Organisation

This course introduces the structure and functional units of the computer that are responsible for storing and processing information. It focuses on the functioning of individual components, interaction between components, techniques and technologies used, various number systems and simple digital logic circuits. At the end of the course, the students will be able to:

• To explain the basic functional units of the computer such as CPU, input/output and memory, and also number systems.
• To create a digital logic circuit.
• To explain the memory organisation in computers.

### CPC151 ~ Fundamentals of Logic and Artificial Intelligence

This course introduces basic logic concepts and techniques in constructing and evaluating arguments including forming a standard argument, differentiating validity of an argument, applying rules to prove the validity of arguments. In addition, it also exposes students to basic approaches of fundamental artificial intelligence, including basic search strategies, basic knowledge representation and reasoning and basic machine learning. At the end of the course, the students will be able to:

• Identify the basic concept of propositional logic including proposition, arguments premises, and conclusions and validity of arguments
• Follow the rules of programming development.
• Follow fundamental approaches of artificial intelligence that includes search strategies, knowledge representation and reasoning, and machine learning.
• Adapt the basic concepts of predicate logic and the use of quantifiers and also proving the validity of predicate logic.

### CPT113 ~ Programming Methodology and Data Structures

This course exposes students to data structures e.g. dynamic arrays, lists, stacks, queues, and fundamental binary trees. This course also strengthens further programming skills in C++ using computational thinking methods through topics that include recursion, object-oriented design, data abstraction, and classes. This course gives fundamental knowledge on abstract data types and data structures in problem-solving.
At the end of the course, the students will be able to:

• Manipulate data structures.
• Construct object-oriented programming.
• Select a suitable data structure in program development.

### CPT115 ~ Mathematical Methods for Computer Science

Mathematical methods play a significant role in Computer Science. This course combines fundamental mathematics concepts with practical analysis through the use of MATLAB as a software tool. Concepts covered include Matrices, Vectors, Complex Numbers, Numerical Analysis, and Introduction to Simulation and Statistics. The
applications of these concepts in the field of Computer Science are demonstrated along with the mathematical concepts in an integrated manner.
At the end of the course, the students will be able to:

• Show mastery of mathematical concepts in computer science.
• Practice the application of mathematical concepts using software tools in computer science.
• Practice the knowledge gained on mathematical concepts to solve problems in computer science domain.