ITU’s curriculum for a MSCE is a blend of certain Computer Science and Electrical Engineering courses. This reflects the fact that computer engineers are partly programmers and partly computer hardware designers. They are not electronics engineers as their design work is ALWAYS related to the computer. The computer, on the other hand is ALWAYS a program driven device. Typical areas, where this blend is applied and for which ITU prepares the students include ASIC design, FPGA development, firmware development, hardware-firmware integration, and circuit design. The development of this graduate curriculum has taken the recommendations of the above cited IEEE/ACM task force into consideration.
An undergraduate degree is required for admission. If this degree is in the area of computer science, electrical engineering or a related field then a minimum grade point average of 3.0 is required for the last half of courses taken that count for the degree. If this degree is in a different field then the minimum grade point average required for all courses that count for the degree is 3.0. Exceptions to these requirements are specified in the Admission. Policy for the Unclassified Master Degree Program and can as well be made by the academic council.
Required Core Courses:
A minimum of 6 credit units (minimum) . . . . . . . . 6
CEN 951 Computer Architecture (3)
This course focuses on principles of computer architecture, offering students an overview of computer systems, CPU design, computer arithmetic, instruction set architecture, pipelining, microprogramming techniques, memory hierarchies and management, input/output subsystem organization, and performance measurement. Its purpose is to prepare students to understand internal organization of computers and how it affects performance.
CEN/EEN 941 Digital Signal Processing (3)
The course will focus an advanced techniques in signal processing. Stochastic signal processing, parametric statistical signal models, and adaptive filterings. Application to spectral estimation, speech and audio coding, adaptive equalization, noise cancellation, echo cancellation, and linear prediction.
CEN/EEN 948 Computer Network Systems (3)
The course will introduce the principles and techniques in computer network design and architecture. Topics will include OSI and TCP/IP reference models, packet switching, data link control, medium access control, routing algorithms and transport layer control. In addition, an introduction will be given for client-server model, LAN, WAN and network performance evaluation.
EEN 910 IC Design & Methods (3)
This course is designed to give students an overview of the integrated circuit (IC) industry. The course introduces IC design considerations and implementations including Full-Custom design, ASIC design, FPGA design and System-On-Chip (SOC) design. Two course projects are defined with corresponding to ASIC design and Full-Custom approaches individually. Students will learn the various IC design methods, and the benefits and shortcomings of each.
SEN 920 Computer Algorithms (3)
Algorithm design, sorting, searching, graph algorithms, stacks, queues, and dictionary implementations, divide and conquer algorithms, dynamic programming, randomized algorithms, amortized analysis, lower bound analysis, NP-Completeness.
Prerequisites: Knowledge of some programming language.
SEN 956 Unix Operating System (3)
This course focuses on the practical usage of the basic Unix operating system features. It introduces the student to the general principles of modern operating systems: preemptive multiprocessing; and of Unix in particular: shells, environment, shell variables, processes, threads, interprocess communication, the Unix file system, and shell scripts. Upon completion of this course the student will be able to work efficiently in a Unix environment, to tailor an environment to specific needs, to understand the basics of Unix system administration, to understand security risks, to write C programs that use system calls, and to write scripts for the C shell.
Prerequisites: Knowledge of C.
Applied Mathematics courses:
A minimum of 6 credit units (minimum) . . . . . . . . . 6
AMN 910 Linear Algebra
Prerequisite: Knowledge of C or Java.
This course covers the algebraic basic concepts of matrices and matrix operations, determinants, systems of linear equations, Gauss elimination, LU decomposition, vector spaces with inner product. Change of bases, transformations. Gram-Schmidt orthonomalization. Meaning and purpose of eigenvalues, eigenvectors and algorithms for computing them.
AMN 912 Applied Mathematics Methods I
Prerequisite: AMN 910.
This course is intended to provide introduction and accessibility to ordinary and partial differential equations, linear algebra, vector analysis, Fourier analysis, special functions, and eigenfunction expansions for their use as tools of inquiry and analysis in modeling and problem solving.
AMN 920 Optimization Techniques I
Prerequisite: None.
Basic concepts, unconstrained optimization, linear programming, simplex method, degeneracy, multidimensional optimization problems involving equality or inequality constraints by gradient and non-gradient methods.
AMN 921 Optimization Techniques II
Prerequisite: AMN 920.
Combinatorial optimization, Hopfield neural network model, Simulated Annealing and Stochastic machines, mean field annealing, genetic algorithms, Applications to: Tabu search, traveling salesman problems, telecommunications problems, quadratic 0-1 & quadratic assignment problems, graph partition and graph bipartition problems, point pattern matching problems, multiprocessor scheduling problems.
AMN 922 Applied Mathematics Methods II
AMN 930 Numerical Analysis
Prerequisite: Knowledge of C or Java.
Numerical solution of linear system of equations by direct method and iterative method, numerical least square problem, eigenvalue problem, numerical solution of non-linear systems of equations and optimization problem.
AMN 940 Discrete Mathematics
Prerequisite: None.
This course covers topics that are important in the development of computer algorithms and data structures, such as mathematical induction, asymptotic notations, recurrences, infinite series summations, graphs, digraphs, trees and counting combinatorics and discrete probabilities analysis and statistical quality control.
AMN 950 Fast Fourier Transformation & Applications
Prerequisites: None.
This course is designed to provide electrical/computer engineering and applied mathematics graduate students with the background knowledge of Fourier Transformations (FT), Discrete Fourier Transformations (DFT) and Fast Fourier Transformations (FFT). The applications of FFT in Filter Design, Signal Processing and Image Processing are also included in this course.
AMN 952 Probability & Statistics for Engineers
Prerequisites: None.
This course covers the fundamentals of probability and statistics, as well as some widely-used probabilistic models and statistical analysis methods for applications in the areas of engineering. Topics include probability axioms, random variables, densities, basic discrete and continuous distributions, sampling distribution and data descriptions, inferences on means and variances, one- and two-sample tests of hypotheses, linear regression, and analysis of variance. A free statistical computing and graphics software, R, will be used in this course.
Elective courses:
Any courses from this category that have not been selected in other categories can be chosen with the advisor’s approval. The student must choose courses to bring the total of selected credit units up to 36. (remainder) . . . . . . . . . 18
CEN 940 Network Security Techniques
CEN 942 Digital Image Processing I
CEN 954 ASIC Design and Practice
Presequisites: CEN 951.
The purpose of this course is to provide the electrical and computer engineering graduate students with the knowledge of ASIC design methodology, Verilog HDL and Testbench. Main topics to be covered in this course are an introduction to RTL design, Practical coding for synthesis, Verification, Physical design (place and route), and One of Cadence or Synopsys physical design tools.
CEN 956 Distributed Computing systems
CEN 960 Computer Communication Networks, TCP/IP
Prerequisites: None. (Has not been offered since 1998)
Overview, examples, ISO model, physical layer, delay analysis, data link protocols, point-to-point networks, multiple-access networks, local area networks, and selected topics.
CEN 964 Computer Interface and Firmware Engineering
Prerequisites: CEN951 or instructor approval.
This course introduces software and hardware interfaces between computer and peripheral devices.
It covers the system hardware and device firmware design for computer applications, mainly the microcontroller/microprocessor and peripherals. Firmware is programmable content in electronic hardware devices that provides instructions to those devices. It is developed in either C or assembly.
CEN 965 Local Area Networking
CEN 966 Routing in Computer Networks
Prerequisites: None. (The code for this course in the catalog is CSN 866).
This course introduces different routing protocols (RIP, IGRP, EIGRP, OSPF, IS-IS and BGP) as well as new developments (multicasting and MPLS). Students will learn interior and exterior routing protocols that are currently being used in the Internet. In addition, they will study multicast routing and multi-protocol layer switching (MPLS).
EEN/CEN 908 Scientific Computing
This course will cover fundamental scientific computing and optimization techniques used in various electronic engineering fields. The techniques include interpolation methods (linear and non-linear interpolation, piece-wise interpolation, Splines, surface interpolation), solving equations and partial differential equations using numerical methods, optimizations (linear programming, dynamic programming, iterative method), approximations, Monte Carlo simulations. Parallel computing will also be introducing using clusters.
EEN/CEN 911 VLSI Design I – Circuit Design
Prerequisite: EEN910 or instructor approval.
The course will bring fundamental considerations involved in VLSI chip design. Various circuit designs will be introduced to understand design concepts, techniques and tradeoffs in practical implementations, Physical design aspect of and global issues in chip designs, and Design considerations of circuit performance, size and power consumption.
EEN/CEN 921 (958) FPGA Design
Prerequisite: EEN905 or instructor approval.
The course will introduce the principle of Field Programmable Gate Array, various FPGA architectures, design flow, application advantages vs. limitations. Practicing with course projects, students will develop solid understanding and hands-on experience in this exciting digital design area.
EEN/CEN 953 Machine Learning
Prerequisite: EEN908 or instructor approval.
The course will introduce Artificial intelligent theories, algorithms, and applications; Detection and analysis; Self-learning system; and Project of robot system design.
EEN/CEN 961 Fundamentals of Communication Systems
Prerequisite: EEN941 or instructor approval.
The course focuses on the analysis, principle, and application of the communication systems, both digital and analog. Students will learn Fourier techniques and their usages in communication systems, brief review of probability theories, concept of information theory, different modulation and demodulation techniques.
EEN/CEN 996 Independent Study
By arrangement with instructor. The course will be independent study of topics of special interest in electrical engineering under the direction of an instructor who is knowledgeable in the field. It will consist of readings, homeworks, tests, presentations and projects determined by the instructor.
EEN/CEN 998 Project
Prerequisite: Graduate standing.
By arrangement with project advisor. Student will conduct independent research of an approved topic in computer or electrical engineering, prepare a technical report, and defend it in front of a faculty advisor.
EEN 912 VLSI Design II – Memory Design
Prerequisite: EEN911 or instructor approval.
The course will be an advanced circuit design consideration and implementation. It will focus on various memory design concepts, techniques, and applications involved DRAM/SDRAM, SRAM/SSRAM, ROM, EPROM, FLASH, etc.
EEN 913 Microprocessor Design
Prerequisite: EEN910 and CEN922 or instructor approval.
The course will introduce various microprocessor architectures, characteristics, and applications, and deliver to students a specific microprocessor design to understand each functional block design and design considerations.
EEN 940 Introduction to Computer Vision
Prerequisite: EEN908 or instructor approval.
The course will focus advanced techniques in image processing. Challenges of data collection with various sensors and cameras, high-level algorithms and real-time implementation will be discussed. 2D and 3D objectives recognition and reconstruction will be covered with practice.
EEN 943 Advanced Digital Image Processing
Prerequisite: EEN942 or instructor approval.
This course will be designed to introduce techniques and implement algorithms for advanced digital image processing. It will cover segmentation, shape and texture, Morphology, recognition and classification. And compression techniques, real-time image and video coding will be covered. Matlab is used to implement and test various image processing algorithms.
EEN 960 Parallel Computing
Prerequisite: EEN908 or instructor approval.
The course will focus on parallel computing frameworks and techniques. It will cover cutting-edge techniques which including multiprocessing, multithreading, synchronization, cluster/MPI, cell computing, general purpose GPU (CUDA/STREAM), and stream computing. The course project will be issued for solving/benchmarking some computing intensive problems, such as Monte-Carlo simulations, partial differential equations, image processing, etc, using different parallel computing frameworks.
EEN 962 Design of Embedded Systems
Prerequisites: EEN905 or instructor approval.
The course will focus on design methodologies and foundations; Platform-based design and communication-based design and their relationship with design time, re-use, and performance; Models of computation and their use in design capture, manipulation, verification, and synthesis; Mapping into architecture and system platforms; Scheduling and real-time requirements; Performance estimation; Simulation techniques for highly programmable platforms; and Synthesis and successive refinement.
EEN 971 Introduction to Wireless Communication Systems
Prerequisite: EEN970 or instructor approval.
The course provides an overview of wireless communication systems in use today as well as some of the emerging systems. It presents wide range of wireless applications, from cell phones to wireless local area networks (WLAN) to satellite communications.It will examine the pros and cons of wireless communication and describe both infrared and radio technologies. Finally it will survey the representative 2G, 3G and 4G cellular systems as well as representative WiFi WLAN systems.
EEN 999 Thesis
Prerequisite: Graduate standing.
By arrangement with thesis advisor. A research will be expected toward the M.S. or PhD degree if thesis topic is approved. Students will conduct independent research in computer or electrical engineering, prepare a thesis, and defend it in front of a committee composed of a number of faculty designated by department chair.
MISY 915 Management Information Systems
Presequisite: None.
This course provides an introduction to management information systems and explains how computers are used and managed in organizations and how such technology assists management.Topics include the strategic role of information systems for managers, a survey of hardware, software, databases and networks, types of information systems, the design and acquisition of information systems, and ethical issues in information systems.
SEN 909 OO Programming with C++
Prerequisites: Knowledge of C.
This class teaches Objected Oriented Programming using C++. A prior exposure to C is helpful but not required as the basic concept of C programming will be reviewed. The topics covered include: Syntax of C++, classes and objects, encapsulation, inheritance, polymorphism, design for reuse, programming with objects, the standard template library, namespaces, exceptions, type casting and file input/output.
SEN 911 Web Graphic Design
Prerequisites: None.
The art and profession of selecting and arranging visual elements — such as typography, images, symbols, audio,video and colours — to convey a message to an audience. Sometimes graphic design is called “visual communications.” It is part of a collaborative discipline: writers produce words and photographers and illustrators create images that the web/Graphic designer incorporates into a complete visual message. – This course is an introduction to graphic design theory with a focus on web design. It explores techniques that top designers use for creating visually engaging web sites. Teaches the skills, knowledge, tools and the artistic guidelines needed for creating appealing, professional looking webpages. Distinction between vector and raster graphics; Adobe Illustrator (vector graphics), Adobe Photoshop (managing and editing raster graphics), Adobe Flash (animation), DreamWeaver (combining all through HTML).
SEN 930 QA/Software Testing Tools
SEN 932 Automation and Testing via Perl, Shell Scripts make
Prerequisites: None.
This course introduces the QA with test methodologies and procedures. During the course, the students go through the Manual Testing and Automation of Client/server and web based applications. The course will quickly build through each of these concepts and configuration so that by the final day of class, each student will have fully tested the application manually and convert manual test cases into automation scripts. In doing so, the students will focus on different aspects and become acquainted with additional functions.
SEN 941 Software Engineering I
Prerequisites: None.
This course covers basic software engineering elements. It focuses on techniques used throughout the software engineering process; the software lifecycle and modeling techniques for requirements specification and software design are emphasized. Both traditional and object oriented approaches are addressed. A group project gives students hands on experience developing a software requirements specification and a working prototype. This is a project-based class where students are expected to start from a narrative of the problem, and then specify output reports, analyze the problem using special data modeling techniques (entity-relationship, relational, object-oriented), design data structures, and then follow through with a prototype.
SEN 953 Compiler Design
Prerequisites: None.
This course is an introductory course on the design and implementation of compilers. It covers 4 main topics
1.The front end section includes scanning, parsing and context-sensitive analysis of the source program;
2. The infrastructure section provides the background knowledge needed to generate intermediate code in the front end, to optimize that code, and to transform it into code for a target machine;
3. The optimization section introduces optimizer, a compiler’s middle section;
4. The code generation section includes instruction selection, instruction scheduling and register allocation.
SEN 957 GUI Development with Java
Prerequisites: SEN 964.
Teaches the principles of Graphical User Interfaces (GUI) and develops GUIs using Java’s AWT and Swing libraries. Knowledge of and ability to use these libraries is of paramount importance in almost all of today’s software development and is not limited to development of Android Phone applications. The learning and programming of GUIs is most effective and rewarding using these Java libraries, considered by many as the best, simplest and most elegant of all GUI development tools and libraries. (Most Java GUI developers don’t use any visual development tools, since the design and concept of Java’s GUI libraries itself is so natural and easy to understand, that visual development tools become redundant). Teaches the basic principles of graphical user interfaces, the widget hierarchies, event handling mechanisms, event queue management, thread handling etc. It is in most ways a parallel course to Sen961 except for the language and component libraries used.
SEN 958 Android Phone Application Development
Prerequisites: SEN 964.
Teaches the use of SDKs released by Google to facilitate the development of applications for the Android Phone. Android Phones are Linux based and are programmed in Java. This alone bodes very well for any software development on that platform: The Linux OS, the most powerful and easiest to manage of all operating systems, and the Java programming language with its superior GUI development capabilities. Knowledge of SDKs is certainly an advantage when developing for the Android platform.
SEN 961 Cloud Computing
Prerequisites: None.
Introduction to cloud computing, cloud architecture and service models, the economics and benefits of cloud computing, horizontal/vertical scaling, thin client, multimedia content distribution, multiprocessor and virtualization, distributed storage, security and federation / presence/ identity/ privacy in cloud computing, disaster recovery, free cloud services and open source software, and example commercial cloud services.
SEN 963 Unix, Perl & Web Management
Prerequisites: None.
Learn how to use Unix commands and your ITU Linux account effectively. Understand Unix basic: files, pipes, jobs, redirection, globing. Basic Perl and JavaScript. Learn how to design, write, and maintain a small website. Learn how to write interactive web pages using either Perl CGI scripts or JavaScript. Learn how to run a web server on unix.
SEN 964 OO Programming with Java
Prerequisites: None.
This course focuses on the Java language as a tool for object-oriented programming. It introduces the student to the basic features of the Java language: primitive data types, terminal window-keyboard I/O, file I/O, classes, constructors and initialization, references vs. objects, access modifiers, memory maps, control structures, arrays, inheritance, function overloading and overriding, dynamic binding, interfaces, command line arguments, and exception handling. Some instruction to the platform-independent Java GUI API with Swing will be provided.
SEN 965 I-Phone Application Development I
Prerequisites: Knowledge of C.
This course provides a training in iPhone application development including: Introduction to Objective-C; iPhone technologies: multi-touch interface, accelerometer, GPS, maps, proximity sensor, dialer, address book and calendar. It helps students to understand the business aspects of an application development.
SEN 966 I-Phone Application Development II
Prerequisites: SEN 965 and SEN 970.
This course teaches in depth the features of Objective-C, the UI class library, its use in I-Phone application development, the architecture of I-Phone applications, event handling mechanisms, exceptions, threads; the use of Interface Builder, and the Quartz library in writing high quality, complex i-Phone applications.
SEN 970 OOP with Objective-C
Prerequisites: Knowledge of C.
This course focuses first on teaching the Objective C language, its syntax, design, features, and capabilities, then on introducing the Cocoa Library, then on developing GUI applications using Interface Builder. Objective C is the principal language for application development on Apple’s Mac OS X and iPhone. On the Mac OS it is used together with Cocoa (the NS class library) and on the iPhone together with the UI class library. The course teaches in detail the syntax and features of the language, supported by many programming examples, drill quizzes and homework. It will use the Cocoa API and the Interface Builder to develop example applications for the Mac with a graphical interface. It starts with development of OC programs on the command line. Later the X-code IDE together with the Cocoa library and IB will be used for development. No textbook is used for the lecture, instead the student is given lecture notes on this website, that explain the whole material.
SEN 982 Oracle Database Management/Administration
Prerequisites: None.
This course introduces Oracle as a practical example of a widely used database system, teaches basic database conepts, data definition and manipulation languages (SQL), general architecture of database management systems, transaction management, concurrency control, security, distribution, and query optimization.
SEN 985 Artificial Intelligence
Prerequisites: Knowledge of some programming language.
This course introduces the foundation of simulating or creating intelligence from a computational point of view. It covers the techniques of reduction, reasoning, problem solving, knowledge representation, and machine learning. In addition, it covers applications of decision trees, neural networks, support vector machines and other learning paradigms.
SEN 991 Computer Graphics I
Prerequisites: None.
Historical development of computer graphics, black and white graphics programming, color raster graphics, resolution and memory requirements, look-up tables, vector graphics and matrices, surfaces, rotation & scaling, graphics primitive, and transformation.
SEN 992 Computer Graphics II
Prerequisites: SEN 991.
The course gives students hands-on experience and thorough understanding of the most important computer graphics principles. It uses Java and its built-in graphics capabilities to give the student programming experience in 2D and 3D computer graphics, coordinate transformations, linear 2D and 3D transformations, projections, 3D geometry; color computations, RGB and CMYK color systems, simulation of curved surfaces through Gouraud and Phong shading, hidden surface removal through the Z-buffer technique; also, some animation principles. Introduction to the most important Computer Graphics hardware.
Total . . . . . . . . . . . . . . . 36