| Dr. David Naumann | |  |
 Personal Webpage
| | Dr. David Naumann | | Professor | | Location: | 305 Lieb | | Phone: | 201.216.5608 | | Fax: | 201.216.8249 | | Email: | dnaumann@stevens.edu |
| Close
CS 115:Introduction to Computer Science
This is an introductory programming course using the Java language. The topics include: basic facts about object-oriented programming and Java through inheritance and exceptions; recursion; UML diagrams and how to read class diagrams; ethics in computer science; and some basic understanding about computer systems: the compile/link/interpret/ execute cycle and data representation. |
|
Close
CS 182:Introduction to Computer Science Honors II
Advanced programming concepts covering classical data structures and object-oriented programming. Emphasis will be on building a collection of re-usable software components that will form the basis of future programming efforts. The data structures covered include lists, stacks, queues, trees, binary search trees, and balanced search trees. The object-oriented features of Java covered include classes, templates, inheritance, polymorphism and run-time binding. Also included is a discussion of the analysis of asymptotic running times of algorithms. |
|
Close
CS 496:Principles of Programming Languages
An introduction to programming language design and implementation, with an emphasis on the abstractions provided by programming languages. Assignments involve problem-solving issues in principles of programming languages such as Scheme and ML; recursive types and recursive functions; structural induction; abstract data types; abstract syntax; implementing languages with interpreters; static vs. dynamic scoping, closures, state; exceptions; types: type-checking, type inference, static vs. dynamic typing; object-oriented languages: classes and interfaces, inheritance and subtyping; polymorphism and genericity; and design patterns and the visitor pattern. |
|
Close
CS 510:Principles of Programming Languages
An introduction to programming language design and implementation, with an emphasis on the abstractions provided by programming languages. Assignments involve problem-solving issues in principles of programming languages such as Scheme and ML. Recursive types and recursive functions; structural induction; abstract data types; abstract syntax; implementing languages with interpreters; static vs. dynamic scoping, closures, and state; exceptions; types: type-checking, type inference, static vs. dynamic typing; object-oriented languages: classes and interfaces, inheritance, and subtyping; polymorphism and genericity; and design patterns and the visitor pattern. |
|
Close
CS 643:Formal Verification of Software
Formal systems for specification and verification of software; review of the first-order predicate calculus; abstract data types, formal specification, preconditions, postconditions, invariants, predicate transformers, proofs of correctness, and partial and total correctness; correctness for assignments, alternatives, iterations, and procedure calls. Tools for deductive verification, model checking, and analysis of specifications and models. |
|
Close
CS 135:Discrete Structures
The aim of this course is to integrate knowledge of basic mathematics with the problems involving specification, design, and computation. By the end of the course, the student should be able to: use sets, functions, lists, and relations in the specification and design of problems; use properties of arithmetic, modular arithmetic (sum, product, exponentiation), prime numbers, greatest common divisor, factoring, Fermat?s little theorem; use binary, decimal, and base-b notation systems and translation methods; use induction to design and verify recursive programs; and implement in Scheme all algorithms considered during the course. |
|
|
| | School: Schaefer School of Engineering & Science | | Department: Computer Science | Program: Computer Science
| Research Center: Center for the Advancement of Secure Systems and Information Assurance
| Office Hours: Tue 2:30-3:30 and by appointment.
|
|
|
| | Research & Education |  |
| | Education | | Ph.D., Computer Science, University of Texas at Austin, 1992 B.A., Computer Science, University of Texas at Austin, 1982 |
| | | Research | | Formal methods and security, including: fine-grained confidentiality/integrity policies; automated analysis/transformation of programs combined with access control to enforce such policies; use of program verification technology for security; and methodology for formal specification of system components. |
| |
| | Experience & Service |  |
| | Professional Service | | Co-chair of 2009 ACM Workshop on Programming Languages and Analysis for Security. Verified Software Initiative: chair of Theory Panel, co-chair of 2008 VSTTE workshop, chair of 2010 VSTTE workshop. Member of the Technical Committees for numerous IEEE and ACM research conferences and workshops. | | General Information | | |
| | | Experience | | Programmer-designer, IBM, 1982-85
Consultant-programmer, Renaissance Systems, 1985-86
Associate Scientist, International Software Systems, 1986-91 Assistant Professor, Southwestern University, 1991-97. | | Consulting Service | | Microsoft Research |
| |
| | Achievements & Professional Societies |  |
| | Grants, Contracts & Funds | | NSF award INT-9813854: Towards a Practical Calculus of Object-Oriented Programming.
NSF award CCR-0208984: Integrating Confinement and Access Control for Encapsulation.
NSF award CCF-0429894: Formal Methods for Behavioral Subclassing and Callbacks.
NSF award CNS-0627338: Access Control and Downgrading in Information Flow Assurance.
NSF award CNS-0708330: A JML Community Infrastructure --Revitalizing Tools and Documentation to Aid Formal Methods Research. NSF award DUE-083084: Scholarship for Service Cybersecurity Scholars Program (co-PI). NSF award CCF-0915611: Specification Language Foundations for Modular Reasoning Methodologies.
|
| | | Honors & Awards | | Best paper, ETAPS 2005. Davis Memorial Award for Research Excellence, 2006. Best student paper (coauthor), OOPSLA 2007. Distinguished paper, ECOOP 2008. | | Professional Societies | Member ACM, IEEE. |
| |
|
| |
|