Semester 1
Fundamentals of Computer Engineering (BLGM107)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
5
Discrete mathematics lesson; It is the first non-calculus mathematics course given to students who specialize in mathematics, computer science and engineering. This course is designed to introduce the non-continuity discrete concepts of mathematics and the mathematical tools and techniques used to examine these concepts. Discrete mathematics; It includes different concepts such as clusters, relations (relations), functions, propositional logic and basics of Boolean algebra, mathematical induction, recursion relations, basic and advanced counting techniques, charts and trees. This course also introduces some proof techniques of mathematics including induction technique, validation table, Venn diagram method, pigeon nest principle. In addition, discrete mathematics; the door is for more advanced courses. Discrete mathematics; It provides mathematical foundations for many courses including data structures, algorithms, database systems, digital logic design, digital logic systems, operations research, automata theory, computer security, abstract algebra, mathematical modeling, geometry and topology.
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
4
ENGL171 is the first semester, first year English language course offered to all students studying in a 4-year Turkish Medium Program at the university. It is designed to help students improve the level of their English to halfway towards A1 level, as specified in the Common European Framework of Reference for Languages. This course introduces the students to the English language and aims to develop listening, speaking, reading and writing skills.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Limits and continuity. Derivatives. Rules of differentiation. Higher order derivatives. Chain rule. Related rates. Rolle's and the mean value
theorem. Critical Points. Asymptotes. Curve sketching. Integrals. Fundamental Theorem. Techniques of integration. Definite integrals.
Application to geometry and science. Indeterminate forms. L'Hospital's Rule. Improper integrals. Infinite series. Geometric series. Power
series. Taylor series and binomial series.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Fizik ve Ölçme, Vektörler,Vektörlerin (bir ve iki boyutta olmak üzere) uygulamaları, Newton'un kanunları ve uygulamaları, dairesel hareket, iş ve enerji, enerjinin korunumu ve değişimi, çizgisel momentum ve çarpışma problemleri, enerji ve momentumun korunumu, katı cisimlerin sabit bir eksen etrafında dönmesi, yuvarlanma hareketi, açısal momentum ve statik denge.
Semester 2
Credit:
- |
Lecture Hour (hrs/week):
- |
Lab (hrs/week):
- |
Tutorial (hrs/week):
2 |
ECTS:
2
A series of seminars are held in current topics and areas of specialization in Software Engineering.
Speakers are invited from different departments of EMU including Computer Engineering Department or
other International Universities, Industry and Consulting firms, to deliver seminars in all aspects of
engineering that are not normally covered in the lecture courses.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
An overview of C programming language, Sequential structure Data types and classes of data, arithmetic
operators and expressions, assignment statements, type conversions, simple I/O functions (printf, scanf,
fprintf, fscanf, gets, puts, fgets, fputs). Selective structure Relational operators, logical operators,
conditional expression operator, conditional statements (if, switch). Repetitive structures While, do-while, for loops, loop interruptions (goto, break, continue), Null statement, comma operator. Functions Function definition and function call, external variables, storage classes, recursion. Arrays Array declaration, array initialization, arrays as function arguments. Pointers Basics of pointers, functions and pointers, arrays and pointers, strings and pointers, library functions for processing strings, pointer arrays. Structures Basics of structures, structures and functions, arrays of structures. (Pre-requisite: CMPE 101)
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
4
COURSE DESCRIPTION
ENGL172 is the second semester, first-year English language course offered to all students studying in a 4-year Turkish Medium Program. It is designed to help students improve the level of their English to A1+, as specified in the Common European Framework of Reference for Languages. This course introduces the students to the English language and aims to develop listening, speaking, reading and writing skills in academic settings.
.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Catalog Description
Power Series, Taylor Series, Parametric Equations, Vectors, Limits, Derivatives and Integrals of Vector-valued Functions,
Planes and Surfaces, Bivariate Functions, Partial Derivative, Tangent Planes and Differentials, Double Integrals, Triple
Integrals, Vector Fields, Fundamental Theorems of Curve Integrals, Surface integrals.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Heat, 1st and 2nd law of thermodynamics, electrical fields, Gauss' law, electric potential, magnetic fields, magnetic field sources, Faraday's law, inductor, alternative current circuits, electromagnetic waves. Semiconductors, diodes and circuits, transistors and amplifier circuits.
Atatürk İlkeleri ve İnkilap Tarihi (HIST280)
Credit:
2 |
Lecture Hour (hrs/week):
2 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
3
Semester 3
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Binary Systems (Binary Numbers, Octal and Hexadecimal Numbers, Number Base Conversions,
Complements, Signed Binary Numbers, Binary Codes, Binary Logic). Boolean Algebra and Logic Gates
(Basic Definitions, Basic Properties of Boolean Algebra, Boolean Functions, Canonical and Standard
Forms, Other Logic Operations, Digital Logic Gates, ICs). Simplification of Boolean Functions (The Map
Method, Two, Three and Four Variable maps, Product of Sums Simplification,
NAND and NOR Implementation, Other Two-Level Implementations, Don't-Care Condition). Combinational
Logic (Design Procedure, Adders, Subtractors, Code Conversion, Multilevel NAND Circuits, Multilevel NOR Circuits, Exclusive-OR Functions). MSI and PLD Components (Binary Adder and Subtractor, Decimal Adder, Decoders and Encoders, Multiplexers, PLA and PAL). Synchronous Sequential logic, flip-flops, analysis of timed sequential circuits. Design procedure, state reduction, state assignment and flip-flop activation tables.(Pre-requisite: MATH163)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Data types. Binary and decimal Integers. Floating point number. Pointers. Arrays. Structures. Array of
structures. Self-referential structures. Dynamic memory allocation. Concept of Abstract Data Type (ADT).
Memory allocation of arrays. Linked lists (singly linked, doubly linked, circular). Dynamic implementation
of lists. The stack. Infix, postfix, and prefix notations. Applications of the stack: Infix-to-postfix conversion,
evaluation of postfix expressions. Recursion. Binary search. The towers of Hanoi problem. Queues.
Trees and their applications. Binary tree representations. Binary tree traversals. Binary search trees
(definition, operations). Heaps (Pre-requisite: CMPE 112)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Basics of Java programming language. Introduction to object-oriented programming. Classes, objects, methods, access modifiers (private, public, protected). Class derivation, abstract classes, interfaces, static class members. Inheritance, encapsulation, polymorphism. Object construction and destruction, namespaces, exception handling. Method overloading and overriding, container classes, template classes. Unified Modeling Language (UML) class diagrams.
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
4
ENGL 203 is a basic Vocational English course offered in the third semester. The course aims to revise technical terms and knowledge while using a range of skills, including reading, writing, and oral communication skills. Throughout the course, the students will focus on tasks which intend to help them in their immediate and future academic and professional life. The tasks selected for this course will be parallel with topics covered in their field of study. Therefore students will not only have the opportunity to digest those topics but they will also practise the English language.
Linear Algebra and Ordinary Diff. Equations (MATE241)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Semester 4
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Synchronous Sequential Logic; Latches, Circuit Delay Model, Flip-Flops. Mealy and Moore Models for
Sequential Circuits. Analysis of Clocked Sequential Circuits. Introduction to Sequential Circuit Design.
State Reduction and Assignment. Flip-Flop Excitation Tables. Design Procedure. Design of Counters.
Registers, Counters and the Memory Unit; Registers, Shift Registers. Ripple Counters. Synchronous
Counters, Timing Sequences. Random Access Memory (RAM), Memory Decoding. Implementation
Technology; Programmable Logic Devices (ROM, PLA, PAL, CPLD, FPGA). Algorithmic State Machines
(ASM); ASM Flow Chart. Timing Considerations. Control Implementation. Asynchronous Sequential
Circuits; Flow Table. Transition Table. Race Condition. Implementation with Lumped Delay Elements
and Latches. Glitches and Hazards. (Pre-requisite: CMPE 223)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Circuits, currents and voltages, power and energy, Kirchoff's current and voltage laws. Circuit elements
and circuits. Resistive circuits: resistance in series and parallel, resistive network analysis by series and
parallel equivalents, node and mesh analysis. Thevenin and Norton equivalents. Superposition.
Inductance and Capacitance, physical characteristics, practical capacitor and inductors. Basic diode
concepts: Zener diode, Ideal diode model, rectifiers and waveshaping. Basic amplifier concepts,
cascaded, ideal, and differential amplifiers, offset voltage, bias current and offset current. Bipolar
Junction Transistors: Current and voltage relationship, common emitter characteristics, pnp BJT LargeSignal
DC Circuit models. Common Emitter amplifiers. Emitter Follower. Operational Amplifiers: ideal
OPAmp, summing point, inverting and noninverting amplifiers, Nonlinear imperfection, Differential and
Instrumentation Amplifiers, Integrators and Differentiatiors. Logic Circuits: Basic concepts: TTL and
CMOS implementation of logic gates.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Operating system definition, simple batch systems, multiprogramming, time-sharing, personal computer
systems, parallel systems. introduction to process, process scheduling, operations on processes,
cooperating processes, interprocess communications, interrupts, process synchronization, criticalsection
problem, atomic instructions, semaphores, synchronization problems, CPU scheduling,scheduling criteria and algorithms, multiple processes and real-time scheduling, algorithm evaluation, deadlocks, characterization and handling of deadlocks, deadlock prevention avoidance and detection,deadlock recovery, memory management and virtual memory, address spaces, swapping, memory allocation, paging, segmentation, file-systems, file concepts, access methods, directory structure.
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Numerical Error. Solving nonlinear equations and nonlinear systems of equations. Interpolation and
extrapolation. Curve Fitting. Numerical differentiation and integration. Solving ordinary differential
equations.
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
6
Uni. Elective - Art & Humanities - II
Semester 5
Computer Architecture and Organization (BLGM325)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
-
Introduction to computing: Inside the computer, CPU-RAM-ROM. 80x86 microprocessor: short history,
registers, mov and add instructions, program segments, data segments, logical and physical addresses,
stack, push, pop, flag register, addressing modes. Assembly Language Programming: Directives, .asm,
.lst, .obj, .map, linking, and .exe files, control transfer instructions, data types and data definition.
Arithmetic Logic Instructions: unsigned multiplication and division, unsigned, signed, bcd, packed-bcd
and ascii number conversion, rotate and shift instructions. Bios and DOS programming: bios display and
keyboard interrupts, int 21h dos function calls. Macro definitions: mouse button and cursor position. 8088
PC/XT expansion slot, 80286 and the ISA bus, Memory and memory interfacing: EPROM, SRAM and
DRAM devices, address decoding circuits, ISA bus memory interfacing. Memory mapped and Isolated
I/O methods and device interfacing: ISA bus I/O address decoding and simple I/O ports, Programmable
4 Peripheral Interface 8255 and LED, 7-segment-display, switch, button, keypad, stepper motor
interfacing. D/A converters, A/D converters. Hardware Interrupts: NMI and INTR pins, interrupt servicing
and TSR programs. Serial Data Communication and 8251 USART.
Database Management Systems (BLGM353)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
-
This course introduces the student to the fundamentals of database management. Topics covered
include: the Entity-Relationship model; the Relational model and its mathematical foundations; most
important features of Structured Query Language (including basic structure, aggregate functions, nested
queries, index definition, stored procedures and functions, views, database modification, domain
constraints, assertions, triggers, transaction definition, data definition language, granting privileges,
security), query languages Datalog and QBE; Object-Oriented and Object-Relational databases; design
principles of Relational databases (normal forms, functional dependencies, decomposition).
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Definition and properties of Algorithms. Design, analysis, and representation of Algorithms. Data
abstraction. Pseudo code conventions. Models of computation. Mathematical Foundations: Growth of
functions, asymptotic notations. Study of recursive algorithms and associated recurrence relations
(substitution method, iteration method, master method, recursion trees). Design paradigms for
algorithms: Brute-Force (Exhaustive Search), Divide-and-Conquer (Merge Sort, Binary Search Tree)
Dynamic Programming (Matrix-Chain multiplication, LCS-length, 01-Knapsack Problem). Greedy algorithms (Greedy Activity Selector, Fractional Knapsack Problem). Graph Algorithms: Representation
of sets and graphs. Breadth-first search, depth-first search. Minimum spanning trees. Single-source
shortest paths. All-pairs of shortest paths.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Fundamental concepts of signals and systems for computer engineers with focus on discrete-time
systems. Sinusoids, complex numbers, spectrum representation, sampling, frequency response, filters,
and the z-Transform. Digital signal processing of multimedia signals.
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
1 |
Tutorial (hrs/week):
- |
ECTS:
5
Counting. Permutation, conbination. Probability; rules on probability. Conditional probability. Baye’s
Theorem. Random variables; Discrete random variables, continuous random variables. Expectation,
variance, standart deviation. Independent random variables. Binomial distribution, Multinomial
distribution. Poisson distribution. Hypergeometric distribution. Normal distribution. Normal
approximation to binomial distribution. Descriptive statistics; data, array, frequency distribution,
histogram, frequency polygon, cummulative frequency distribution, ogive. Measures of General
Tendencies; mean, median, mode, standart deviation. Interval estimation. Confidence interval
Semester 6
High End Embedded Systemsn (BLGM320)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
-
Introduction to RISC architecture, MIPS Instruction set: Representing instructions in the computer,
Linkers, Supporting procedures in computer hardware, Passing the arguments to a procedure, Constant
or immediate operands in MIPS, Addressing in branches and jumps in MIPS, MIPS addressing modes,
MIPS assembly program. Integer Arithmetics: Negative number representations, Addition and
subtraction, Logic operations, Constructing the Arithmetic Logic Unit (ALU), Multiplication algorithms,
Division algorithms, Floating point arithmetic algorithms. Design Performance Measures: CPU
performance, Evaluating the performance. Processor Data path: Logic conventions and clocking, MIPS
single clock cycle implementation: (Building a datapath), The simple implementation scheme, The
multiple clock cycle implementation, Designing the control unit for the multiple clock cycle
implementation: Finite state machines (FSM) and Microprogramming. Enhancing Performance with
Pipelining: A pipelined datapath, Pipelined control, Data hazards, Control for data hazards, Reducing
data hazards, Branch hazards, Exceptions, Performance of pipelined systems.
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
7
Introduction to fundamental concepts of computer networks. Basic performance and engineering tradeoffs
in the design and implementation of computer networks. Network hardware/software, protocols and
layers, OSI and TCP/IP reference models. Data link layer design issues including encoding, framing,
error detection, reliable delivery, and multiple access. Multiplexing, switching, and routing. LANs,
wireless LANs, cellular networks. TCP/IP protocol family. Network applications. New trends in computercommunication
networks. ).
Client/Server Programming (BLGM342)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
-
This course introduces the student to the fundamentals of database management. Topics covered
include: the Entity-Relationship model; the Relational model and its mathematical foundations; most
important features of Structured Query Language (including basic structure, aggregate functions, nested
queries, index definition, stored procedures and functions, views, database modification, domain
constraints, assertions, triggers, transaction definition, data definition language, granting privileges,
security), query languages Datalog and QBE; Object-Oriented and Object-Relational databases; design
principles of Relational databases (normal forms, functional dependencies, decomposition).
Software Engineering (BLGM312)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
-
Evolution of programming languages and concepts. Syntax and semantics of programming languages.
Context-free grammars. Lexical analysis. Syntax analysis. Top-down vs. bottom-up parsing. LR parsing
tables. Names, scope and lifetime. Expressions. Statements. Subprogram linkage. Stack implementation
of subprogram calls. Parameter passing methods. Object oriented concepts. Implementation of
inheritance: virtual method tables. Concurrency. Exception handling. Functional or Logic programming.
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
4
Uni. Elective - Art & Humanities - II
Semester 7
Credit:
- |
Lecture Hour (hrs/week):
- |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
1
As a part of the fulfillment of the graduation requirements, all students must complete 40 work days of
summer training after the second and/or third year, during summer vacations. The summer training
should be carried out in accordance with the rules and regulations set by the department. (3rd/4th year
standing)
Security of Computer System and Networks (BLGM455)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Opt. Elective Course I (OEC-I)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Opt. Elective Course II (OEC-II)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Mathematical preliminaries and basic concepts. Strings, Languages and Grammars. Chomsky hierarchy
of grammars. Deterministic and nondeterministic finite automata. Equivalence of deterministic and
nondeterministic finite automata. Minimization of finite automata. Regular grammars and regular
expressions. Pushdown automata. Context free grammars. Chomsky normal form. Greibach normal
form. Correspondence of pushdown automata and context free grammars. Introduction to Parsing.
Graduation Project - I (BLGM405)
Credit:
1 |
Lecture Hour (hrs/week):
1 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
3
Ethics in Engineering (IENG356)
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
4
Semester 8
Principles of Programming Languages (BLGM410)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
-
The software life cycle and the phases in software development: Project scheduling, feasibility study,
analysis, specification, design, implementation, testing, quality assurance, documentation, maintenance.
Management issues: Planning, organization, control. Also included are formal specification techniques,
structured programming, modular system design and other current issues.
Opt. Elective Course III (OEC-III)
Credit:
4 |
Lecture Hour (hrs/week):
4 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
1 |
ECTS:
6
Uni. Elective - Art & Humanities - III (UE-AH03)
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
4
Uni. Elective - Art & Humanities - IV (UE-AH04)
Credit:
3 |
Lecture Hour (hrs/week):
3 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
- |
ECTS:
5
Credit:
3 |
Lecture Hour (hrs/week):
1 |
Lab (hrs/week):
- |
Tutorial (hrs/week):
4 |
ECTS:
7
This course is the sequel to CMPE405. It consists in the implementation of a realistic, preferably
interdisciplinary, engineering capstone project emphasizing engineering design principles on a computer
engineering topic. It is carried out by a team of students under the supervision of an instructor. The team must complete the detailed design and implementation of the preliminary design they started in the
CMPE 405 course. It is an extended exercise in the professional application of the skills and experience
6 gained in the undergraduate program. The team has to make a presentation and submit a detailed final
report which documents the design, implementation and testing.