Embedded Systems (CE421)
This is an introductory level course on embedded systems where students will learn the basics of designing, interfacing, configuring, and programming embedded systems. The course contents includes embedded system architecture, hardware-software interfaces, memory architecture, software design, and enabling components in embedded systems such as clocks, general purpose I/Os, interrupts, busses, analog to digital and digital to analog converters. The lectures in the course will be complemented by laboratory sessions where students will learn to develop simple embedded computing system applications using LPC1769 microcontroller board. This will include programming the board in C and assembly languages, interfacing variety of sensors, input devices, and to edit/debug via an integrated development environment.
Ethical, Legal and Professional Issues for Engineers (GE480)
This course covers topics which include responsibility in engineering; framing the moral problem; organizing principles of ethical theories; computers; individual morality, and social policy; honesty, integrity, and reliability, safety, risk, and liability in engineering; engineers as employees; engineers and the environment; international engineering professionalism; and future challenges.
Software Engineering (CS391)
This course covers topics which include the fundamentals of software engineering, including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools. The course will combine a strong technical focus with a project providing the opportunity to practice engineering knowledge, skills, and apply best practices in a realistic development setting with a real client.
Computer Architecture (CE222)
This course will describe the basics of modern processor operation. Topics include computer system performance, instruction set architectures, pipelining, branch prediction, memory-hierarchy design, and a brief introduction to multiprocessor architecture issues. The course includes lab sessions using microprocessor simulators in order to reinforce theoretical concepts.
Data Structures and Objects (CS203)
This course introduces students to the study of data, its representation and processing by computersystems. The course enables learners to use data structures to design algorithmically efficient computerprograms. Topics covered in this course includes list ADT, array-based lists, linked lists, stacks, queueADT, binary trees, binary search trees, AVL trees, graphs, and their applications. The course alsointroduces the concept of algorithm analysis to evaluate the efficiency attained in algorithms used tomanipulate data structures. Function templates, class templates, and Standard Template Library (STL) inC++ are also introduced. This course is accompanied with hands-on lab sessions.
Introduction to Computer Communication Networks (CE463)
Design and implementation of computer communication networks including several projects. The focus is on the concepts and the fundamental design principles that have contributed to the success of global Internet. Topics: digital transmission, switching and multiplexing, protocols, LAN, congestion/flow/error control, routing, addressing, performance evaluation, internetworking (Internet) including TCP/IP, HTTP, FTP, SMTP, DNS.
Object-Oriented Programming using C++ and Java (CE462)
C++ and Java programming languages, including classes, inheritance, encapsulation, polymorphism, class derivation, abstract classes, interfaces, static class members, object construction and destruction, namespaces, exception handling, function, overloading and overriding, function name overload resolution, container classes, and template classes.
ASIC Design Laboratory (CE337)
Introduction to standard cell design of VLSI (Very Large Scale Integration) digital circuits using the VHDL hardware description language (Very High Speed Integrated Circuits Hardware Description Language). Emphasis on how to write VHDL that will map readily to hardware. Laboratory experiments using commercial grade computer-aided design (CAD) tools for VHDL based design, schematic based logic entry, logic and VHDL simulation, automatic placement and routing, timing analysis, and testing.
Introduction to Digital System Design (CE270)
An introduction to digital system design and hardware engineering, with an emphasis on practical design techniques and circuit implementation.
Advanced Systems Analysis and Design (CNIT380)
This course is an advanced study of system analysis and design methods and techniques used by systems analysts to develop information systems. Object-oriented tools and the Unified Modeling Language (UML) will be used for describing object structure and behavior, and use cases will be used for modeling functional processes. Topics include rapid development concepts, application architecture and system design, transition from object-oriented analysis and models to components and services, graphical user interface design, web interface design, prototyping, and commercial software package integration. Emphasis is also placed on the use of an object-oriented CASE tool. This course surveys other important skills for the systems analyst, such as fact-finding (requirements discovery), communications, project management, and cost-benefit analysis.
Systems Analysis and Design Methods (CNIT280)
Comprehensive introduction to information systems development. Topics include the systems analyst, the systems development life cycle, methodologies, development technology, systems planning, project management, systems analysis, systems design, systems implementation, and systems support. Introduction to tools and techniques for systems development.
Database Fundamentals (CNIT272)
A study of relational database concepts. These concepts include data design, modeling, and normalization; the use of Structured Query Language (SQL) to define, manipulate, and test the database; programmatic access to a database and practical issues that database developers must handle.
Introduction to Systems Development (CNIT180)
This course introduces information systems development. Topics include types of information systems, system development, database management systems, and problem solving. Students will read/create UML, ERD, and data flow diagrams to model information system objects, data, processes, and logic. Labs emphasize modeling and SQL/QBE querying to prepare students for later systems, programming, and database classes. Given user requirements students will design, construct, and test a personal computer information system.
Computer Programming for Engineering (ENG300/CS159)
This course is an introduction to computer programming using the "C" language. The emphasis is on structured programming principles, and understanding the basic concepts that apply to engineering problems. Among topics covered in this course are: problem solving using top down design, using flowcharts to explain the program logic, selection structure, repetition structure, bitwise operations, arrays, pointers, strings, passing arguments, and sequential files.
Transforming Ideas to Innovations II (ENGR132)
Continues building on the foundation developed in ENGR 131. Students take a more in depth and holistic approach to integrating multiple disciplines perspectives while constructing innovative engineering solutions to open-ended problems. Extending skills in project management engineering fundamentals, oral and graphical communication, logical thinking, team work, and modern engineering tools (e.g., Excel and MATLAB).
Professional Practice in Information Technology and Engineering (ELG2911)
History of the engineering profession. Principles of professionalism in engineering practice. Ethical and legal obligations of the engineer towards society and the environment. Communication and administrative skills required in engineering practice. Health and security at work. / History of the profession of engineering. Principles of professional engineering practice. Ethical, societal, environmental and legal obligations of the professional engineer. Communication and management skills required by the practicing engineer. Workplace health and safety.
Computer Architecture I (CEG2136)
Design a digital computer to execute a given instruction set. Design of digital computers. Register transfer and microoperations. Designing the instruction set, CPU and CPU control. Basic machine language programming. Using pipelines for CPU design. Designing the memory unit. Designing INput-Output subsystem.
Fundamentals of Engineering Computation (GNG1106)
Introduction to computer systems. Problem solving for engineering case studies. Emphasis is on the design of algorithms and their implementation for solving engineering problems using C. Introduction to Visual Basic.
Digital System I (ITI1100)
Digital computers and information. Number systems and alphanumeric codes. Binary arithmetic. Boolean algebra. Logic functions representation, minimization and realization. Analysis, design and implementation of combinational circuits. Basic sequential circuits. Latches and flip-flops. Analysis and design of simple sequential circuits. Registers and counters. Implementation of digital circuits.