Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CZ 1003 5 6 7 11

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

CE/CZ 1003 – Introduction to Computational Thinking

Course Code CE/CZ 1003


Course Title Introduction to Computational Thinking
Pre- NIL
requisites
No of AUs 3
Contact Lectures 0 TEL 13 Example Class 26
Hours (Online (Seminars/Hands-
Videos) on Exercises)

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.

Intended Learning Outcomes (ILO)


Upon the successful completion of this course, you shall be able to:
1. Describe the internal operation of a basic processor, how a program is executed by
a computer and computing trends.
2. Code basic programs based on the programming language used in the course
3. Formulate a problem and express its solution in such a way that a computer can
effectively carry it out. (i.e. equip you with CT skills)
4. Apply the CT concepts on case studies/problem-based scenarios through hands-on
practice of the CT processes.
Course Contents
Example
LAMS Class
Topics (Hours)
(2-hr session)
Course Overview and Concepts of Computational
Thinking RPi
0 Solving complex problem using computer - enables the 0.5 Familiarization
student to work out exactly what to tell the computer to Scratch based
do. graphical
Overview of Programming Languages programming
(1 week)
1 Graphic programming, high level programming languages 0.5
(Python, C, Java, R, Matlab)
Basic internal operation of computer
Python on RPi
2 Basic computer organization (Processor, Memory, I/O) and 1
(1 week)
how a computer execute a program (Machine instructions)
Basic program structure: control constructs and data
Python
types
Programming
3 Concepts of data types, variables; 3
Exercises/Quiz
Pseude code and flowcharts;
(3 weeks)
Sequences, Selection (if/else), iteration (for/while loop);
CT concept - Abstraction Library calls &
4 Problem formulation - reducing something to a very simple set of 2 function
characteristics to only focusing on the most relevant to the
(2 weeks)
problem. Concept of functions/libraries and data structure
CT concept - Decomposition Project –
Break a complex problem into smaller and more manageable Flow Chart
5 1
parts/steps, such that each of these smaller problems can then Design
be looked at individually (1 week)
CT concept – Pattern recognition Project –
6 Looking for similarities among and within problems, which 1 Coding
also enable re-use knowledge of previous similar problems (1 week)
CT concept – Algorithm
Reformulating the problem into series of ordered steps Project –
7
through Identifying, analyzing, and implementing possible 2 Coding/Quiz
solutions with the goal of achieving the most efficient and
(2 weeks)
effective combination of steps and resources. (Some
common/useful examples: Sorting and searching)
Limit of computing Project –
Analysis of Algorithm Complexity to determine how much Demo and
8 1 assessment
resources (space and time) are needed to execute an
Algorithm in order to achieve code optimization. (1 week)
Computing Trends
9 0.5 Project –
Cloud, Edge and Fog computing, Quantum Computers
Demo and
Social-Ethical Issues and Ramifications of Computing assessment
10
Fairness, Privacy, Sharing, Hacking, software Piracy, Data 0.5 (1 Week)
Protection, Cyberbullying and trolling, Fake news, digital
divides, IP/Copyright
Check for Hours 13 26

Assessment (includes both continuous and summative assessment)

a) TEL participations and TEL MCQs: 20%


b) Online MCQs based quizzes: 30%
c) Hands-on exercises assessment (MCQ based quizzes): 20%
d) Mini Project assessment: 30%
CE/CZ 1005 – Digital Logic

Course CE/CZ 1005


Code
Course Digital Logic
Title
Pre‐ NIL
requisites
No of AUs 3
Contact Lectures 0 TEL 26 Tutorials 13 Lab 10
Hours

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:

1. Represent integers in binary.


2. Recognise and use elementary logic operators.
3. Analyse a given Boolean expression and optimize it for efficient implementation.
4. Design and implement simple combinational and sequential circuits.
5. Use Verilog to design hardware systems based on the above principles.
Course Content

Topics Lectures Tutorials


(Hours) (Hours)
Binary integers and arithmetic
Unsigned binary integers. Hexadecimal and Binary‐Coded
1 Decimal. Signed formats including sign‐magnitude, offset, 3 1
and 2’s complement. Gray codes and Hamming distances.
Binary addition, subtraction, and overview of multiplication.
Boolean Variables and Logic
Boolean variables; truth tables for AND, OR and exclusive‐
OR. Operators; algebra and theorems, including
2 3 2
associativity, commutativity distributivity and consensus;
derivation of DeMorgan’s Duals; circuit
representations/symbols and multi‐input (>2) gates.
Combinational circuits
Sum‐of‐Products vs Product‐of‐Sums; optimisations with
respect to gate count, type, and delays; Karnaugh maps and
simplification.
3 4 2
Application and gate‐level design of data multiplexers,
demultiplexers, decoders and parity generators. Cascaded
designs. Half‐adder; full‐adder; multi‐bit adders,
comparators.
Implementation technologies
History and evolution. Comparison of Transistor‐Transistor
Logic and Complementary Metal Oxide Semiconductor
(CMOS). Consideration of voltages, current, power
4 2 0
dissipation, propagation delay, clock rates, noise immunity.
Moore’s Law.
Active high vs active low signals. Buffers and Schmitt
triggers.
Digital design using hardware description languages
Introduction to Verilog (and VHDL) hardware description
languages (HDLs). Structural Verilog, module instantiation
5 5 3
and design hierarchy. Combinational and Sequential circuits
in Verilog. Finite State Machines in Verilog. Overview of
Synthesis and Simulation.
Sequential circuits
Combinatorial circuits with feedback; Set‐Reset latch;
6 enabled latches; master‐slave positive‐edge‐triggered D‐ 3 2
Type flip‐flop; propagation delays, set‐up and hold‐times,
meta‐stability, race conditions; asynchronous clear and set.
Sequential circuits to building blocks
Multi‐bit registers, binary counters and dividers;
7 synchronous and asynchronous loading, shift registers, 3 1
parallel‐to‐serial and serial‐to‐parallel conversion;
addressable memories.
Finite state machines
8 State diagrams; state assignments; state transition logic; 3 2
Mealy and Moore machines; dead ends and contradictions.
Check for Hours =26 =13

Assessment (includes both continuous and summative assessment)


a) Final Examination: 60%
b) Quizzes: 22%
c) Lab assessments: 10%
d) Online tasks: 8%
CE/CZ 1006 – Computer Organisation and Architecture

Course CE/CZ 1006


Code
Course Computer Organisation and Architecture
Title
Pre‐ NIL
requisites
No of 3
AUs
Contact Lectures 26 TEL ‐ Tutorials 13 Laboratories: 8
Hours

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.

Intended Learning Outcomes (ILO)


By the end of this course, the student would be able to:
1. Describe and analyse the basic factors influencing computer organization and performance.
2. Describe the basic operation of the CPU and how programs are executed on a computer
3. Describe and explain how high‐level programming constructs are implemented with low‐
level instructions
4. Describe, analyse and evaluate the characteristics of different memory subsystems
5. Describe and analyse basic input/output techniques
6. Describe and evaluate the different number representations and basic arithmetic
operations.
Course Content
Topics Lectures Tutorials
(Hours) (Hours)
Computer Hardware Decomposition
Interconnection of processor, memory, data storage, power supplies and
1 1 0
peripherals.
Input devices such as touch screens, mice, and keyboards and output devices.
Data Representation, Memory Allocation and Access
Unsigned Integers. Addressing bytes, words, arrays and structures. Little Endian
2 1 1
vs Big Endian. Pointers and pointer arithmetic. Character encoding (DEC 6‐bit
vs ASCII vs Unicode)
Central Processing Unit
Concept of a stored program. Allocation of memory to code and data segments
3 in Von Neumann architecture and dual memory spaces in Harvard architecture 2 1
with concurrent access. Programmer’s functional models of processors. Status
register and flags. Control unit. Fetch‐decode‐execute cycle.
Assembly Programming and Instruction Set Architecture
Assembly‐level programming. Addressing modes. Use of Program Counter for
instruction and data access. Basic arithmetic and logical operations. Program
control instructions. Supervisor vs User modes. Privileged instructions.
4 Instruction set architectures (ISA) and paradigms. Classifications based on 5 3
accumulators, registers, load‐store and memory‐to‐memory transfers and
operations. Differentiating characteristics of 8‐bit to 64‐bit ISAs. Fixed‐length
vs variable‐length instructions. Mnemonics, instruction encoding and
orthogonality.
High‐level Software to Low‐level Instructions
Mapping of high‐level language constructs for control flow and data structures
to machine‐level operations. Including ‘if’, ‘for’ and ‘while’ with pre‐ and post‐
test conditions. Using examples of code produced by a ‘C’ compiler.
5 4 2
Mechanisms for subroutine/function linkage, including return address,
parameter/result passing and local data. Use of Stack Pointer, Stack Frame and
Link Register. Position‐independent functions.
Introduction to basic compiler optimization techniques.
Computer Memory
Memory Hierarchy (System, Virtual and Storage).
Volatile and non‐volatile Random Access Memory.
Static RAM versus Dynamic RAM.
Principles of Cache Memory.
Principles of Virtual Memory (Paging versus Segmentation).
6 Principles of accessing semiconductor memories with unidirectional addressing 4 2
and control buses, and bi‐directional data bus.
Latency, bandwidth and interleaving.
Operating principles of magnetic rotating disc drives versus solid‐state drives
using semiconductor NAND flash drives. Logical versus physical memory
access. Remapping, reliability and redundancy.
Sequential/paged NAND flash memory.
Data Transfer and Input/Output (I/O) Techniques
Data transfer principles, I/O interfaces, Evolution of data interfacing.
Asynchronous versus synchronous data transfer. Sources of interference.
Serial versus parallel data transfer.
7 4 2
Concept of handshaking and buffering.
Programmed I/O.
Interrupts and interrupt service routines.
Direct Memory Access (DMA).
Computer Arithmetic
Positional number systems. Binary to/from decimal conversion.
Signed integer representation.
8 3 2
Fixed‐point arithmetic. Carry vs. Overflow.
IEEE 754‐2008 standard. Special cases and exceptions. Range and precision.
Floating‐point arithmetic.
Measuring system performance
Computer performance/speedup/energy equations.
9 MIPS/FLOPS and limitations. 1 0
Benchmarks and relevance or irrelevance to applications.
Software tools for code profiling.
Towards higher speed
Pipelines, co‐processors, superscalar and multicores.
10 Single Instruction Multiple Data (SIMD) vs. Multiple Instruction Multiple Data 1 0
(MIMD).
Homogeneous and heterogeneous multiprocessors.
Check for Hours =26 =13

Assessment
a) Final Examination: 60%
b) Quiz: 40%
CE/CZ 1007 – Data Structures

Course CE/CZ 1007


Code
Course Data Structures
Title
Pre‐ CE/CZ 1003: Introduction to Computational Thinking
requisites
No of 3
AUs
Contact Lectures 13 TEL 0 Example 24
Hours classes

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.

Intended Learning Outcomes (ILO)


By the end of this course, the student would be able to:
1. Design and implement simple C programs using basic programming constructs.
2. Design and implement pointers, arrays, character strings and structures in C.
3. Design and implement recursive functions in C.
4. Design and implement dynamic memory allocation in C.
5. Design and implement linked lists, stacks and queues in C.
6. Design and implement tree structures in C.
Course Content

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

Assessment (includes both continuous and summative assessment)


a) Assignment: 20%
b) Test: 80%
CE/CZ 1011 – Engineering Mathematics I

Course CE/CZ 1011


Code
Course Engineering Mathematics I
Title
Pre‐ NIL
requisites
No of AUs 3
Contact Lectures and TEL modules 26 Tutorials 13 Example 8
Hours Class

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.

Intended Learning Outcomes (ILO)

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

a) Final Written Examination: 60%


b) Quizzes: 32%
c) Example class (lab) exercise: 8%
CE/CZ 1012 – Engineering Mathematics II

Course CE/CZ 1012


Code
Course Engineering Mathematics II
Title
Pre‐ NIL
requisites
No of AUs 3
Contact Lectures 20 TEL 6 Tutorials 10 Example 8
Hours class

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.

Intended Learning Outcomes (ILO)

Upon the successful completion of this course, you shall be able to:

1. Apply analytical and theoretical skills to solve mathematical problems.


2. Apply calculus to solve practical problems in engineering and science.
3. Analyze convergence property of Sequences and Series.
4. Apply Fourier methods to analyse signals.
Course Content

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

Assessment (includes both continuous and summative assessment)


a) Final Examination: 60%
b) Quiz: 20%
c) Take home assignment: 20%
CE/CZ 1013 – Physics for Computing

Course CE/CZ 1013


Code
Course Physics for Computing
Title
Pre‐ NIL
requisites
No of AUs 2
Contact Lectures 26 TEL 0 Tutorials 0 Lab 8
Hours

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

Topics Lectures Labs


(Hours) (Hours)
Introduction: what is physics and why physics?
1 2 0
Background of the course and physics in general
Optics and Applications
2 Light as waves and holography; light as rays and 2D/3D imaging; LiDAR 6 2
and self‐driving cars;
NFC/Electricity and Magnetism
3 Fundamentals of electricity; current, voltage, power and resistance; 6 2
electro‐magnetism; electric and magnetic fields; example application.
EEG/Electrical Potential
4 Fundamentals of measuring electro‐physiological signals; circuits and 6 2
electrodes for EEG recording; EEG signals and their applications.
Electronics/Semiconductor
5 Energy bands in solids; electron, hole carriers; P‐N junction; diode and 6 2
transistor switch; semiconductor integrated circuits fabrication.
Check for Hours =26 =8

Assessment
a) Quizzes/Reports: 80%
b) Labs: 20%

You might also like