**Detailed Course Description: LEVEL 200**

Sequences and Series: Evaluating limits of sequences, tests of convergence of finite series, power series; radius and interval of convergence, Maclaurin and Taylor series. Improper integrals: Convergence, Special functions: Gamma and Beta functions etc, Lagrange polynomials, finite differences, and least square approximation. Functions of Several Variables: Limits and continuity, partial differentiation, critical points and their classifications, increments and differentials, implicit differentiation, the chain rule, directional derivatives. Differential operators: The gradient, the divergence and the curl operators, line integrals, multiple integrals, integration of vector functions, Green's theorem, divergence and Stokes theorem

**Reference books and materials** A. Jeffrey, Mathematics for Engineers, Chapman-Hall, A. Himonas and A. Howard, Calculus: Ideas and Applications, John-Wiley and Sons, 2003. E. W. Swokowski, Calculus, Weber-Schmidt,

Differential Equations: First and Second order ordinary differential equations, series solutions, system of ordinary differential equations. Initial-value problems: Laplace transform, partial differential equations, boundary-value problems, Fourier series and transforms, applications

**Reference books and materials** E. J. Purcell and D. Varberg, Calculus, Prentice-Hall, G. Ledder, Differential Equations: A Modeling Approach, McGraw-Hill, 2005.

History of C++, ANSI C++, C++ programming environment and programming style. Extensions of C to C++. Creating of Files and Streams in C++, connecting and disconnecting. Arrays as parameter functions, sorting arrays, 2-dimensional arrays, dynamic arrays, automatic and dynamic variables, linked lists. Declaration of Pointers and Addresses and their usage. Functions and Procedural Abstractions: User-defined functions, value and reference parameters, functions using value parameters, reference parameters, procedural abstraction and good programming style, splitting programs into different files. Basic concepts of recursion, mechanics of a recursive call, recursion and iteration, recursive data structures, recursive procedure for sorting. C++ extensions to Object-Oriented Programming: Creating basic classes and objects, constructors and destructors, inheritance, construction, destruction, and multiple inheritances. Polymorphism. Abstract Classes. Operator overloading. A case study: Generic types (templates), shape and traversal, properties of singly linked lists, shape implementation, Iterator implementation and example usage

**Reference books and materials** H. M. Deitel and P. J. Deitel, C++: How to Program, 7th Ed., Prentice Hall, 2008 W. Savitch, Problem Solving with C++, 6th Ed., Addison-Wesley, 2007 T. Gaddis, Starting Out with C++: Control Structures through Objects, 5th Ed., Addison-Wesley, 2007

Introduction to VHDL: overview of VHDL and characteristics, user interface and features, assignment statements, signal assignment, conditional signal assignment, statement generation, concurrent and sequential assignment statement, process statement, case statement, VHDL operator. Digital Systems Design: hierarchy and modular design of digital systems, design principles, functional units and building blocks and components, control concepts, timing concepts. Programmable devices: PLD, FPGA, PLA, ROM, PAL, CPLD. Modeling and Simulation: block diagram development, hierarchical schematic modeling, digital system modeling with VHDL, functional simulation of combinational and sequential circuits, flip-flop selection, timing models of digital circuit elements, timing simulation to measure delays, simulation and testing of circuit. Formal Verification: relationship between good design practice and formal verification, verification by model checking, verification by proof, verification by equivalence checking, verification by simulation, verification by testing, economics of verification, other verification - signal integrity, specification, reliability, safety, power, cooling. Fault models and testing of logic circuits: types and characteristics of common faults in digital circuits, single and multiple faults, test coverage, fault equivalence and dominance, fault simulation and grading, test generation algorithms, test generation algorithm for sequential circuits, memory testing and PLA testing.

**Reference books and materials** S. Brown and Z. Vranesic, Fundamentals of Digital Logic with VHDL Design, 2nd Ed., McGraw-Hill, 2005. J. F. Wakerly, Digital Design Principles and Practices, 4th Ed., Prentice-Hall, 2001

History and overview of digital logic including reasons for studying digital circuits, important areas of application, role of digital circuits in computer engineering. Switching theory: number systems and codes, binary arithmetic and logical operations, Boolean and switching algebra, representation and manipulations of functions, minimization of functions. Combinational Logic: truth tables, basic logic gates, realization of switching functions with networks of logic gates, relations between electronic circuits and Boolean functions. Design of Combinational Circuits: multiplexers, arithmetic functions - half and full adders, subtractors, multipliers and dividers, arithmetic and logic units. Memory Elements: basic circuits for latches, clocked and unclocked memory devices, basic Flip-Flops (RS, D and JK), asynchronous flip-flop inputs (preset, clear), timing constraints (setup time, hold time), data registers (selection, clocking timing), random access memory. Sequential Logic Circuit: finite state machines (FSM), Mealy and Moore models of FSM, modeling FSM behavior (state diagram, table, timing diagram, algorithm state, machine chart), synchronous and asynchronous circuits and analysis, design of synchronous sequential circuits (state minimization, assignment, next state, output realization), sequential functional units (data registers, shift registers, counters, sequence detectors, synchronizers, debouncers)

**Reference books and materials** Roger L. Tokheim, Digital Electronics: Principles and Applications, 6th Ed., McGraw-Hill, 2003. S. Brown and Z. Vranesic, Fundamentals of Digital Logic with VHDL Design, 2nd Ed., McGraw-Hill, 2005.

History and overview of data structures and algorithms, role of algorithms in computing. Pointers and Structures: Pointer Data Types and Pointer Variables, Introduction to Structures, Accessing Structure Members, Pointers and Structures as Structure Members. Fundamental concepts: Recursion, Divide-and-Conquer , Backtracking. Data Abstraction and Abstract Data Types (ADT). Fundamental Data Structures : Arrays and Lists. Linked Lists: Introduction to the concepts of linked lists. Doubly linked-list, circular doubly linked list with a sentinel. Applications of linked list. Queues: Introduction to the concepts of queues and double ended-queues. Applications and implementations of queues. Stacks: Introduction to the concepts of stacks. Applications and implementations of stacks. Analysis of Algorithms: Asymptotic Notation, Performance of searching and sorting algorithms. Searching Algorithms: Search algorithms, sequential search, and binary search. Sorting Algorithms: Quick Sort, Merge sort, Selection sort, Insertion sort, Bubble sort. Graphs: Graph representation, Operations on graphs, Graph Traversals, Shortest Path algorithms, Minimal Spanning Trees. Trees: Concepts of trees, binary trees, binary search trees, binary tree traversal algorithms. *Standard Template Library(STL): Components of STL, containers, iterators, algorithms.

**Reference books and materials** Thomas H. Cormen, Introduction to Algorithms, 2nd Edition, McGraw- Hill/MIT Press.2001 Malik D.S., C++ Programming: Program Design Including Data Structures, 4th Ed., Thomson Course Technology, USA, 2007

History and overview of discrete mathematical structures including reasons for studying the course and application areas, and how computer engineering makes use of the discrete structures. Functions and relations: functions, discrete versus continuous function, relations, continuous and discrete relations, sets - Venn diagram, power sets, complements. Foundations of logic: propositional logic, logical connectives, truth table, normal forms, validity, predicate logic and limitations, universal and existential quantifications. Proof techniques: notion of implication, contradiction , structure of formal proofs, direct proofs, proof by counter example, proof by contraposition and contradiction, mathematical induction. Recursion and Recurrence Relations: concepts of recursion and recurrence, derivation of recurrence equations, initial condition, first order linear recurrence, constant coefficient recurrence, solution to a first order constant coefficient linear recurrence, iterating a recurrence. Counting: permutations and combinations, counting arguments rule of products, rule of sums, generating functions, modeling combinational problems. Graphs and trees: trees, directed and undirected graphs, spanning trees, shortest paths, applications.

**Reference books and materials** K. H. Rosen, Discrete Mathematics and Its Applications, 4th Ed., McGraw-Hill, 1999 A. R. Kenneth, C. R. B. Wright, Discrete mathematics, 2nd Ed., Prentice- Hall, 1985 J. L. Gersting, Mathematical Structures for Computer Science, 5th Ed., VHPS, 1999

History and overview of linear circuits, reasons for studying linear circuits, areas of applications, relevance of linear circuits to computer engineering. Circuit components - resistance, reactance, inductance, capacitance, active and reactive elements, resistance and impedance. Circuit configurations: series, parallel and hybrid configuration of circuits and applications. Circuit laws: Ohm's law, Kirchhoff law, dependent and independent sources, voltage and current divider circuits. Network analysis: nodal analysis and mesh analysis methods. Network theorems: source transformation, superposition, Thevenin, Norton, Maximum power transfer. Operational amplifier: symbol and circuit representation, ideal operational amplifier, inverting and non-inverting amplifiers, integrator and differentiator circuits, design of simple amplifiers. First order circuits: inductance, capacitance, derivation of time constants for RC and RL circuits, response of first order circuits under source-free and step input conditions, switching in first order circuits and applications. Second order circuits: characteristic equation of series and parallel RLC circuits, response of RLC circuit under source-free and step input conditions. Circuit frequency response: frequency response of RC and RLC circuits, transfer functions, resonance of RC and RLC circuits and applications. Sinusoidal analysis: phase representation of voltage and current, impedance and admittance, forced response to sinusoidal function,

**Reference books and materials** C. K. Alexander and M. N. O. Sadiku, Fundamentals of Electric Circuits, 2nd Ed., McGraw-Hill, 2004. C. Visweswaraiah, L. T. Pillage, and R. A. Rohrer, Electronic Circuit and Systems Simulation Methods, 2nd Ed., McGraw-Hill, 1998

History and overview of software engineering, reasons for studying the software engineering, and role of software engineering in computer engineering . Introduction to the process of creating software systems. Software processes: software life cycle, process model, process assessment models, and software process metrics. Requirements and specification: software requirements specification, requirements analysis modeling techniques, functional and nonfunctional requirements, prototyping, concepts of formal specification techniques. Software design: design concepts and principles, software , structured design; object oriented analysis and design, component level design, design for reuse. Software testing: validation planning, test plan creation and generation, black-box testing techniques, object oriented testing, inspections. Software evolution: different forms of software maintenance, impact analysis, characteristics of maintainable software, reengineering, and software reuse strengths and weaknesses. Software tools and environment: programming environments, requirements analysis and design modeling tools, testing tools, configuration management tools, software tools based on databases, tool integration mechanisms. Software project management: organization and management of teams including roles and responsibilities of team and tracking, project scheduling, software measurements, risk analysis, software quality assurance, project management tools.

**Reference books and materials** R. Pressman, Software Engineering - A Practitioner's Approach, 6th Ed., McGraw Hill, 2005 S. R. Schach, Object-Oriented and Classical Software Engineering, 6th Ed. McGraw Hill, 2005

Refer to University curriculum for course details

**Reference books and materials**

Refer to University curriculum for course details

**Reference books and materials**