Courses Taught at Illinois Tech (since Fall 2018)
ECE 242 - Digital Computers and Computing
Basic concepts in computer architecture, organization, and programming, including: integer and floating point number representations, memory organization, computer processor operation (the fetch/execute cycle), and computer instruction sets. Programming in machine language and assembly language with an emphasis on practical problems. Brief survey of different computer architectures.
ECE 408 - Introduction to Computer Networks
Emphasis on the physical, data link and medium access layers of the OSI architecture. Different general techniques for networking tasks, such as error control, flow control, multiplexing, switching, routing, signaling, congestion control, traffic control, scheduling will be covered.
ECE 442/510 - Internet of Things and Cyber Physical Systems (newly introduced & co-developed)
To introduce students to the fundamentals of Internet of Things (IoT) and embedded computing. This course covers IoT applications, Wireless protocols, Wearable sensors, Home environment sensors, Behavior detection sensors, Data fusion, processing and analysis, Data communications, Architectural design issues of IoT layers, Security and privacy issues in IoT.
ECE 448/528 - Application Software Design
The course provides introduction to languages and environments for application software development utilizing Software as a Service (SaaS) for electrical and computer engineers. Languages addressed include Java, Python, SQL, and JavaScript. Key topics covered include systems development life cycle, client-server architectures, database integration, RESTful service, and data visualization. Programming projects will include the development of a data-rich web application with server back-end that connects mobile devices and Internet of Things using Agile software engineering practices.
ECE 449/590 - Object Oriented Programming and Machine Learning
This course gives students a clear understanding of the fundamental concepts of object-oriented design/programming (OOD/OOP). Languages addressed include C++ and Python. Key topics covered include introduction to machine and deep learning, software development life cycle, core language and standard library of C++ and Python, class design and design patterns, OpenMP and CUDA platforms. Students will design a complex learning application using these concepts and Agile software engineering practices.
ECE 485/585 - Computer Organization and Design
This course provides the students with understanding of the fundamental concepts of computer architecture, organization, and design. It focuses on relationship between hardware and software and its influence on the instruction set and the underlying Central Processing Unit (CPU). The structural design of the CPU in terms of datapath and control unit is introduced. The technique of pipelining and hazard management are studied. Advanced topics include instruction level parallelism, memory hierarchy and cache operations, virtual memory, parallel processing, multiprocessors and hardware security. The end to end design of a typical computer system in terms of the major entities including CPU, cache, memory, disk, I/O, and bus with respect to cost/performance trade-offs is also covered. Differentiation between ECE 485 and ECE 585 is provided via use of projects / case studies at differing levels.Â