First Semester Subjects

CHW 460 Microprocessor-Based Systems                    
Introduction to microprocessors, microprocessor architecture: the MPU, memory, input/output, bus structure, comparison of typical microprocessors, complete microprocessor instruction sets, microprocessor system bus. The 80  86 microprocessors: Pin-outs, clock circuitry, address bus, data bus, and control bus connections, reset, interrupts, direct memory access, microprocessor testing and logic analyzer. Memory interface: Memory devices, timing consideration, address decoding, static and dynamic memory systems, interrupt processed I/O, microprocessor-based communication, direct memory access. Application examples.


CHW 465 Computer Networks                                   
Introduction: The use of computer networks, network structure, network architecture, the ISO reference model, examples of networks. Network topology: Connectivity analysis, delay analysis, backbone design, local access network design. The physical layer: The theoretical basis for data communication, the telephone system, transmission and multiplexing, terminal handling errors. The data link layer: Elementary data link protocols, sliding window protocols, analysis of protocols. The network layer: Virtual circuits and datagrams, routing algorithms, satellite packet broadcasting. Local networks: Carrier sense networks, ring networks, shared memory systems. The transport and session layers: Transport protects design issues, interconnection of packet-switching networks. The presentation layer: network security and privacy, text compression, virtual terminal protocols, file transfer protocols. The application layer: Distributed data base systems, distributed computations.


CHW467 Digital Signal Processing                                          
Review of principles of discrete signals in time and frequency; Transform – domain representations of discrete time sequences; Fast Fourier transform; Structural representation of digital filters; Digital Filters design problems ; Implementation aspect of DSP algorithms; Introduction to filter banks and wavelets; Introduction to spectral estimation; Applications.


CHW 468 Data Communications                                                   
Introduction: Types and sources of data, communication models, standards, Data transmission: techniques, transmission media and characteristics. Information theory: Information sources, information measure, entropy, source codes. Line codes: characteristics, return-to-zero and non-return-to-zero signaling, bipolar alternate mark inversion, code (radix, redundancy and efficiency), important codes in current use, frequency spectra characteristics of common line codes, receiver clock synchronization, optical fiber systems, scramblers. Modems: characteristics, modulation, equalization, control, V-standards. Error Control: Transmission impairments, forward error control, linear block codes, feedback error control.

Selected Topics

INF 488 Decision Support Systems                                             
An overview of decision support systems (DSS), a definition of decision support systems, decision support systems characteristics, a brief example of a decision support system, some differences between MIS and decision support systems, the impetus for decision support systems, decision support systems levels, institutional and ad hoc decision support systems, the decision support systems, operating and evolving a decision support systems, application of decision support systems, hardware selection of decision support systems, software selection of decision support systems.


SCC 434 High Performance Computing                                   
The development of Supercomputers: A review of conventional machines, Hardware improvements, Software: improvements, clock cycle limitations, Hardware vs. software, Grand challenge problems, new architecture, parallel architecture, parallel algorithm, parallel language, parallel compiler, parallel operating systems, parallel programming. Introductory survey of supercomputers: Definition of a supercomputer, Number of processors, Peak speeds, Characteristics of supercomputers, Performance Evaluation, Flynn’s Taxonomy and High-level taxonomy. Introduction to UNIX, Internet, telecommunication and Computer ethics. Programming on Pipelined Vector machines. Programming on shared-memory machines (Multimax). Programming on distributed-memory machines (iPSC/860 and nCUBE2). Parallel Algorithm Development.


CSC 445 Neural Networks                                                         
Introduction and a historical review: Overview of neurocomputing, history of neuro-computing. Neural network concepts: Basic definition, connections, processing elements. Learning laws: Self-adaptation equations, coincidence learning, performance learning, competitive learning, filter learning, spatio-temporal learning. Associative networks: Data transformation structures, Linear association network, learn matrix network, recurrent associative networks. Mapping networks: Multilayer data transformation structures, the mapping implementation problem, Kolmogorov-theorem, the back-propagation neural network, self-organizing map, counter propagation network. Spatiotemporal, stochastic, and hierarchical networks: Saptio-temporal pattern recognizer neural network, the Boltzman machine network, and the neurocognition network.


SPT 499 Advanced Digital  Design                                            
Digital system design using the hardware description language VHDL and system implementation using complex programmable logic devices (CPLDs) and field programmable gate arrays (FPGAs). Topics include design methodology, VHDL syntax, entities, architectures, test benches, subprograms, packages, and libraries. Behavioral and structural coding styles for the synthesis of combinational and sequential circuits are covered. Architectures and characteristics of PLDs and FPGAs are studied. Laboratory work involves writing the VHDL descriptions and test benches for designs, compiling and functionally simulating the designs, fitting and timing simulation of the fitted designs, and programming the designs into a CPLD or FPGA and bench testing.


STP 498 Large-Scale Software Development for Engineering Systems                                                              
Large-scale software implementations of the hierarchy of engineering analysis, design, and decision evaluation. Computer-aided engineering programs with state-of-the-art computer tools and methods. Operator overloading, dynamic polymorphism, graphical user interfaces, generic programming, dynamic link libraries, and multiple threads.


Second Semester Subjects


CHW 461 Parallel Computer Architecture                                 
 Analysis and design of high-performance computer systems: Pipelines techniques, cache design. Introduction to level parallelism, parallel and vector architectures shared memory multiprocessors, message passing multi-computers, data flow architectures, scalability and performance, software parallelism.


CHW 464 Computer Security Techniques                              
Overview: Characteristics of computer intrusion, points of security vulnerability, methods of defense. Basic encryption and decryption: Different types of ciphers, characteristics of good ciphers, crypt analysis. Secure encryption systems: Hard problems & complexity. Properties of arithmetic, public-key systems, single-key systems and the data encryption standard (DES), enhancing cryptographic security. Security involving programs: Information accesses problems, viruses and worms, controls against attack, operating system control, administrative controls. Design of secure operating systems: Models of security, penetration of operating systems, examples of security in general purpose operating systems. Database security: reliability and integrity, sensitive data, the inference problem, multilevel data security. Personal computer security: Security measures, protection for files, copy protection. Computer network security and communication security.


CHW 466 Computer Interfaces & Peripherals                 
Input devices: Introduction, human factor considerations, keyboards, digitizers, input tables, mouse, track-balls and joy-sticks, voice input systems. Output display devices: CRT, LCD, Gas-plasma displays, controllers, software support. Output hard copy devices: Plotters, impact printing (line and matrix). Non-impact printers (Electro-photographic, magneto and ionographic, thermal, ink-jet). Color printing, printer controllers. Mass storage devices: Semiconductor, flash, magnetic floppy, hard disk, magnetic tapes, standard cartridge, optical (CD-ROM, WORM), magneto-optical. Multimedia and virtual reality devices: Head mounted displays, data gloves.


CHW 469 Embedded Microprocessor Systems Design                     
Fundamental concepts and techniques for designing electronic systems that contain a microprocessor or microcontroller as a key component. Topics include system level architecture, microprocessors, ROM, RAM, I/O subsystems, address decoding, PLDs and programmable peripheral ICs, assembly language programming and debugging. Hardware-software trade-offs in implementation of functions are considered. Hardware and software design are emphasized equally. Laboratory work involves design, implementation, and testing of microprocessor controlled circuits. Fall. A continuation of ESE 380. The entire system design cycle, including requirements definition and system specifications, is covered. Topics include real-time requirements, timing, interrupt driven systems, analog data conversion, multi-module and multi-language systems. The interface between high-level language and assembly language is covered. A complete system is designed and prototyped in the laboratory. Spring.


Selected Topics


SCC 433 Theory of Computing                                              
Church-thesis: Grammars, the M-recursive functions, and Turing computability of the M-recursive functions. The un-compatibility: The halting problem, Turing innumerability, Turing acceptability, and Turing decidability, unsolvable problems about Turing machines and M-recursive functions. Computational complexity: Time-bounded Turing machines. Rate of growth of functions. NP-Completeness. The complexity hierarchy. The prepositional calculus: Syntax, Truth-assignment, Validity and satisfiability. Equivalence and normal forms. Compactness.


CSC 441 Computer Vision                                                                   
Theories about the operation of the human visual system. Image understanding. Practical applications in robotics. Edge detection. Shape from shading. Stereopsis. Optical flow. Fourier methods. Gradient space. Model-based computer vision: 2-D and 3-D representations, matching, constraint relaxation, model-based vision systems.


DBA 473 Distributed Database Systems                           
Levels of distribution transparency. Distributed database design, mapping users transactions to distributed level. Optimization of accesses strategies. The management of distributed transaction. Distributed concurrence control, recovery in distributed database. Distributed database administration. Commercial systems. The SDD I system.


SPT 492 Fault Tolerant Computing                                                  
The course introduces the principles of fault tolerant computing,  The aim of this course is to present the concepts, methods, and techniques for designing, implementing and analyzing fault tolerant systems.  Emphasis is placed on fault tolerance in parallel and distributed systems. Upon completion, students should be able to analyze system reliability requirements and be aware of various approaches to achieving high reliability; to understand what fault tolerant systems are and why they are important; to grasp the essential concepts, principles, and techniques in fault tolerance, namely hardware, operating  systems and application; to apply the knowledge learnt to develop new methods and techniques in specific areas fault tolerance.


SPT 497 Real time systems                                              
Introduction to real time systems, Typical real time application, Hard versus soft real time systems, A reference model of real time systems, Commonly used approaches to hard real time scheduling periodic tasks, Scheduling periodic and Sporadic tasks, Resources and resource access control, Multiprocessor scheduling and resource access control, Scheduling flexible computations and tasks with temporal distance constraints, Real time communications, Real time operating system, real time programming languages.


PRO 400 Project                                                        
Students are allowed to choose among a number of projects suggested by the different staff members. The general aim of the project is to allow each student to integrate all the disciplines he has studied in a unified chunk of knowledge. On the behavioral side, students are allowed to work in a team so as to practice working in a collaborative environment. This emphasizes also a proper documentation and presentation procedure.