**EPOKA**** UNIVERSITY**

**FACULTY OF ENGINEERING AND ARCHITECTURE**

**DEPARTMENT OF COMPUTER ENGINEERING**

Computer Engineering

**Course Descriptions**

**CEN 109- Introduction to Algorithms and Programming:** The objective of this course is to equip the students with the basic understanding of algorithms and programming concepts. Flowcharts, Data types, decision statements, compound statements, logical operators, while loop, for loop, do while loop, text files, standard math functions, modular programming, arrays are covered in the course.

**MTH 101- Calculus I:** Functions, Limits, continuity and derivatives. Applications. Extreme values, the Mean Value Theorem and its applications. Graphing. The definite integral. Area and volume as integrals. The indefinite integral. Transcendental functions and their derivatives. L'Hopital's rule. Techniques of integration. Improper integrals. Applications. Parametric curves. Polar coordinates.

**PHY 101- General Physics I:** Vectors, kinematics, Newton's laws of motion, work and energy, conservation of energy, linear momentum and its conservation, rotation of rigid bodies about a fixed axis, angular momentum and its conservation.

**ENG 103- Development of Reading and Writing Skills in English I:** The course reinforces academic reading skills (finding the main idea, skimming, scanning, inferring information, guessing vocabulary from context, etc.) through reading selections on a variety of topics. It also aims at developing critical thinking, which enables students to respond to ideas in a well-organized written format. Other reading related writing skills such as paraphrasing and summarizing are also dealt with.

**MTH 102- Calculus II:** Infinite series, power series, Taylor series. Vectors, lines and planes in space. Functions of several variables: Limit, continuity, partial derivatives, the chain rule, directional derivatives, tangent plane approximation and differentials, extreme values, Lagrange multipliers. Double and triple integrals with applications. The line integral.

**MTH 106- Discrete Mathematics:** To equip Computer Science students with the necessary mathematical background in enumeration, relations, logic and elements of graph theory. Sets and propositions: Finite and infinite sets, mathematical induction, propositions. Permutations, combinations and discrete probability. Relations and functions: binary, equivalence relations, partitions, partial ordering, functions. Graphs: weighted graphs, paths and circuits, shortest paths. Eulerian and Hamiltonian paths. Trees. Abstract algebra: groups, cosets, Lagrange's theorem, Boolean algebra.

**PHY 102- General Physics II:** Electric Field and potential of point particle and continuous charge distributions, Coulomb Law, Gauss Law, Electrical Potential, Capacitors, Current Formation and Resistor, Constant Current, Circuits of Direct Current, Magnetic Field, Electromagnetic Induction, Faradays Law, Lenzs Law, Inductance, Alternating current circuits, EM Waves.

**ENG 104- Development of Reading and Writing Skills in English II:** The course reinforces academic writing skills. In this course students write different types of essays based on the ideas they are exposed to in the reading selections. The emphasis is on the writing process in which students go through many stages from brainstorming and outlining to producing a complete documented piece of writing.

**CEN 215- Object Oriented Programming:** Syntax and semantics of programming languages, grammars, design of programming languages, data types, variables, expressions and statements, procedures, recursion, parameter passing, dynamic and static memory management. Functional, logic, and object-oriented programming paradigms. Examples from typical and modern programming languages.

**CEN 217- Electrical and Electronic Circuits:** Concept of voltage, current and power. Ohm's law, KCL, KVL. Nodal and mesh analysis. The venin equivalent circuits. Semiconductor diodes and diode applications. Transistor biasing and operation. Operational amplifiers and applications.

**CEN 219- Computer Organization:** Understanding of the inner-workings of modern computer systems and tradeoffs present at the hardware-software interface: Instruction set design and addressing modes, register transfer, internal CPU bus structure, ALU (microprogramming and hardwired control), computer arithmetic, memory system, input-output system and survey of real computers and microprocessors.

**CEN 202- Database Management Systems:** Database design using entity-relationship model and relational data model, SQL (data definition and data manipulation languages), data integrity and integrity constraints, triggers, stored procedures, indexing and application development.

**CEN 204- Digital Design:** Boolean algebra, number systems, data representation, logic theorems, canonical forms, simplification techniques, logic gates, design of combinational circuits, timing and timing problems, sequential circuits, design of sequential circuits and the algorithmic state machine, programmable logic devices, register operations, basic computer organization and design.

**CEN 206- Data Structures:** Study of the basic data structures and their implementations: Arrays, matrices, stacks, queues, hash tables, trees, lists, and graphs. Programming techniques using recursion. Various searching and sorting methods such as insertion sort, merge sort, and quick sort. Basic analysis of algorithms.

**MTH 206- Numerical Analysis:** Solutions of nonlinear equations, Newton's method, fixed points and functional iterations, LU factorization, pivoting, norms, analysis of errors, orthogonal factorization and least square problems, polynomial interpolation, spline interpolation, numerical differentiation, Richardson extrapolation, numerical integration, Gaussian quadratures, error analysis.

**CEN 307- Computer Networks:** OSI reference model, Internet and TCP/IP. Application layer protocols: HTTP, FTP, SMTP, POP3, and DNS. Socket programming, transport layer services, flow and congestion control, network layer and IP protocol, addressing, routing, data link layer protocols, local area networks.

**CEN 309- Analysis of Algorithms:** Fundamental concepts and techniques in the analysis of algorithms and the relevance of such analysis to the design of efficient algorithms. Asymptotic notations, worst, average, and best case analysis, models of computation, searching and sorting, amortized analysis. Graph, numerical and combinatorial algorithms. Introduction to Incompleteness theory, and lower bound techniques.

**CEN 311– Web Technologies and Programming: **Regular expressions, context free grammars and languages. Pumping lemma, finite and pushdown automata, Chomsky hierarchy, Turing machines, computability theory, determinism and non-determinism, recursive function theory.

**CEN 308- Operating Systems:** Basic roles of operating systems on computers. Concepts such as multiprogramming, time sharing, process management, threads, interposes communication, concurrency and synchronization, deadlocks, memory management and protection, file systems. Case studies on contemporary operating systems.

**CEN 302- Software Engineering:** Modeling with UML, introduction to design patterns, project management and software development processes, requirements elicitation and analysis, system design, object design, testing, rational and configuration management, software life cycle, and methodologies. Particular emphasis is on a team project in which a group of students implement a system from its specification.

CEN 372- Artificial Intelligence: This is an introductory course on Artificial Intelligence. The topics may include: AI methodology and fundamentals; intelligent agents; search algorithms; game playing; supervised and unsupervised learning; decision tree learning; neural networks; nearest neighbour methods; dimensionality reduction; clustering; kernel machines; support vector machines; uncertainty and probability theory; probabilistic reasoning in AI.