CZ 1003 5 6 7 11
CZ 1003 5 6 7 11
CZ 1003 5 6 7 11
Course Aims
Computational thinking (CT) is a problem solving process with the aid of computer; i.e.
formulating a problem and expressing its solution in such a way that a computer can
effectively carry it out. It includes a number of characteristics, such as breaking a
problem into small and repetitive ordered steps, logically ordering and analyzing data
and creating solutions that can be effectively implemented as algorithms running on
computer. As such, computational thinking is essential not only to the Computer
Science discipline, it can also be used to support problem solving across all disciplines,
including math, science, engineering, business, finance and humanities.
The aim of this course is hence to take students with no prior experience of thinking in
a computational manner to a point where they can derive simple algorithms and code
the programs to solve some basic problems in their domain of studies. In addition, the
course will include topics to appreciate the internal operations of a processor, and raise
awareness of the socio-ethical issues arising from the pervasiveness of computing
technology.
Course Aims
This course aims to develop your ability to analyse and design digital circuits. The design and behaviour
of modern digital equipment (e.g. mobile phones and personal computers) are based on functions of
binary variables. This course provides you the knowledge to analyse the theoretical characteristics and
the skills required for practical technology‐driven implementations of digital circuits.
This course provides an introductory perspective of digital circuits design. It is relevant for anyone
pursuing a career in the ICT industry – including those in digital systems, computer architecture and
microprocessor based systems design.
Intended Learning Outcomes (ILO)
Upon the successful completion of this course, you shall be able to:
Course Aims
This core engineering course aims to develop your understanding of the basic architectures of a
computer system along with the organization and operation of common peripherals and memory
sub‐systems around such computing systems. It also reveals how such architectures influence the
design and implementation of low‐level instructions and high level programming constructs.
Understanding of low level architectural aspect is important to later appreciation of more advanced
topics in computer system and architecture discussed in CE2007, CE3001, CZ3001 and CE3003, which
this course is a pre‐requisite to.
Assessment
a) Final Examination: 60%
b) Quiz: 40%
CE/CZ 1007 – Data Structures
Course Aims
This core programming course aims to develop your understanding in data structures such as linked lists,
stacks, queues and trees that are important for building efficient programs in C programming language,
and are essential for future programming and software engineering courses.
Topics Example
Lectures
Classes
(Hours)
(Hours)
Basic Programming Constructs in C Language
C program structure. Syntax and semantics. Intrinsic data types, declarations,
1 operators, assignments, control flow, and simple input/output. Pre‐ 1 2
processing. Functions. Return values, arguments and parameter passing.
Scopes of variables. Concept of side effects.
Built‐in Data Structures
Pointers, pointer operations and pass by reference. One‐dimensional and
2 5 10
multi‐dimensional arrays, and pointers and arrays. Character strings and
arrays of strings. Structures, arrays of structures and type definitions.
Recursion
3 Basic recursion. Problem solving with recursion. The Towers of Hanoi. 1 2
Recursive versus iterative functions.
Memory Management
4 Static vs dynamic memory allocation. Overview of node‐based data 1 2
structures.
Linked Lists
5 1 2
Linked list structures and applications.
Stacks and Queues
6 Stack and queue structures and applications. Implementation using linked 1 2
lists.
Tree Structures
Overview of hierarchical/non‐linear data structures. Tree structures and
7 applications. Binary vs general trees. Tree traversal: pre‐order, in‐order, post‐ 3 4
order. Binary search trees. AVL tree balancing. Application‐specific trees:
parse trees.
Check for Hours =13 =24
Course Aims
This course aims to develop your foundation in engineering mathematics, particularly in linear algebra
and probability and statistics.
This course provides the basic engineering mathematics foundation that is necessary for anyone
pursuing a computer science and engineering degree course.
This course introduces linear algebra and probability & statistics at a foundation level. Upon the
successful completion of this course, you shall be able to:
1. Interpret matrices, determinants, vectors and the various matrix and vector operations.
2. Apply linear algebra to solve practical problems in engineering and science.
3. Present data using appropriate graphs and charts.
4. Apply probability and statistics to understand random phenomenon and make appropriate
inferences.
5. Apply numerical methods for data assessment and analysis.
Course Contents
Topics Lectures
Tutorials
/TEL
(Hours)
(Hours)
1 Complex Numbers
Argand diagram, rectangular and polar representations, operations on 3 1
complex numbers, Euler’s formula, De Moivre’s theorem, nth root of
complex numbers.
2 Vectors
Definition of vectors, vector operations, lines and planes in space, 3 2
vector form of linear systems, vector spaces, geometric
interpretations of linear systems and their solutions.
3 Matrices
Definition of matrices, matrix operations, scalar products, transpose 3 1
of a matrix, inverse of a matrix.
4 Systems of Linear Equations
Matrix form of linear systems, elementary row operations,
4 2
Homogeneous and non-homogeneous systems, Gauss-Jordan
eliminations, Cramer's rule, applications of linear algebra.
5 Descriptive statistics
Types of data, presenting data, measures of central tendency, 2 1
measures of variation.
6 Probability theory
Sample space, events, mutually exclusive and independent events, 3 2
probability rules, conditional probability, Bayes' theorem.
7 Probability and sampling distributions
Random variables, expectation and variance of random variables;
discrete probability distributions: Bernoulli, Binomial, geometric and
3 2
Poisson distributions; continuous probability density functions:
uniform and normal distributions; sampling distributions, Central Limit
Theorem.
8 Inferential statistics
Unbiased point estimates, interval estimates, hypothesis testing of 2 1
means, z and t tests, means and proportions, Type I, II errors.
9 Experimental and Numerical Methods
Linear Regression. Roots of Equations Newton’s method, and 3 1
Bisection method. Software tools – e.g. Scilab, Matlab.
Check for Hours =26 =13
Assessment
Course Aims
This course aims to provide the appropriate mathematical background pertaining to basic
calculus, ordinary differential equations, Fourier transform, numerical differentiation and
integration methods. It is a pre‐requisite for other courses, including CE2001 and CZ2001,
CE2004, and CE3005 and this mathematical knowledge is essential for solving many computer
science and computer engineering problems.
Upon the successful completion of this course, you shall be able to:
Tutorials
Lecture and/or
Topics s Example
(Hours) Classes
(Hours)
Precalculus:
1 Linear functions, polynomial functions, power functions, 1 2
logarithmic functions, trigonometric functions, floor and ceiling
functions, composition of functions, complex numbers
Limits and Continuity:
2 Concept of limits, one-sided limits and limits at infinity, 2 2
methods to find limits, Sandwich theorem, definition of
continuity and continuity test.
Differentiation:
3 Definition of derivatives, differentiation rules, implicit 3 2
differentiation, applications of derivatives, L’Hopital’s rule
Integration:
4 Indefinite integrals, definite integrals, Riemann sums, 4 2
Fundamental Theorems of Calculus, techniques of integration,
applications of integrals.
Ordinary Differential Equations (ODE):
5 Classification of differential equations, order, linearity. 3 1
Solutions of first order linear ODE and second order linear
ODE with constant coefficients.
Sequences and Series:
6 Sequences, series, convergence and divergence, absolute 2 2
and conditional convergence, tests for convergence, power
series.
Function approximation:
7 Taylor’s series and Maclaurin series, interpolation, 4 2
extrapolation, and curve fitting (regression)
Numerical differentiation and integration:
8 2 2
Simpson’s Rule, explicit and implicit methods
Fourier Series:
9 Signal representation in an orthogonal basis, trigonometric 2 2
Fourier series, complex Fourier series.
Fourier Transform:
10 Fourier integral, Fourier transform theorems, inverse Fourier 3 1
transform.
=26 =18
Course Aims
This course aims to show the fundamental role of physics in building up computing systems and
computer applications. You will be exposed to various selected physics topics (Optics, Electrics,
Electronics, and Magnetism), with which, many useful physics‐computing systems have been
developed and changed our daily life. This course serves you as an introductory general education
course to encourage you for interdisciplinary thinking and exploration.
Intended Learning Outcomes (ILO)
This course introduces physics used in computing systems at an elementary level. Upon the
successful completion of this course, you shall be able to:
1. Explain basic knowledge (definitions, principles and techniques) of all the selected topics;
2. Identify the contribution of physics in some computing systems;
3. Discuss the interdisciplinary nature of many innovative systems;
4. Reflect the importance and the recent progress of Physics, to prepare to propose novel physics‐
computing systems in the future.
Course Content
Assessment
a) Quizzes/Reports: 80%
b) Labs: 20%