Curricula

EECS410 - Mobile Health (mHealth) Technology (Fall, AY2015-2020)

Syllabus

Course Summary: EECS410 is aligned well with the strength of CWRU medical and healthcare research and education from engineering perspectives. It directly fits into the curriculum of multiple majors, not just EECS. Students in this course explore cutting-edge innovations in 1) mobile computing and 2) healthcare/medical applications so that they are able to create novel devices and analytical algorithms that offer enhanced functionality and performance over conventional tools. The knowledge students gained from the class can be further extended to other focused education fields, such as IoT, Cybersecurity, and Data Privacy.

In this class, we will use Android smartphones as vehicles to explore human-centric sensing, wireless communication with microprocessor, and learning-based data analytics. We will have 5 labs (tutorial-guided projects), one special topic presentation: mHealth for COVID-19, one comprehensive final exam, and a final project report. Students will be requested to practice Latex style writing to create a qualified research report at the end of class.

Course Learning Objectives:
Advances in communications, computer, and medical technology have facilitated the practice of personalized health, which utilizes sensory computational communication systems to support improved and more personalized healthcare and healthy lifestyle choices. The current proliferation of broadband wireless services, along with more powerful and convenient handheld devices, is helping to introduce real-time monitoring and guidance for a wide array of patients. Indeed, a large research community and a nascent industry is beginning to connect medical care with technology developers, vendors of wireless and sensing hardware systems, network service providers, and data management communities. Students in the course and labs will explore cutting-edge technologies in 1) mobile computing technologies and 2) healthcare/medical applications, through lectures, lab assignments, exams, presentations, and final projects. The overall course objectives are to introduce electrical engineering, computer engineering, and computer science students the fundamentals of wearable sensors, mobile health informatics, big data analysis, Internet of Things (IoT), and human computer interaction considerations.

Planned topics:
1. Overview mHealth Technology and Applications 
2. Mobile Computing and Application Development using Android
3. Android User Interface and Multimodality Data Collection
4. GPS, Google Map, and Web Services
5. Mobile-Health: Using Mobile Computing for Remote Patient Monitoring
6. Machine Learning Algorithms for Data Analytics 7. Big Data Analysis Tool and Evaluation Metrics
8. Vision-based Technologies for Human Computer Interaction
9. Smartphone Communication
10. Bless and Curse: Limitations of the Mobile and IoT Environment 

Guest speakers photos over the years:

CWRU Technology Transfer Officers CWRU Kelvin Smith Librarian

EECS490 - Digital Image Processing (Summer, AY2020)

Summer 2020 Syllabus

Course Learning Objectives:

Digital images are introduced as two-dimensional sampled arrays of data. The course begins with image enhancement which contains materials on contrast manipulation, histogram modification, noise cleaning and color image enhancement. Basic filters such as the gradient and Laplacian in the spatial domain are used to enhance images. It is shown how filtering techniques can be used to remove noise and other image degradation. Then Image analysis, concentrates on the extraction of information from an image. Specific topics include morphological image processing, edge detection, image feature extraction, image segmentation, object shape analysis and object detection. One or more advanced topics such as GPU acceleration and parallel computing using CUDA will be covered as time permits. To equip students with fundamental knowledge of theory, algorithms and applications of modern digital image processing techniques and the programming skills for their implementation, programming assignments using software such as MATLAB/C will illustrate the application and implementation of digital image processing.

Planned topics:
1. Image Enhancement and Noise Removal
2. Edge Detection
3. Geometrical Modification
4. Morphological Processing
5. Digital Halftoning and Inverse Halftoning
6. Texture Analysis
7. Image Segmentation and Classification
8. Shape Analysis and Document Processing
9. Image Compression and Coding
10. Selected Advanced Topics (GPU Acceleration, CUDA Programming)


EECS600 - GPU Architecture for Scientific Computing (Spring, AY2019-2020)

Spring 2020 Syllabus.pdf

Course Learning Objectives:

The emergence of multi-thread GPUs and the combination of them with multi-core CPUs have made huge computing possible by laptops and facilitated peta-scale computing in clusters with great accuracy, controllability and observability. Algorithms can be implemented 100x faster by GPUs in comparison to CPUs. The motivation of tapping the highest potential of using GPUs has led the generation and development of special C based language programming for GPUs. This course aims to cover the fundamentals of principal components of graphics processing units (GPU) architecture. Then, the course focuses on commodity language (CUDA) programming. CUDA is a parallel computing platform and programming model produced by NVIDIA that provides required libraries for GPU computations while the programming on that can be implemented in popular languages such as C, C++, Fortran etc. and be extended to the suitable format. In addition to that, the course introduces and discusses high performance computing on GPUs, parallel nature and programming, performance optimization, graphics pipeline, microarchitectures and network topologies. Finally, the special usages of GPU in machine learning will be analysed.

Planned topics:
1. Overview Graphics Processing Units and Applications
2. Data Parallel Computing
3. CUDA C Programming
4. Scalable Parallel Execution
5. Hardware Multithreading
6. Memory and Data Locality
7. Performance Consideration
8. Atomic Operation and Privatization
9. CUDA Dynamic Parallelism
10.Deep Learning and cuDNN


EECS314 - Computer Architecture (Spring, AY 2018-2020)

Spring 2019 Syllabus.pdf

Course Learning Objectives:
Today processors are used in all forms of electronic equipment and hence the course is relevant for computer engineers as well as software developer designing cross-platform embedded systems and IoT services where they are often important to make efficient use of the resources of the processor in order to optimize performance, cost, and energy consumption. This course provides students the opportunity to study and evaluate a modern computer architecture design. The course covers topics in fundamentals of computer design, performance, cost, instruction set design, processor implementation, control unit, pipelining, memory hierarchy, and computer arithmetic.

• Principles of computer architecture: CPU, data path, and control unit design

• Assembly language programming • Pipelining • Memory hierarchies and design

• Possible advanced topics

During weekly lectures, students are expected to learn the organizational structure that determines the capabilities and performance of computer systems, to understand the interactions between the computer’s architecture and its software, and to understand cost performance trade-offs. A student who has met the objectives of the course will be able to describe the internal structure of a processor, including pipeline, cache memory, memory hierarchy, virtual memory and explain how hardware (technology and architecture) and software (instruction set, compiler and operating system) forms a whole, and that the interface between the two is a key element in all systems.