Level 300 Courses

Main block

Detailed Course Description: LEVEL 300


FAEN 301 Numerical Methods (3 credits)

Matrices and Vector operations, linear homogenous systems, Eigen-vectors and values. Numerical errors, absolute and relative errors, stability and convergence of numerical algorithms. Interpolation Methods: Lagrange polynomials, finite differences, least square approximation. Numerical solutions to Nonlinear Equations: Newton Raphson method, secant, false position, bisection, fixed point algorithm. Numerical Integration: Simpson's rule, trapezoidal rule, Newton-Cotes method. Numerical solutions to Ordinary Differential Equations: Taylor series method, Euler method, Runge-Kutta method. Numerical solutions to Partial Differential Equations: Second order quasi-linear equations, numerical solutions

Reference books and materials M. J. Maron, Numerical Analysis, Macmillan Publishing Co., 1987 S. Chapra and R. P. Canale, Numerical Methods for Engineers, 5th Ed., McGraw-Hill, 2006 Schilling and Harris, Numerical Methods for Engineers: Using MATLAB and C, 1st Ed., 2000


FAEN 302 Statistics for Engineers (3 credits)

Probability functions axioms and rules, counting techniques, conditional probability, independence and mutually exclusive events. Discrete Random Variable: Expectation and variance, Binomial distribution, Hypergeometric distribution, Poisson distribution, relationship between Poisson and Binomial. Continuous Random Variable: Percentiles and cumulative distribution function, expectation and variance, uniform distribution, normal distribution, exponential distribution and other distributions. Joint Distributions. Covariance and Correlation. Sampling Distributions: Distributions of statistics, central limit theorem, samples from normal distribution (t-distribution, X² distribution and F-distributions). Estimation: Common point estimators, interval estimators. Hypothesis Testing. Introduction to Regression Analysis. Engineering applications in quality control, process control, communication systems and speech recognition

Reference books and materials W. A. Rosenkrantz, Introduction to Probability & Statistics for Scientists and Engineers, McGraw-Hill, 1997 M. H. Degroot, Probability and statistics, Addison Wisely Publishing Co. Inc., 1986 A. Leon-Garcia, Probability & Random Processes for Electrical Engineering, 2nd Ed., Prentice-Hall, 1994


CPEN 301 Signals and Systems (3 credits)

History and overview of signals and systems including reasons for studying signals and systems, areas of application, and role of signals and systems in computer engineering. Signals: representation and properties, continuous and discrete time signals, signals in engineering applications. Systems: representation, common system types and classifications, system properties of linearity, causality, BIBO stability, time invariance, memory and invertibility. Difference equation: differential equations, transformation of time domain differential equations to difference equations. Convolution: impulse response, convolution integral, convolution summation, circuit analysis using convolution. Fourier analysis: signal representation by Fourier series, continuous time Fourier series, discrete time Fourier series, discrete Fourier transform, difference between the transformation methods, circuit analysis using Fourier. Fourier transform: continuous time Fourier transform definition, discrete time Fourier transform, transfer functions. Sampling: sampling theorem, Nyquist criteria, sampling of signals, aliasing, up and down sampling, concept of signal quantization and reconstruction of samples. Laplace transform: Laplace transform integral, properties of Laplace, impulse response, step and ramp functions, inverse transform, poles and zeros, circuit analysis using Laplace transform. Filter circuits: passive and active filter circuits, transfer function.

Reference books and materials Roberts, Signals and System Analysis using Transform Methods and MATLAB, McGraw-Hill, Alan V. Oppenheim, Alan S. Willsky, With S. Hamid, Signals and Systems, 2nd Ed., Prentice-Hall, 1997


CPEN 302 Computer Systems Engineering (3 credits)

History and overview of computer systems engineering including reasons for studying computer systems, and role of computer systems in computer engineering. Computer system engineering process: life cycle, requirements analysis, specification, architectural design, testing, maintenance, and implementation in computer systems engineering. Packaging in computer systems. Wires in computer systems: electrical properties of transmission lines, models of lines, lossy and lossless lines, and buses. Noise in computer systems: noise characteristics and sources in digital systems, estimation of noise budget. Signaling in computer systems: signaling and associated problems, pseudo-differential signaling, signaling over lumped media, low-voltage signaling, signaling over on-chip and off-chip systems. Timing: timing components in computer systems, timing uncertainties of skew and jitter, sources of timing uncertainties and evaluation, timing uncertainties and data rates, synchronous and pipelining timing systems, synchronization in computer systems. Clock distribution in computer systems: clock distribution and problems associated with distribution in on-chip and off-chip. Power distribution: static and dynamic power consumption, estimation of power consumption in systems, power distribution network, power distribution in on-chip and off-chip systems.

Reference books and materials W. J. Dally and J. Poulton, Digital Systems Engineering, Cambridge University Press, 1998


CPEN 303 Computer Architecture (3 credits)

History and general overview of computer architecture and organization, including reasons for studying computer architecture, the contrast between computer organization and computer architecture, and the role of computer architecture in computer engineering. Basics of computer architecture: Von Neumann machine structure, instruction formats, fetch and execute cycle, registers, instruction types and addressing, Interrupts and I/O. Programming in assembly language. Computer arithmetic: integer and real number representations, algorithm for basic mathematical operations, algorithm for floating-point operations, hardware and software implementation of arithmetic unit. Memory system and architecture: memory types and hierarchy, main memory organization and its performance, cache memory, virtual memory, reliability of memory systems. Interfacing and communication: I/O systems and handshaking, I/O techniques of programmed I/O, interrupt-driven I/O and DMA, interrupt structures, memory system design and interfacing, system buses and protocols. Processor system design: CPU interface - clock, control bus, data bus, and address bus; address decoding, memory interfacing, serial and parallel interfaces, timers. CPU organization: single and multiple bus datapaths, instruction set architecture, implementing instructions, instruction pipelining, pipeline hazards and reducing effects of hazards, trends in computer architecture - CISC, RISC, VLIW. Performance: metrics for computer performance - clock rate, MIPS, etc, strengths and weaknesses of performance metrics, averaging metrics - arithmetic, geometric, harmonic, role of Amdahl's law in computer performance.

Reference books and materials D. A. Patterson and J. L. Hennessy, Computer Organization and Design: The Hardware-Software Interface, 3rd Ed., Morgan Kaufmann, 2005 William Stallings, Computer Organization and Architecture, Design and Performance 8th Ed.


CPEN 304 Digital Signal Processing (3 credits) Prerequisites: CPEN 301

History and overview of digital signal processing, reasons for studying digital signal processing, difference between analog and digital signals, application areas of digital signal processing, and benefits of digital signal processing to computer engineering. Foundations: continuous time and discrete signals and spectral analysis, continuous and discrete time systems, sampling and aliasing, decimation and interpolation, Z-Transforms: review of difference equations, z-transform definition, region of convergence, z-transform relation to Fourier transform, zero-pole diagram and stability of systems, inverse z-transform, z-transform application to solving difference equations. Digital filters: transfer function and frequency response of discrete time systems, recursive filter design, non-recursive filter design, and windowing. FIR filter - frequency and phase response; poles and zeros in z-plane. IIR filter - frequency and phase response; design of IIR filters. Filtering random signals. Audio processing: speech coding, audio coding and MPEG algorithms, speech and audio enhancement, noise cancellation, speech recognition. Image processing: analog to digital transformation, sampling and smoothing of images and low-pass filters, reconstruction and enhancement filtering, noise and images, spatial frequency.

Reference books and materials Sanjit K. Mitra, Digital Signal Processing: A Computer Based Approach, McGraw Hill, 2004 R. G. Lyons, Understanding Digital Signal Processing, Prentice Hall, 2004 S. W. Smith, Digital Signal Processing: A Practical Guide for Engineers and Scientists, Newness, 2003


CPEN 305 Computer Networks (3 credits)

History and overview of computer networks including reasons for studying the course, description of the key components of network, networking software and hardware, terminologies, and role of networks in computer engineering. Communication network architecture: networks architecture - point-to-point and multi-point configurations, networking topologies - mesh, star, bus, ring; networking and internetworking devices - routers, repeaters, switches, gateways; connection oriented and connectionless services. Network protocols: network protocols - syntax, semantics and timing; TCP/IP protocol, OSI layering protocol software, network standard and standardization bodies. LAN and WAN architecture systems: LAN topologies - star, ring and bus; LAN technologies - Ethernet, token Ring, Gigabit Ethernet; error detection and correction, CSMA networks, circuit and packet switching, protocols - IP addressing, IP assignment and configuration, DNS, HTTP, UDP and STMP, IPv4 and IPv6, connection establishment, congestion control, flow control, virtual circuits, quality of service. Client-server computing: client-server interaction, web technologies, characteristics of web servers, support tools for website creation and web management. Data security: basics of secure networks, encryption and privacy, authentication protocols, packet filtering, firewalls, virtual private networks, transport layer security

Reference books and materials B. A. Forouzan, TCP/IP Protocol Suite, 2nd Ed., McGraw-Hill, 2003. L. Peterson and B. Davie, Computer Networks: A Systems Approach, 3rd Ed., Morgan Kaufmann, 2003 Leon-Garcia, Communication Networks Fundamental Concepts & Key Architectures, McGraw-Hill, 2003 James F. Kurose and Keith W. Ross, Computer Networking: A Top-Down Approach, 4th Ed., Addison-Wesley, 2008


CPEN 306 Microelectronic Devices and Circuits (3 credits) Prerequisite: FAEN 108

History and overview of microelectronic devices and circuits, reasons for studying microelectronics and its role in computer engineering. Semiconductor physics: overview of basic properties of semiconductors and the p-n junction. MOSFET: physics of NMOS and PMOS transistors, simple fabrication concepts, modelling of MOSFET circuits, load-line analysis, bias circuits, small-signal equivalent circuits, common-source amplifiers, source follower amplifier stages, amplifier characteristics using two-port equivalent circuits, current and voltage gains, input and output impedances, frequency response and transfer function. NMOS and PMOS binary functionality in NAND and NOR logic. Logic circuits: CMOS inverters, NOR and NAND gates, the CMOS pass gates, buffers. Logic circuits: flip-flops, registers, counters, adders, multiplexers.

Reference books and materials R. C. Jaeger and T. N. Blalock, Microelectronic Circuit Design, 2nd Ed., McGraw-Hill, 2004. Howe, Roger, and Charles Sodini, Microelectronics: An Integrated Approach, Prentice Hall, 1996


CPEN 307 Operating Systems (3 credits) Prerequisite: FAEN 112

History and overview of operating systems including reasons for studying operating systems, description of purpose of operating system, services and characteristics of good operating system, relevance of operating system to computer engineering. Design principles: functions of a typical operating system, mechanisms to support client-server models, design issues, structuring methods, processes and resources, concept of APIs to operating systems, device organization, interrupts and implementations, concepts of user and system states and protection. Concurrency: states and state diagrams, dispatching and context switching, role of interrupt, concurrency execution, mutual exclusion problem and solution, deadlock and its causes and prevention, semaphores and monitors, producer-consumer problems and synchronization. Process scheduling and dispatch: preemptive and non-preemptive scheduling, schedulers and policies, processes and threads, deadlines and real-time issues. Memory management: memory types and hierarchy, memory management hardware, swapping and partitions, paging and segmentation, placement and replacement policies, working sets and thrashing, caching. File systems: files - data, metadata, operations, organization, sequential and non-sequential; directories - content and structure; file system - partitioning, mount and unmount, virtual file; special purpose file, naming, searching access and backups. Device management: characteristics of parallel and serial devices, buffering strategies, direct memory access, recovery from failure. Security: overview of security systems, security methods and devices, protection, access and authentication, models of protection, memory protection, encryption and recovery management.

Reference books and materials I. M. Flynn and A. M. Mchoes, Understanding Operating Systems, PWS Publishing, Boston, 1993 Silberschatz and Galvin, Operating System Concepts, 5th Ed., Addison-Wesley, 1998 A. Tanenbaum, Modern Operating Systems, 2nd Ed., Prentice-Hall, 1992


CPEN 308 Fundamentals of Information Transmission (2 credits)

History and overview of information transmission, reasons for studying data transmission, modern trends in telecommunication technology for data transmission, role of information transmission in computer engineering. Fundamental principles: telecommunication signals and their representation, building blocks of a telecommunication systems, description of communication systems types - optical fiber system, microwave system, satellite system, mobile communication system, basic concepts of signal transmission in transmission media, time and frequency signal bandwidth, signal-to-noise ratio, channel and channel capacity, sampling theorem. Linear communication techniques: amplitude modulation process, frequency modulation process, phase modulation process, multiplexing strategies. Digital communication principles: analog to digital conversion of voice, process of signal sampling, quantization, pulse code modulation, time division multiplexing, amplitude shift keying, frequency shift keying, phase shift keying, spread spectrum techniques, digital demodulation.

Reference books and materials L. W. Couch II, Digital and Analog Communication Systems, 6th Ed., Prentice Hall, NJ, 2001 B. P. Lathi, Modern Digital and Analog Telecommunication Systems, 3rd Ed., Oxford Press, 1998 Ziemer and Tranter, Principles of Communications, 5th Ed., John-Wiley & Sons, 1990


CPEN 309 Programming Language Fundamentals (3 credits)

History and overview of programming language from FORTRAN to modern languages such as Java, including reasons for the study of programming fundamentals, challenges and techniques involved in designing programming languages, and role of programming fundamentals in computer engineering. Programming paradigms: procedural and functional programming, object oriented design, encapsulation and information hiding, separation of behavior and implementation, classes and subclasses and inheritance, event driven programming. Syntax and Semantics of programming: basic syntax and semantics of high level language, variables and types, expressions and assignments, simple input-output, conditional and iterative control structures, functions and parameter passing. Algorithms and problem solving: problem solving strategies, role of algorithms in problem solving, algorithms implementation strategies, debugging strategies, algorithm properties and concepts, structured decomposition. Data structures: primitive types, arrays, records, strings and string processing, data representation in memory, stack and heap allocation, runtime storage management, pointers and references, linked structures, implementation for stacks and queues and hash tables, implementation for graphs and trees, strategies for choosing right data structure. Recursions: concept of recursion, recursive mathematical functions, divide-and-conquer strategies, recursive backtracking, implementation of recursion. Using APIs: API programming, class browsers and related tools, programming by example, debugging in API environment, component based computing, middle ware.

Reference books and materials Robert W. Sebesta, Concepts of programming languages, 8th Ed., Addison Wesley, 2008 K. C. Louden, Programming languages: Principles and practice, PWS-Kent series in Comp. Sci., 1993


CPEN 312 Object Oriented Programming with Java (3 credits) Prerequisite: CPEN 201

Programming techniques in unstructured, procedural and modular programming, modular programming problems and strategies. Object-Oriented program development environment tools. Object-Oriented structure and development: classes, inheritance, encapsulation, polymorphism, class derivation, abstract classes, interfaces, static class members, object construction and destruction, namespaces, exception handling, function overloading and overriding, function name overload resolution, container classes, template classes, multiple treads and synchronization. Generic Classes and methods, Applets and Java Web start, Multimedia: Applets and Applications, GUI components, Multithreading. Applications in artificial intelligence, accessing database with JDBC, and software design and Web Services.

Reference books and materials Harvey M. Deitel and Paul J. Deitel, Java: How to Program, 8th Ed., Prentice Hall, 2010 R. Morelli, Object-Oriented Problem Solving: Java, 2nd Ed., Prentice-Hall, 2003


CPEN 314 Industrial Practice (1 credit)

Participation in eight-week duration industrial attachment to work on projects that intend to solve real problems defined by the industry. Students will produce report on activities engaged at the industry.

Reference books and materials