Special topics courses for graduate and undergraduate students are offered regularly, though offerings and course content may vary each semester. Our department uses CMPE/CMSC/ENEE 691 to designate special topics courses for graduate students and CMPE/CMSC 491 and 291 to designate special topics courses for undergraduate students. Courses are commonly cross-listed for undergraduates and graduates and offered as a combined section, though expectations for students are different for enrollment in CMPE/CMSC 491 versus CMPE/CMSC/ENEE 691. Course may be cross-listed with multiple departments or programs.

Undergraduate students seeking to enroll in a graduate courses require permission from the instructor unless already enrolled in a BS/MS program. Undergraduate students seeking to use a graduate courses towards their undergraduate degree, to fulfill or replace a program requirement, should submit a request to the appropriate undergraduate program director if not already enrolled in the BS/MS program.

The information provided below is for reference only and does not necessarily represent the official course description or requirements. For more information on the content, scope, or expected workload for any of these courses, please contact the instructor. Reference the UMBC course catalog for the current status of offerings.

Spring 2021

Lasers for Electrical and Graduate and Undergraduate Computer Engineers

CMPE 491 (cross listed with 683)
Instructor: Professor Gary M. Carter
Days & Time (Web Based): TuTh 4:00-5:15PM
Prerequiste: ideally CMPE 330 OR Equivalent

Description: This is a course about lasers and their applications based on a semi-classical approach. it is designed for undergraduate and graduate engineering majors. The use of lasers in medicine, communications, sensing, and lidar has revolutionized modern technology. The interface between lasers and modern electronics has enabled many of these applications.


  • optical properties of atoms, molecules, and semiconductors
  • stimulated and spontaneous radiation from materials from basic thermodynamic arguments. Einstein a and b coefficients.
  • basic rate equation model for lasers.
  • optical amplifiers and noise
  • resonators
  • laser oscillators
  • basic laser types
  • semiconductor lasers with a discussion of their importance in technology.
  • basic applications and interfaces with modern technology.

Grading: This course will be graded on a series of homework assignments and a project.

For more information please email

Advanced Algorithms

CMPE491/CMPE 691

Instructor: Dr. Phatak

See course page https://www.csee.umbc.edu/~phatak/691a/syl.html

For more information please email

Special Topics in Signal Processing: Matrix and Tensor Decompositions with Application to Data Fusion and Analysis

ENEE 718

image reference: Shaw, Gary A., and Hsiaohua K. Burke. “Spectral imaging for remote sensing.” Lincoln laboratory journal 14.1 (2003): 3-28.

Instructor: Tulay Adali

Class time and location: TuTh 4:00–5:15pm, WebEx

In many fields today, multiple sets of data are readily available. These might either be multimodal data where information about a given phenomenon is obtained through different types of acquisition techniques resulting in datasets with complementary information but essentially of different types, or multiset data where the datasets are all of the same type but acquired from different subjects, at different time points, or under different conditions. Joint analysis of such data—its fusion—promises a more comprehensive and informative view of the task at hand, and, is at the heart of numerous problems across disciplines including neuroscience, remote sensing, video analysis, atmospheric and physical sciences to name a few. Since most often, very little prior information is available about the relationship among the datasets, data-driven methods have proven especially useful for data fusion.

This course will introduce basic matrix and tensor decompositions as well as main models introduced for fusion and analysis of multiple datasets. We will emphasize methods that are statistically motivated as well as those that are algebraic. The connections between the two approaches, their applications in multiple domains, and model choice for a given application will be emphasized. 


  • Introduction: Data-driven vs model-driven signal processing, examples
  • Preliminaries: Uniqueness, identifiability, interpretability, multiset and multimodal data and their fusion,
  • Cost function choice and optimization: Iterative techniques (stochastic gradient and second-order approaches), constrained optimization
  • Generalization in data science/machine learning & model order selection
  • Matrix and tensor decompositions
    • Approaches based on factorizations (algebraic approaches):
      • PCA, SVD, Generalized SVD, and other multiset generalizations
      • Dictionary learning
      • Nonnegative matrix factorization
      • Tensor factorizations
    • Approaches based on source separation (stochastic methods):
      • Independent component analysis (ICA)
      • Independent vector analysis (IVA)
      • Independent subspace analysis (ISA) and other extensions
  • Models for fusion and joint analysis of multiple datasets
  • Comparison of statistical and algebraic methods and their connections
  • Applications in data fusion and analysis

CYBER691: Malware and Machine Learning

Instructor: Richard Zak

Advanced Malware Analysis introduces students to the world of malware analysis, but from a data science perspective. Instead of looking at specific malware samples, we will look at collections of malware and goodware to see where we may find differences. We will look at how to extract useful features from collections of goodware and malware, and how to leverage machine learning algorithms to create models to differentiate between the two. Since this is a unique problem domain, traditional approaches which are useful for natural language processing or image analysis don’t translate well to the malware problem. Students will learn about new ways of thinking about binary sequences, and how this joint perspective of cyber security and data science may work together to improve the skillsets of practitioners in both fields. Topics covered: Executable file formats, assembly, disassemblers, machine learning algorithms, malware analysis. Requirements: Cybersecurity students: CYBER 620 Data Science students: DATA601 and DATA602. All students: Must have a laptop with 8 GB RAM (16GB or more preferred) and able to run virtual machines; must be proficient with Python; must have a basic understanding of computer security to prevent accidental execution of live malware samples. Students outside of the CYBR program, both graduate and undergraduate, wishing to take this course must request permission via this Google form: cyberia.umbc.edu


Introduction to Brain Computer Interfaces

CMSC 491/ CMPE 491/CMSC 691/ CMPE 691/ ENEE 691

Instructor: Dr. Ramana Vinjamuri

With a Brain Computer Interface (BCI), an individual with paralysis performed a symbolic kickoff of World Cup in Brazil in 2014. BCIs have not only become popular technologies but have become the hope of many individuals for restoring their lost function. Any BCI has three intrinsic design components— (1) brain signal acquisition, (2) decoding the intent and (3) application to control a robot or a computer cursor or in general a computer to achieve a functionality. In the last 2 decades, several developments in the field of BCIs have emerged. To understand these advances and to address the challenges of the future generation BCIs, this course discusses the fundamentals, the design principles in the design components. Building on these basics, this course further presents recent advances in this emerging field.

This course will introduce students to the latest advances and methods used in BCIs. The key objectives include understand the framework of BCIs, understand and simulate the applications of BCIs. It consists of topics such as robotics and exoskeletons, motion tracking, neural pattern recognition, linear and nonlinear machine learning models and algorithms, applications in motor and cognitive areas, significance of biofeedback, virtual reality, challenges, and opportunities in BCIs, and etc. The course provides several hands-on exercises and examples for students to gain working knowledge in the field of BCI.

This course aims for understanding the emerging field of Brain Machine Interfaces (BMI). After the completion of this course the students will have working knowledge of what BMIs are, how they are designed, implemented, and tested. The core modules of BMI are data acquisition, decoding and application. Each of these modules will be expanded in detail. A common midterm project will be assigned to all the students. Then the students are expected to select a specialized topic, do a final project, and write a project report towards the final week.

Introduction to Photonics

CMPE491: Cross-listed with ENEE 684

Instructor: Professor Anthony M. Johnson

Class time and location: TuTh 5:30-6:45PM, WebEx

Wireless Sensor Networks

CMPE 491 (Cross-listed with CMSC 684 CMPE 684)
Instructor: Mohamed Younis

Parallel and Distributed Processing

CMSC 691
Instructor: Tyler Simon

Malware Analysis

CMSC 691/491
Instructor: Charles Nicholas

Computer Vision

CMSC 691/491
Instructor: David Chapman

Social and Crowd Computing

CMSC 691/491
Instructor: Sanorita Dey

Mobile Computing

CMSC 491 (Cross-listed with CMSC 628 Intro Mobile Computing)
Instructor: Nilanjan Banerjee
Note: You must have completed CMSC341 or CMSC341H with the grade of C or better.

Hardware Security

CMPE 691/ENEE691/CMPE 491

Instructor: Naghmeh Karimi
Days & Time (Web Based): TuTh 1:00-2:15PM

• CMPE 640 – Custom VLSI design (for CMPE/ENEE 691)

• CMPE 315: Principles of VLSI design (for CMPE 491)

Description: This course deals with recent technology developments for design and evaluation of secure and trustworthy hardware. In addition, this course discusses the state-of-the art schemes needed to protect circuit designers/manufacturers against cloning their Intellectual property (IP). Detection and prevention of malicious design modifications, so-called Trojan, is another goal of this course. Side-channel attacks and fault-attacks and their related countermeasures will be also discussed in this course.


  • Introduction to Hardware Security & Trust
  • Introduction to Cryptography
  • Basics of VLSI Design and Test
  • Hardware Trojans: IC/IP Trust
  • Physical Unclonable Functions (PUF)
  • Hardware Metering
  • Physical Attacks and Tamper resistance
  • Fault Injection Attacks and Countermeasures
  • Power Analysis Attacks and Countermeasures
  • Design for Hardware Trust
  • Counterfeit Detection and Avoidance
  • IP Protection through Watermarking schemes

For more information please email 

Fall 2020


CMPE 691
Instructor: Riadul Islam

This course covers digital IC design with an emphasis on high-speed and low-power applications. Advanced topics in signaling techniques and circuits, including on-chip interconnect, clocking, and cache memory design. It will cover applications of machine learning (ML) in computer engineering and various phases of the IC synthesis flow. Theoretical fundamentals of phase-locked loops (PLL) and implementation challenges. Network-on-chip (NoC) architecture and research opportunities. It has a project design component.


CMPE 491/CMPE 691 (Crosslisted with ENEE624)
Instructor: E F Charles LaBerge

(ENEE624 Desc) Fundamentals of error-correction coding theory: linear block and trellis codes, decoder structures, random and burst error detection and correction techniques, encoding/decoding performance and bounds, concatenated codes and interleaving structures, turbo and LDPC codes and iterative decoding concepts.


CMSC 491/CMPE 691
Instructor: Chenchen Liu

As computers become more powerful, neural networks are taking over from simpler machine learning methods and emerging at the heart of new generation of applications, such as speech recognition and object recognition in images. The course will explain the new learning procedures that are responsible for these advances, including effective new procedures for learning multiple layers of non-linear features, and give students the skills and understanding required to apply these procedures in many other domains. One big challenge in the machine learning is the involved data- and resource-intensive computation. Neuromorphic Computing was originally referred to as the hardware that mimics neuro-biological architectures and was then extended to the computing systems
that can run bio-inspired computing models such as neural networks and deep learning networks efficiently. Beyond machine learning algorithm, this course will also explain the advanced computing systems, esp. the neuromorphic computing. This course will give the student the vision of the novel technology and understanding how research is conducted.


CMSC 691 / CMSC 491
Instructor: Thomas Olano

This course is an introduction to some of the computer graphics methods commonly used in 3D computer games, including topics in rendering and animation, for both real-time and offline preprocessing. In addition, the course will focus on the use of a large game engine and how to navigate and make changes to a huge pre-existing codebase. Students will learn several common algorithms in each topic area with sufficient depth for implementation.

We will be using the Unreal Engine as a basis for the class, so you will also learn details of how a large game engine is constructed, and how to find your way around a large pre-existing program.

Note that (as the course title says), this is a course about computer graphics, specifically 3D graphics, as used by many games. It is not a class about playing games, nor about all of the other equally important aspects of creating a game (AI, art, game play, interface design, …).


CMSC 691 / CMSC 491
Instructor: Deepinder Sidhu


CMSC 691 / CMSC 491
Instructor: James Oates


CMSC 691 / CMSC 491

Instructor: Alan Sherman


CMSC 691 / CMSC 491
Instructor: Ting Zhu


CMSC 691 / CMSC 491
Instructor: Charles Nicholas

Spring 2020


ENEE 691/CMPE 491
Instructor: Professor Gary Carter

This is a beginning graduate/advanced undergraduate course for computer and electrical engineers. This goal of this course is to explain the fundamentals of quantum mechanics and its relevance to engineering. Topics to be covered include band structure, transistors (and limitations on the size of their features), resonant tunneling, important statistics for identical particles (e.g. electrons and photons), stimulated emission and semiconductor lasers, superconductivity, and a brief introduction to quantum information.

This course requires a basics knowledge of wave behavior (CMPE 330 or equivalent) and basic physics (PHYS 121 and 122 or equivalent). A knowledge of linear algebra and an introduction to Fourier transforms would be useful.

This course will use MatLab to allow the student to gain insight to problems that aren’t easily tractable by simple analytic techniques. MatLab can be easily accessed by the student through UMBC’s virtual PC environment.

The grading will be project based. The projects are essentially solving quantum mechanical problems and exercises.

For Further Information Contact: Professor Gary Carter

CMPE/ENEE 491/691 Special Topics Convex Optimization

Instructor: Seung-Jun Kim (Asst. Prof., CSEE; E-mail: )

  • This is an introductory course on convex optimization—-a subclass of numerical optimization that often admits efficient and reliable solutions
  • The students will be able to recognize and formulate convex optimization problems for applications in various domains, and solve them using appropriate packages or derive suitable algorithms
  • Applications in engineering (electrical, computer, mechanical) and computer science (machine learning, AI, networks, data science), as well as mathematics, statistics, and economics
  • Hands-on experience by working on computer projects
  • TextBook: S. Boyd and L. Vandenberghe, Convex Optimization, Cambridge University Press. (An online version is available for free at https://web.stanford.edu/~boyd/cvxbook/ )


  • Calculus and matrix algebra.
  • Working knowledge on scientific programming languages such as Matlab or Python.
  • Exposure to numerical optimization & applications is helpful but not required

For more information, visit Dr. Kim’s homepage @ www.csee.umbc.edu/~sjkim (Simply google: Kim UMBC)
Or: E-mail to

Machine Learning Hardware Implementation and Applications

Instructor: Tinoosh Mohsenin

CMPE 691 Advanced Arithmetic Algorithms

Instructor: Dhananjay S. Phatak


Fall 2019

CMSC 291: Topic: Continued Computer Science for Non-Majors
Instructor: Susan Mitchell
A continuation of problem solving and programming in the Python language. Emphasis is placed on the solution to more complex programming problems, expanding on the topics of modularity, abstraction, program design, testing, and debugging. Additional syntax, data types, and the use of pre-defined Python libraries are presented.
This course does not satisfy any requirement for computer science or computer engineering majors and may not be substituted for CMSC 202, Computer Science II.
Prerequisites: You must have completed either CMSC 201 or CMSC 201H and (MATH150 or MATH 151 or MATH 151H or MATH 152 or MATH 152H) with a C or better or scored a 5 on the LRC MATH placement exam or have concurrent enrollment in MATH 151/151H or have completed MATH 155 with a C or better.

ENEE/CMPE 691/CMPE 491: Topic: Cognitive Radio Networks

3-panel cartoon illustration, panel 1: multiple walking lanes with one over crowed: panel 2: people able to freely use all lanes, panel 3: various wireless devices connected via cognitive radio

image reference: http://citeseerx.ist.psu.edu/viewdoc/download?doi=

Cognitive radios (CRs) are intelligent radios that can sense, learn, and adapt to the wireless environment in which they operate. CR technologies allow dynamic re-use of precious RF spectrum by monitoring the RF landscape in real time and opportunistically exploiting under-utilized spectral resources (a.k.a. “white space” or “spectrum holes”). Thus, CRs can make the maximum use of the spectral resources in time, space, and frequency domains without causing harmful interference to incumbent transceivers. There have been exciting research and development recently on CR network technologies, with diverse applications to municipal, institutional, military, public safety, and industrial wireless networks.
This Special Topics course aims at providing an up-to-date overview of the CR technologies, with emphasis on the signal processing, machine learning, and optimization techniques enabling the design and operation of CR networks. Important issues in spectrum sensing, dynamic resource allocation, and cross-layer interactions will be delineated. Many of the ideas and signal processing tools discussed will be broadly applicable to other areas as well, including Big Data analytics, wireless sensor networks, and
monitoring/optimization of cyber-physical smart systems. Students will seek deeper understanding and new ideas through reading assignments, class presentations and hands-on research projects.
Instructor: Seung-Jun Kim (Assistant Professor, Dept. of CSEE, UMBC)
Prerequisite: Basic linear algebra, calculus, and probability. Proficiency in Matlab® or similar programming languages will be helpful, but not required.
Who should take this course: Anyone in the ENEE/CMPE/CMSC programs, with interest in the application of signal processing, machine learning, and optimization techniques to advanced wireless
and smart systems. Students from other disciplines can also sign up upon the instructor’s consent.
For further information, e-mail to or visit https://www.csee.umbc.edu/~sjkim

Spring 2019

CMSC491: Topic: Mobile Computing
Instructor: Nilanjan Banerjee

CMSC491: Topic: Malware Analysis
Instructor: Charles Nicholas

CMSC491/691: Topic: Computer Vision
Instructor: Hamed Pirsiavash

CMSC491: Topic: Introduction To Data Science
Instructor: Sudip Mittal

CMSC691: Topic: Parallel and Distributed Processing
Instructor: Tyler Simon

CMSC691: Topic: Advanced Robotics
Instructor: Cythia Metusze

CMPE491/691: Topic: Advanced Algorithms
Instructor: Dhananjay Phatak

CMPE491: Topic: Communication Theory
Instructor: E F Charles LaBerge

CMPE491/CMPE691/ENEE691: Topic: Signal Processing for Big Data
Instructor: Seung Jun Kim

CMPE491/ENEE691: Topic: Satellite Communications
Instructor: Nelofar Mosavi

CMPE491/691: Topic: Neural Engineering and Instrumentation
Instructor: Fow-Sen Choa

Spring 2012

CMSC 491/691: Clinical Informatics
Professor: Dr. Michael Grasso
Time: M/W 5:30-6:45 p.m.
This course will provide a broad exposure to the field of Clinical Informatics. The course is designed to be applicable to students whose experience is limited to Computer and Information Sciences, as well as those whose experience is limited to the Biological Sciences. The course focuses on the expanding role of information technology for the delivery of healthcare, and provides a theoretical and practical introduction to the socio-technical issues involved in the assessment, implementation, and management of these systems. Topics covered include electronic health record systems, patient management systems, clinical decision support, clinical image processing, clinical data mining, personalized medicine, and the software engineering challenges specific to the development of these systems.
Prerequisite – CMSC 341 or BIO 303 or consent of the instructor.

CMSC 491/691: Computation, Complexity, and Emergence
Professor: Dr. Marie desJardins
Time: M/W 10:00-11:15 a.m.
This course will explore the nature and effects of complexity in natural and artificial systems. Complexity arises in these systems from many sources, including self-similarity, parallelism, recursion, and adaptation. Through these mechanisms, simple local behaviors and patterns can produce complex, intricate, and often fascinating emergent global behaviors. These phenomena arise in diverse areas, from biology (ant colonies, fish schools) to economics (stock market bubbles, opinion formation) to physics (galactic clusters, weather patterns). We will use Gary Flake’s text, The Computational Beauty of Nature, as a starting point to investigate the sources and dynamic properties of complex systems. (NOTE: This course satisfies departmental honors and also counts as an Honors course for Honors College students. This section of CMSC 491 is a permission-required course and has limited space.
Please contact Dr. desJardins () to request permission.)

CMSC 491/HONR 300: Security and Privacy in a Mobile Social World
Professor: Dr. Anupam Joshi
Time: T/TH 11:30-12:45 p.m.
This 3 credit course will cover the fundamentals of security, privacy and trust in emerging open, dynamic environments created by wireless networks, embedded/handheld/wearable computers, and web based social media and networks. We will look at several recent cases that illustrate the loss of security or privacy engendered by pervasive social computing. We will discuss both the technical and non-technical issues involved. Traditional technical approaches, which assume closed, physically protected networks and rely on authentication to establish authorization, do not work well in this environment. Policy and legislation, even those designed for the internet, have not kept up with this phenomenon and many social norms that constraint our real world behavior have no easy analogs in this brave, new, online world! We will study the issues involved, and the recent efforts from the research community in the area. While a text may be prescribed, most of the reading will be from papers. There will be writing assignments, and a significant group project that will have cross disciplinary teams.

CMPE 491/691: Advanced FPGA Design
Professor: Dr. Tinoosh Mohsenin
Time: M/W 4:00-5:15 p.m.
Digital signal processing (DSP) and communications systems are becoming increasingly commonplace and appear in a vast variety of applications such as: mobile phones, portable multimedia and biomedical systems. These applications require significant levels of complex signal processing in real time and operate within limited power budgets. This need for greater energy efficiency and improved performance of electronic devices demands a joint optimization of algorithms, architectures, and implementations.Through this course, students will develop the necessary skills to design simple processors suitable for numerically intensive processing with an emphasis on FPGA implementation flow. Students learn practical applications of DSP and communication kernels by implementing several small projects as well as a few real life systems in hardware. Examples of these kernels include error correction for advanced communication standards, modulation schemes, FIR filters and FFTs.Students learn to optimize their architecture and hardware implementation for area, performance and power dissipation. By taking this course, students will advance their knowledge in hardware design for their future career and higher education.
For more information, please take a look at the class website: https://www.csee.umbc.edu/~tinoosh/cmpe691/

CMSC 491: Computer Graphics for Games
Professor: Dr. Marc Olano
Time: M/W 1:00-2:15 p.m.
This course is an introduction to some of the computer graphics methods commonly used in 3D computer games. Computer graphics encompasses a wide variety of algorithms and techniques, many more than can be covered in just one or two courses. This course is similar in style and scope to Advanced Computer Graphics, but uses computer games as a focus and motivation to explore a different set of graphics algorithms. Topics include path tracing and importance sampling for light baking, spherical harmonics, antialiasing methods, texture filtering and compression, shadows, normal map filtering, animation, and data representation issues. Students will learn several common algorithms in each topic area in sufficient depth for implementation.
Co-requisite: CMSC 435/634

Spring 2011

CMSC491: Computation, Complexity, and Emergence
Instructor: Prof. Marie desJardins,
This course will explore the nature and effects of complexity in natural and artificial systems. Complexity arises in these systems from many sources, including self-similarity, parallelism, recursion, and adaptation. Through these mechanisms, simple local behaviors and patterns can produce complex, intricate, and often fascinating emergent global behaviors. These phenomena arise in diverse areas, from biology (ant colonies, fish schools) to economics (stock market bubbles, opinion formation) to physics (galactic clusters, weather patterns). We will use Gary Flake’s text, The Computational Beauty of Nature, as a starting point to investigate the sources and dynamic properties of complex systems.
Prerequisites: 341 CMSC Data Structures.

CMSC491: Advanced Computer Graphics
Instructor: Dr. Marc Olano, 
[This course is a crosslisting of the graduate course, CMSC 635, and is designed for advanced undergraduates who have taken CMSC 435.]
Advanced image synthesis including graphics pipelines, shading, texturing, illumination, anti-aliasing, perception, image accuracy, image-based rendering, and non-photorealistic rendering. Through readings in the text and papers, students will learn classic and new techniques in computer graphics. In-class paper presentations provide practice in technical presentation. Assigned programming projects will help students gain graphics development experience. Unlike many classes, where there is one right way to solve each problem, students will have to make an individual choice among the several valid approaches covered in class for each programming assignment.

CMPE 491: Biosensor Technology
Instructor: Dr. Gymama Slaughter, 
[This course is a crosslisting of the graduate course,CMPE 491, and is designed for advanced undergraduates who have taken CMPE 310 and 314]
This course presents a rational basis and perspective to the design, development and implementation of new measurement technologies to the biomedical, biotechnology, environmental, and chemical industries.  Students will get familiar with the field of sensor and enabling technologies for sensor development and fabrication, as well as signal conditioning necessary for sensor integration. It integrates fundamental knowledge from scientific and technical principles, fabrication methods, characteristics, specific sensor example, and major applications into a
functional subject on biosensors and bioelectronic devices. This course will also explore the growing field of sensors from the point of view of the main application areas and sensor systems integration.
Prerequisites: CMPE 310: Systems Design & Programming and CMPE 314: Electronic Circuits.

Fall 2010

491/691: Computational Photography: Interactive Graphics and Imaging
Instructor: Dr. Jesus Caban, 
Computational photography is an emerging research area at the intersection of computer graphics, image processing, and computer vision. As digital cameras become more popular and collections of images continue to grow, interest in effective ways to enhance photography and produce more realistic images through the use of computational techniques has surged. Computational photography overcomes the limitations of conventional photography by analyzing, manipulating, combining, searching, and synthesizing images to produce more compelling, rich, and vivid visual representations of the world. This course will cover the core concepts needed to analyze and manipulate images to automatically create video effects, animations, 3D models, panoramas, and walkthroughs from traditional digital imagery.

491: Mobile Platform Development: iPhone and iPod
Instructor: Mr. Dan Hood, 
This course provides an in-depth study of the design, development and publication of object-oriented applications for the iPhone and iPod touch platforms using the Apple SDK. Students will learn to utilize Objective-C and the various SDK frameworks to build iPhone & iPod touch applications under Mac OSX.
Prerequisites: 341 CMSC Data Structures. Recommended: Competency in C or C++ (pointers, memory management, etc.)

491: Computer Forensics and Intrusions
Instructor: TBA
[This course may be cancelled if an instructor is not available.]
This course will cover the core aspects of the incident response, the legal issues of computer forensics, file system analysis, network-based artifact examination and malware examinations.
Prerequisites: CMSC 421 and 481 or permission of instructor

491/691: Electronic Voting Systems
Instructor: Dr. Alan Sherman, 
(no course description available)

491/691: Introduction to IT Services
Instructor: Prof. Yaacov Yesha, 
(no course description available)

491/691: Security in Wireless Distributed Systems
Instructor: Dr. Jim Parker, 
(no course description available)

691: Data Intensive Computing
Instructor: Dr. Yelena Yesha, 
(no course description available)

491/691: Probabilistic Models
Instructor: Dr. Yun Peng, 
(no course description available)

Fall 2009

CMSC 491-3 (3414)/691-2 (3415), Data Mining (3 credits)

IMPORTANT: Students should have an undergraduate level background in linear algebra, statistics, and algorithms, be familiar with basic probability theory and will need programming knowledge in C/C++ or Java.

CMSC 491-4 (4525), Computer Forensics and Intrusions (3 credits)
Dr. Joe Drissel
IMPORTANT: Permission required; corequisites: CMSC 421 and CMSC 481.
Description: This course will cover the core aspects of the incident response, the legal issues of computer forensics, file system analysis, network-based artifact examination and malware examinations.
Objective: To provide the student with the essential knowledge required to complete a computer forensic exam or incident report in the field.

CMSC 491-5 (4533), Mobile Platform Development: iPhone and iPod (3 credits)

Description:This course provides an in-depth study of the design, development and publication of object-oriented applications for the iPhone and iPod Touch platforms using the Apple SDK. Students will learn to utilize Objective-C and the various SDK frameworks to build iPhone & iPod Touch applications under Mac OSX.
Topics include: Objective-C, Xcode, Interface Builder, Instruments, iPhone Simulator, Cocoa Touch (UIKit, Foundation Framework), Media Frameworks (Quartz, Core Animation, OpenGL ES, Core Audio, OpenAL), Core Services (Address Book, Networking, Core Location, Security, SQLite, XML), Core OS.
Prerequisite: CMSC 341
Recommended: Competency in C or C++ (pointers, memory management, etc).

Additional Listings

CMPE 691 Advanced FPGA Design
Instructor: Dr. Tinoosh Mohsenin, 
Through this course, students will develop the necessary skills to design simple synthesizable processors suitable for numerically intensive processing with an emphasis on small area and high-performance. Secondly, students will learn to design main processor blocks that are used in digital signal processing and communication applications through the simultaneous design of DSP algorithms, processor architectures, and hardware design for FPGAs. Finally, students learn to design and implement a real communication system on FPGA by incorporating FPGA features into their designs.
Prerequisites: CMPE 310: Systems Design & Programming and CMPE 415: Programmable Logic Devices

ENEE 691: Research Methods for MS/PhD Students
Instructor: Dr. Joel Morris
This is a first-year second-semester graduate course that is designed to help the graduate student: (1) understand the research process, (2) develop effective research skills and habits, (3) complete high-quality MS theses or PhD dissertations, (4) have an efficient, effective, and generally positive graduate study experience, and (5) be prepared for starting a research career. The course will comprise lectures (instructor and guests), class discussions, student exercises and presentations, reading and assessing research materials, etc. Students will be required to concurrently attend a number of CSEE Department seminars, e.g., ENEE 608.