Last Updated: April 10th, 2011

PDF Version
Nomair A. Naeem

Personal Data
Address:        
                    David R. Cheriton School of Computer Science
                    University of Waterloo
                    200 University Avenue West
                    Waterloo, ON N2L 3G1
                    Canada 
Telephone:  (519) 208-4216
E-mail:        nanaeem@uwaterloo.ca 
Web Page:  http://plg.uwaterloo.ca/~nanaeem 

Education
Ph.D.: September 2006 - In Progress, 
Department of Computer Science, Faculty of Mathematics, University of Waterloo, 
Waterloo, Ontario, Canada. 
Proposed Thesis Title: Validating Temporal Properties of Multiple Interacting Objects

Certificate in University Teaching (CUT),
        January 2008 to August 2010,
        Centre for Teaching Excellence, University of waterloo

M.Sc. (CGPA 4.00): September 2003 to April 2006, 
School of Computer Science, McGill University, 
Montreal, Quebec, Canada. 
Thesis Title: Programmer-Friendly Decompiled Java 

B.Sc. (Honours) (Dean's Honour List) (CGPA: 3.97): September 2000 to June 2003, 
School of Computer Science, McGill University, 
Montreal, Quebec, Canada. 
Thesis Title: Exp. DB: Fast Development of Experimental Information Systems 

B.E.: September 1998 to May 2000 (Transfered after two years to McGill University) 
Faculty of Computer Engineering, G.I.K. Institute of Engineering Sciences and Technology, 
Topi, Pakistan. 


Teaching Experience
Course Instructor/Sessional

  Winter 2010, Winter 2011
    CS 444/644 -- Compiler construction, University of Waterloo

   Spring 2007
    CS 241 -- Foundations of Sequential Programs, University of Waterloo

   Winter 2006
    COMP 520 -- Compiler Design , McGill University

   Fall 2005
    COMP 202 -- Introduction to Computing , McGill University

   Fall 2003, Winter 2004
    Guest Lecturer for COMP 409 -- Concurrent Programming, McGill University

Teaching Assistant

   January 2009 - April 2009
    CS 444/644 -- Compiler Construction, University of Waterloo

    January 2007 - December 2010
     (8 Terms), CS 241 -- Foundations of Sequential Programs, University of Waterloo

   September 2006 - December 2006
    CS 133 -- Introduction to Computing, University of Waterloo

   September 2003 - April 2006
    (6 Terms) - School of Computer Science, McGill University
    Courses: Concurrent Programming, Database Design, Programming languages and Paradigms
    and Introduction to Computing.


Talks
Dataflow Analysis
         Invited Talk: Computer Science Club, University of Waterloo, July 2010

Typestate-like Analysis of Multiple Interacting Objects 
WatFORM formal methods group, University of Waterloo, October 2008

AspectJ and Tracematches 
Guest Lecture in CS 444 - Compiler Construction, University of Waterloo, March 2007 

Precise and Efficient Must-alias Analysis 
        Two part Programming Languages Group Seminar, University of Waterloo, January 2007 

Decompilation at its Best 
Sable Research Group Seminar, McGill University, November 2005 

Dava II 
Sable Research Group Seminar, McGill University, June 2005 

Improving Control Flow in Dava 
Graduate Course: Optimizing Compilers, McGill University, March 2005 

Towards Automatic Generation of Visitors for Tree Structures 
Graduate Course: Software Evolution, McGill University, December 2004 

Decompiling Java Bytecode 
Sable Research Group Seminar, McGill University, November 2004 

Register Allocation in Compilers 
Graduate Course: Advanced Analysis of Algorithms, McGill University, April 2004 

Naming Local Variables while Decompiling Java Bytecode Using Machine Learning 
Graduate Course: Machine Learning, McGill University, December 2003 

Awards and Competitions
David R. Cheriton Graduate Scholarship, School of Computer Science, University of Waterloo, 2009-2011 

Natural Sciences and Engineering Research Council of Canada, Canada Graduate Scholarship (CGS-D), 2006 - 2008 

President's Graduate Scholarship, University of Waterloo, 2006 -2008 

NITC Bursary, Province of Quebec, Canada, 2004 

Natural Sciences and Engineering Research Council of Canada, Canada Graduate Scholarship (CGS-M), 2004 - 2005 

Fonds québécois de la recherche sur la nature et les technologies, Bourse de doctorat en recherche (Postgraduate Scholarship), 2004 - 2005 (Declined) 

IT Fellowship, School of Computer Science, McGill University, 2004 

Faculty of Science Top-Up, McGill University, 2004 

E. R. Crawford Scholarship, School of Computer Science, McGill University, 2001 

J. R. McConnell Award, School of Computer Science, McGill University, 2001 

Excellence in Physics, University of London, England, UK, 1998 

Alan Bicker Award, University College Islamabad, Pakistan, 1997 

Refereed Journal Publications
Eric Bodden, Laurie Hendren, Patrick Lam, Ondrej Lhoták, Nomair Naeem. Collaborative runtime verification with tracematches. Accepted to Journal of Logic and Computation. 
This is an extended version of the RV 2007 conference paper below.

Refereed Conference Publications
Nomair Naeem, Ondrej Lhoták. Faster Alias Set Analysis Using Summaries. Conference on Compiler Construction (CC 2011). March 2011, Saarbrucken, Germany

Nomair Naeem, Ondrej Lhoták, Jonathan Rodriguez. Practical Extensions to the IFDS Algorithm. Conference on Compiler Construction (CC 2010). March 2010, Paphos, Cyprus

Nomair A. Naeem, Ondrej Lhoták. Efficient Alias Set Analysis using SSA Form. International Symposium on Memory Management (ISMM 2009) , June 2009, Dublin, Ireland. 
A preliminary version appears as University of Waterloo SCS technical report CS-2008-22.
 
Nomair Naeem, Ondrej Lhoták. Typestate-like Analysis of Multiple Interacting Objects. ACM SIGPLAN Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA 2008). pp. 347-366, October 2008, Nashville, USA 
A preliminary version appears as University of Waterloo SCS technical report CS-2008-04. 

Eric Bodden, Laurie Hendren, Patrick Lam, Ondrej Lhoták, Nomair A. Naeem. Collaborative Runtime Verification with Tracematches. Runtime Verification, 7th International Workshop (RV 2007), pp. 22-37, March 2007, Vancouver, Canada. 

Nomair A. Naeem, Michael Batchelder, Laurie Hendren. Metrics for Measuring the Effectiveness of Decompilers and Obfuscators. 15th IEEE International Conference on Program Comprehension (ICPC 2007), June 2007, Banff, Canada. 
A preliminary version appears as Sable technical report 2006-04. 

Nomair A. Naeem, Laurie Hendren. Programmer-Friendly Decompiled Java. 14th IEEE International Conference on Program Comprehension (ICPC 2006), June 2006, Athens, Greece. 
A preliminary version appears as Sable technical report 2006-02. 

Xueli Li, Nomair A. Naeem, Bettina Kemme. Fine-Granularity Access Control in 3-tier Laboratory Information Systems. 9th International Database Engineering and Applications Symposium (IDEAS 2005), July 2005, Montreal, Canada.

Nomair A. Naeem, Stephane Raymond, Anne Poupon, Miroslaw Cygler, Bettina Kemme. Exp-DB: Fast Development of Information Systems for Experiment Tracking. 15th Conference on Advanced Information Systems Engineering (CAISE 2003), June 2003, Klagenfurt/Velden, Austria.

Other Publications
Nomair A. Naeem. Validating Temporal Properties of Interacting Objects. Doctoral Symposium, 23rd annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA 2008), October 2008, Nashville, USA.

Major Contributions to Software
Dava: A decompiler for arbitrary Java bytecode. 
Available as part of Soot, a Java bytecode analysis and transformation framework 
http://www.sable.mcgill.ca/soot

Positions Held
September 2003 to April 2006: Research Assistant, School of Computer Science, McGill University. 
Supervisor: Laurie Hendren 

May 2001 to December 2002: Design Engineer, Biotechnology Research Institute (BRI), National Research Council, Montreal, Canada. 
Supervisor: Miroslaw Cygler 

May 2005 to August 2005: Course Improvement Initiative, School of Computer Science, McGill University 
Supervisor: Prof. Martin Robillard 

May 2003 to August 2003: Course Improvement Initiative, School of Computer Science, McGill University 
Supervisor: Prof. Bettina Kemme 


Volunteer Activities
    Programming instructor for CEMC Seminar in Computer Science for Young Women
       June 2010, University of Waterloo, Ontario, Canada

Course Projects
Improving Control Flow in Decompiled Java Code - COMP 621: Optimizing Compilers, 2005 
Renaming Local Variables in Decompiled Code - COMP 652: Machine Learning, 2004 
A Hnefi Robot - COMP 424:Artificial Intelligence, 2002 
WIG Compiler - COMP 520: Compiler Design, 2002 
BookYourVacations.com - COMP 421: Database Systems, 2002


 
Nomair Naeem 2011-04-10http://plg.uwaterloo.ca/~nanaeem/docs/Naeem-CV.pdfmailto:nanaeem@uwaterloo.cahttp://plg.uwaterloo.ca/~nanaeemhttp://www.sable.mcgill.ca/sootshapeimage_2_link_0shapeimage_2_link_1shapeimage_2_link_2shapeimage_2_link_3

Nomair A. Naeem


[ Home ] [ Publications ] [ CV ] [ Teaching ] [ Travel ] [ Misc ]