Skip to main content

Courses | VD Academic Affairs

CPE
301

Course Number:
0612301
Topics include data and procedural abstraction, software design principles and use of O-O design to develop solutions to simple problems. Object-oriented design techniques (encapsulation and information-hiding, separation of behavior and implementation, classes and subclasses, inheritance, polymorphism, class hierarchies). Iterators as abstraction mechanisms. Linked structures. Event-driven programming. API programming.
(3-0-3)
Prerequisites:
0612207

CPE
325

Course Number:
0612325
Psychological principles of human-computer interaction, Building a simple graphical user interface (principles of GUIs, GUI toolkits), Human-centered software evaluation and development, Graphical user-interface design and programming (HCI aspects of common widgets, interaction techniques, screen design, GUI builders and GUI programming environments), integrate ethical perspectives in HCI solutions, Intelligent systems (artificial intelligence concepts), HCI aspects of multimedia systems (categorization and architectures of information, HCI design of multimedia information systems, speech recognition and natural language processing).
(3-0-3)
Prerequisites:
0612201

CPE
333

Course Number:
0612333
Topics include: history and overview of intelligent systems. Overview of technologies. Fundamental issues in intelligent systems. Intelligent system design methodologies. Search and constraint satisfaction. Knowledge representation and reasoning, and agents.
(3-0-3)
Prerequisites:
0612300

CPE
341

Course Number:
0612341
Principles of database systems: History and motivation, DBMS functions, database architectures, use of a database query language. Data modeling: conceptual models, object-oriented model, and relational data model. Relational databases: conceptual schema and relational schema, and integrity constraint. Relational algebra and relational calculus. Functional dependencies and normal forms. Database query languages. Relational database design. The course stresses basic concepts and presents many examples from existing database systems. A database design and implementation project of a real world application is required, using modern database management tools.
(3-0-3)
Prerequisites:
0612207
Corequisites:
0612342

CPE
342

Course Number:
0612342
This lab introduces uses a DBMS product to design and implement tables and perform queries. Focusing on normalization, data integrity, data modeling, and creation of simple tables, queries, reports, and forms. Once completed, students should be able to design and implement database structures by creating database tables, queries, reports, and forms.
(0-3-1)
Corequisites:
0612341

CPE
356

Course Number:
0612356
This is an introductory course in computer networks. It gives an overview of current computer networks and its history. It introduces the OSI and TCP/IP network architecture models and protocols. It then studies the implementation principles and design issues at each layer of these models. Lecture topics include: the structure and components of computer networks, application layer protocols, packet switching, layered architectures, TCP/IP, physical layer, error control, local area networks (wire and wired), network layer, congestion control, and multiple access. Laboratory work focuses on experimenting with packet tracing tools and the implementation of protocols covered in lectures, e.g., stop-and-wait protocol, socket programming, Dijkstra routing algorithm and others.
(3-0-3)
Prerequisites:
0600104,0600304,0612207
Corequisites:
0612357

CPE
357

Course Number:
0612357
This laboratory course provides students with hands-on training and experience regarding the design, implementation, and packet inspection of computer networks. Students experiment with network simulation and packet tracing tools. Topics covered in experiments include: network addressing, address resolution protocol (ARP), Dynamic Host Configuration Protocol (DHCP), troubleshooting tools (e.g., ipconfig, traceroute, ping), basic networks simulation, server configuration at application layer, basic switch set-up and configuration, trunking in virtual local area networks (LAN), router setup and configuration in LAN and wide area networks (WAN), static and dynamic routing.
(0-3-1)
Corequisites:
0612356

CPE
363

Course Number:
0612363
Embedded system building blocks. Embedded microcontroller's architecture. Embedded programs: instruction set, interrupts, timers and programming in assembly language. Memory technologies. Basic I/O devices (such as keypad and LCD). Embedded microcontroller interfacing to memory and I/O devices.
(3-0-3)
Prerequisites:
0612262,0612264,Corequisites: 0612364
Corequisites:
0612364

CPE
364

Course Number:
0612364
This lab component provides sufficient detailed knowledge and hands-on experience of a microcontroller so that students can breadboard and program a microcontroller and demonstrate its function in a real-time application. It is accomplished by a sequence of assigned labs, followed by a final project of the student\'s choice, emphasizing creativity and uniqueness.
(0-3-1)
Corequisites:
0612363

CPE
368

Course Number:
0612368
Digital systems design principles and techniques including modeling and simulation with HDLs. Performance metrics and Amdahl\'s Law. CPU organization of computers. Instructing set architecture. Register transfer logic. Computer arithmetic: fast adders, multipliers, dividers and floating-point arithmetic. Processor data path and control unit design. Introduction to pipelining and caches. An emphasis on hardware design methods, combined with increased discussion of performance and relevant software issues.
(3-0-3)
Prerequisites:
0612363,0612364

CPE
371

Course Number:
0612371
The course introduces the basic concepts of software engineering, methodologies, and process models. The course covers the followings: Software life cycle, models and methods for software specification, analysis and design, object oriented analysis and design using UML, patterns, frameworks and APIs, architectural design, distributed system architectures. The course also introduces the use of state-of-the-art tools for computer-aided software engineering. The course increase students' knowledge of classic and modern software engineering techniques, and develop concrete experience in turning ill-formed concepts into products working with a team.
(3-2-3)
Prerequisites:
0600209,0600310
Corequisites:
0612341

CPE
399

Course Number:
0612399
Students should attend a training program at one of the approved companies/institutions engaged in computer engineering practices. The objective is to gain practical experience in real engineering problems. The student should submit a formal report at the end of the training period. A minimum of 180 hours of supervised training is required.
(3-0-3)
Prerequisites:
90 Credits

CPE
402

Course Number:
0612402
This course will cover advanced concepts and techniques in distributed systems with applications to cloud computing and big data analytics. The underlying principle of Net-Centric Computing (NCC) is a distributed environment where applications and data are downloaded from servers and exchanged with peers across a network on as-needed basis. In many ways, NCC is the enabling technology for a significant percentage of modern enterprise applications. Course material will focus mainly on scalable performance and fault tolerance. The course will combine concepts from distributed computing, cloud computing, database systems, programming languages, and theory by exploring both the foundations and practical applications of distributed storage, cluster computing frameworks, and distributed transaction processing.
(3-0-3)
Prerequisites:
0612356

CPE
404

Course Number:
0612404
This course is a senior elective that introduces students to compiler construction and issues related to software compilation. Topics includes Lexical analysis, Syntax analysis: LL parsing and LR parsing, Semantic analysis: Type checking and attributed grammars, Memory management, Error handling, Code generation, Code optimization, and Bootstrapping. Students will be exposed to real compiler implementations. Students become familiar with make, lex, and yacc as a part of the course and are required to implement one compiler project in their favorite computer programming language.
(3-0-3)
Prerequisites:
0612207,0612363

CPE
410

Course Number:
0612410
To introduce the student of computer science to, and to provide some depth in theoretical models for computation. This course provides unified coverage of the hierarchies of formal languages and non-deterministic automata, emphasizing the correspondence between them. The theory of computability and decidability is introduced. Topics covered include: Role of formal languages and automata in the study of computability and complexity. Finite state automata and regular expressions. Pushdown automata and context-free grammars. Turing machines and computable functions.
(3-0-3)
Prerequisites:
0612300