Home Contact

Atif Memon's Home Page

Office Location: 4113 A.V.Williams Building; Phone: +1-301-405-3071

Dept. of Computer Science, University of Maryland, College Park, MD, USA.

Current Projects
Vetting Android Applications for Security Using Graphical User Interface Logic (funded by DARPA)
COMET - Community Event-based Testing (funded by NSF)
Algorithms and Software for the Assembly of Metagenomic Data (funded by NIH)
Research in Science and Public Policy for the U.S. National Security Agency (funded by NSA)
EDU: Competing to Build Secure Systems (funded by NSF)
GUITAR - GUI Testing Framework (funded by NSF)
I feel that it is important for University Professors and Researchers to provide opportunities to practitioners to enable them to learn emerging technologies. I have (and continue to do so) designed several modules/courses for this purpose. These have ranged from custom non-credit non-degree continuing education courses, academic short courses, seminars, workshops, and symposiums ranging from one day to 16 weeks in length providing working professionals with technical updates in key areas related to their strategic skills.

Some of these courses are listed below. Please contact me if you want to enroll in any of these courses. Or if you want me to develop and deliver customized content for your company.

Introduction to Linux OS for MS Windows Users (17 lectures 1.5 hrs each)

img The purpose of this course is to introduce the Linux OS to Microsoft Windows users/programmers. The course has a steep learning curve, starting with basic concepts of Linux usage, and then rapidly moving towards advanced programming concepts of multi-threading, concurrency, semaphores, interfacing with hardware devices, and real-time programming. To facilitate such a steep learning curve, the course is designed to be goal-oriented and top-down. That is, the participants will work on six practical programming projects of increasing complexity. All six projects will be described during the first lecture – participants will know exactly what they will achieve during each module (roughly a two-lecture period), which is the time-window of each project. Lecture content of the first four modules will be geared towards their corresponding projects. Towards the end of the course, all participants will be familiar with the Linux OS. They will have developed, in Project 5, the basic infrastructure needed for cloud computing (with a registration node, and multiple computing and job management nodes utilizing features of inter-networking, multi-threading, locking, etc.), which they will customize for a distributed computation task of their choice in Project 6. The programming language used throughout the course is C.

One-day Workshop on Software Testing

img The purpose of this one-day workshop is to introduce the participants to fundamentals of software testing, such as category-partitioning, test oracles, test coverage including MC/DC coverage, code instrumentation, unit testing, acceptance testing, user stories, and regression testing. Lectures on these fundamentals are supported by hands-on exercises in which participants use unit testing tools to develop a few test cases, instrument the code of the application under test to collect data to be used for code coverage analysis, and execute the tests. The workshop covers advanced topics in test automation as well, including pair-wise testing, AI planning, iterative relaxation event-flow graphs, GUI testing, predicate & heuristic based testing, "daily/nightly" builds and smoke tests, network protocol and web testing, and performance testing. In order to provide a holistic treatment of the topic, the workshop discusses testing broadly within the context of Software Engineering Requirements (UML), Design, Sequence Diagrams, Use Cases, and component-based software engineering.