Courses Taught
Summary
System-on-Chip
Design, Hardware Software Codesign of Embedded Systems, Data
Structures, Real-time Operating Systems, Real-time Systems and
Platform Architectures, Software Engineering;
Computer Vision,
Digital Image Processing, Robot and Autonomous Navigation;
Distributed
Processing, Parallel Processing Architecture, Data
Communication, Wide Area Networks;
Digital Systems and
Logic Design, Computer Organization, Computer Architecture,
Digital Electronics, Circuit Elements in Digital Computations.
Details
- Electrical, Computer and
Biomedical Engineering Department, Ryerson University,
Canada.
1. Embedded
System Design (COE718); Fall 2004-22, 70-150 students. An
under-graduate level elective course that covers embedded system
organization, hardware-software co-design, hardware-software
partitioning, real-time systems embedded computing and real-time
scheduling techniques. SoPC development environment is employed
for course projects.
2. Embedded Computer Systems (EE8205); Spring 2006 - Fall 2022,
10-20 students. A graduate level course that covers embedded
system organization, hardware-software co-design,
hardware-software partitioning, co-verification and
co-simulation, real-time systems aspects of embedded computing
and real-time scheduling techniques. ARM RTX (RTOS) environment
is employed for course projects.
3. Computer Organization and Architecture (COE608) Winter
Semesters 2004-17; 40-110 students. Undergraduate level advance
course on RISC processor design. Topis include basic
architecture of modern computers. Interaction between computer
hardware and software at various levels. Performance evaluation
and metrics. Instruction set design. Computer Arithmetic.
Datapath and control unit design for RISC and CISC processor
architecture. The lab work includes the design and
implementation of 16-bit RISC CPU using VHDL and Altera FPGA
development tools.
4. System-on-Chip Design (COE838); Winter 2015-22, 30-50
students. The course covers the basics of system-on-chip (SoC)
design, hardware-software co-specification, co-synthesis,
network-on-chip (NoC) systems and system-on-programmable-chip
technologies. It provides the advance knowledge required for
system-on-chip design and development, multi-core architectures
and embedded systems on a chip. Students are introduced to the
main principles of embedded system-on-chip modeling and design
using SystemC. Various SoC soft processor cores such as Nios-II,
Microblaze, ARM Cortex A9, etc and other SoC IPs will be
explored. Various design tools including SOPC builder will be
utilized in the labs and projects. Interconnection structures
suitable for SoC design will be studied. On-chip busses (e.g.
AMBA, Avalon, IBM Core-connect, etc.) and network-on-chip
techniques are covered in detail.
5. Real-time Operating System (ELE648) Winter Semesters 2002-04;
35-80 students. Undergraduate level course on operating system
design. The course covers the background knowledge required for
understanding operating system technology, processes, threads,
concurrency, memory management, process scheduling, file
management and computer security. The course provides the main
principles of Operating Systems as well as basic concept of
real-time operating systems.
6. Computer Architecture (ELE548)
Fall Semesters 2001-03; 35-80 students. Undergraduate level
advance course on RISC processor design. Topis include basic
architecture of modern computers. Interaction between computer
hardware and software at various levels. Performance evaluation
and metrics. Instruction set design. Computer Arithmetic.
Datapath and control unit design for RISC and CISC processor
architecture. The lab work includes the design and
implementation of 16-bit RISC CPU using VHDL.
7. Embedded
Software Systems (EE8205); Winter 2003, 20 students. A graduate
level course that covers embedded system organization,
hardware-software co-design, hardware-software partitioning,
co-verification and co-simulation, real-time systems aspects of
embedded computing and real-time scheduling techniques. VxWorks
and Tornado development environment is employed for course
projects.
8. Software
Engineering and Real-time Operating Systems (CN8818); Spring
Semester 2003, 22 students. A graduate level course that covers
software engineering, embedded systems as well as real-time
scheduling techniques.
9. Network
Platform Architectures and Real-time Systems (CN8808); Spring
Semester 2002, 28 students. A graduate level course that covers
embedded system design for various networking devices including
routers and bridges.
10. Wide Area
Networks (CN8802); Fall Semester 2001, 28 students. Graduate
level advance course on wide area networks covering ATM, ISDN,
SONET, T Link, Cable Modem and other WAN technologies. The
emphasis is also give on X.25 and Frame-relays.
- Electrical and Computer Engineering Department,
University of Saskatchewan, Canada.
1. Circuit
Elements of Digital Computation (EE800) 2nd Semester 2000-01;
Graduate level advance course on microprocessor systems and
their design. The topics covered include PLD based digital
system design. Micro-controller architecture and programming
details. Application and understanding of A-to-D and D-to-A
converters and using VHDL for microprocessor system design.
2. Digital Systems I (EE 310) 1st Semester 2000-01; 50 students.
Undergraduate level first course on digital logic. The topics
covered in the course include basic concepts related to computer
systems, number systems and Boolean algebra, logic Gates,
combinational logic circuits, digital logic ICs, MSI logic
circuits, flip-flops, counters, registers and digital
arithmetic.
3. Digital Systems II (EE320) 2nd Semester 2000-01; 60 students.
Undergraduate level advance course on digital and microprocessor
systems and design. The topics covered include combinational
logic and sequential circuit design using various PLDs (FPGA,
CPLD etc.). Micro-controller architecture and programming
details. Application and understanding of A-to-D and D-to-A
converters, VHDL, appreciation of reliability and testability
issues.
4. Digital Electronics (EE232) 2nd Semester 2000-01; 90
students. Undergraduate level first course on digital
Electronics. The topics covered in the course include basic
concepts related to computer systems, number systems, logic
Gates, combinational logic, digital logic ICs, MSI logic
circuits, flip-flops, counters, registers and digital
arithmetic.
- Computing Systems Division, School of Applied
Science, Nanyang Technological University, Singapore.
* Logic
Design (CE 102) 2nd Semester 1997-98 and 1998-99;
about 45-60 students. Undergraduate level first course on
digital logic design. The topics covered in the course include
basic concepts related to computer systems, number systems and
Boolean algebra, logic Gates, combinational logic circuits,
digital logic ICs, MSI logic circuits, flip-flops, counters,
registers, multivibrators, digital arithmetic and memory
devices.
* Digital
circuits and Systems (CE201) 1st Semester 1998-99,
1999-2000; About 240-300 students. Undergraduate level advance
course on digital systems design. The topics covered in the
course include combinational logic and sequential circuit design
using various programmable and other logic (FPGA, CPLD etc.)
devices, understanding the operational characteristics of logic
devices and interfacing requirements of different logic
families, application and understanding of A-to-D and D-to-A
converters, VHDL, appreciation of reliability and testability
issues for digital systems.
- Computer Engineering Department, College of E &
ME, National University of Sciences and Technology,
Rawalpindi, Pakistan.
- Advance Computer Architectures
(EC 820) Fall 1995, 1996, Spring 1997; About 25 students.
The main topics of the course are: review of various
classification of processor architectures including RISC and
CISC, cache memory system design, pipeline and vector
processing, parallel systems including SIMD and MIMD
parallel architectures, performance evaluation and case
studies of advance computer systems.
- Computer Organization (EC 200)
Fall 1996; About 25 students. Undergraduate level
introductory course on computer systems. The topics covered
in the course include basic concepts related to computer
systems, number systems and Boolean algebra, principle
components of a computer system and its implementation,
assembly language and computer networking. MC68k family
microprocessors are discussed as reference computer system
components.
- Department of Electronics, Quaid-i-Azam University,
Islamabad 45320 Pakistan.
* Software Engineering
(EL-311) Spring 1995; About 30 students. Undergraduate level
introductory course on software engineering. The topics covered
in the course include software specification and requirement
analysis, software design, programming practice, data
abstraction, portability and reuse, software management, program
verification and validation. Various DBMS projects were
completed using Oracle and C by following software-engineering
approach.
* Data
Communication and Computer Networks (EL-632), Fall 1992, Spring
1993; About 25-30 students. A post-graduate level course, which
was first offered in 1992 and advance topics in the areas of
computer networks and distributed processing were covered. The
main topics covered include data communication system
components; network and distributed system management; LAN, WAN
and internet architecture; open systems messaging and routing;
multi-protocol open systems; concurrent and distributed
programming.
* Advanced Computing
Systems (EL-631) Spring 1991, 1992; About 25-30 students. A
post-graduate level course, which was revised in 1991 and topics
in the areas of computer networks and distributed processing
were added. Traditionally it covers basic concepts and
description of computing systems, computer memory systems and
their management, concurrent and distributed programming.
* Digital Image
Processing (EL-722) Fall 1991; About 25 students. A
post-graduate level subject that was completely revised to
include the machine vision material. The topics covered are
basic imaging concepts and devices, image filtering and edge
detection, image segmentation techniques, Hough transform and
its various parameterization, multimedia, shape from stereo and
shading and image processing systems.
* Advance Computer
Architectures (EL-731) Fall 1994; About 20 students. The main
topics of the course are: various classification of
computer architectures, pipeline and vector processing, parallel
systems including SIMD and MIMD parallel architectures,
performance evaluation, parallel programming and case studies of
advance architectures.
- Department of Computer Systems Engineering, RMIT
University, Melbourne 3001 Australia.
* Image Processing (DS
473) 2nd Semester 1993 and First Semester 1994; About 65-70
students. An undergraduate course covering image sources, basic
image operations, edge detection, contrast enhancement, noise
reduction filters, histogram equalization, image compression and
template matching. The course was revised in the first semester
of 1994 to include Hough transform and two-dimensional object
recognition methods.
* Machine Vision (EE
408) 2nd Semester 1993 and First Semester 1994; About 60-65
students. A complementary undergraduate course offered along
with the DS 473 (Image Processing). The course was completely
revised in 1993. It covers image segmentation techniques,
contour extraction, Hough transform, parameterization and error
analysis, intermediate level image data representations and
object recognition.
* Parallel
Processing Architectures (DS583) 2nd Semester 1993; About 30
students. An undergraduate level course covering taxonomies of
computer architectures, performance characteristics, multiple
processor systems, distributed memory systems and parallel
programming using OCCAM and parallel C, parallelism with
languages and algorithm issues.
* Advance Computer
Architectures (DS713) 2nd Semester 1993; About 25 students.
Master of Information Technology course. The contents include
central processor design overview, pipeline and related issues,
memory management schemes, memory sharing and protection, cache
memories, multiprocessors and interconnection networks,
supercomputer architectures, Novel architectures and their
applications.
* Parallel Processing
Systems (DS714) First Semester 1994; About 35 students. A master
of information technology course which covers multiprocessors
and interconnection networks, shared memory systems and their
cache architectures, message passing systems, parallel
programming languages and their applications, parallel operating
systems and application studies in the areas of simulation,
image processing and machine vision.
* Computer Vision
(DS720) First Semester 1994; About 25 students. The new master
of information technology course introduced for the first time
at RMIT. The course spans the multimedia and main computer
vision topics including image Segmentation, Hough transform,
grouping and aggregation, edge based segmentation, shape from
shading and motion, stereo vision, model based vision, parallel
architectures for machine vision, pyramidal vision algorithms
and architectures and review of different computer vision
systems.
- Faculty of Computer Science, GIK Institute of
Engineering Sciences and Technology, Topi (District Swabi)
NWFP Pakistan
Data Structure
(CS211) Fall 1994; About 80 students. An undergraduate 3rd
semester course covering introduction to software engineering
and different data structures including simple data structure,
stacks, queues, linked-lists and tree structures. Recursion,
sorting and searching algorithms was also covered and Pascal language was used
throughout the course.