Here are some of my course materials. All I ask is that you give proper credit if you use them. I'm still old-fashioned in that assignments and syllabi are handed out in class--the materials here are mostly supplemental. I'm happy to share syllabi, assignments, etc. with other educators...just ask.

SLIDE SETS

Powerpoint slides for courses I'm currently teaching are always available on Blackboard. Email me for others.


TUTORIALS, LECTURES, TALKS

Powerpoint slides from my 2009 AAFS talk.

Powerpoint slides from a talk to undergraduates at Xavier University on pursuing graduate work in IA.

Powerpoint slides from my invited talk at the 2008 USENIX Annual Technical Conference in Boston.

PDF of a Powerpoint slide set for a talk on digital forensics that I did at the New Orleans chapter of ISACA in November 2007.

Powerpoint slides for a talk on digital forensics and career opportunities, presented at two New Orleans public schools (McDonough 35 and New Orleans Charter for Science and Math) in October 2007.

Powerpoint slides for an invited talk on digital forensics research at Mississippi State University in October 2007.

Powerpoint slide sets for a tutorial on live digital forensics at USENIX Security 2007, which I gave with Frank Adelstein of ATC-NY.

Powerpoint slides for an introductory lecture on digital forensics presented to students in CSCI 1000 at UNO, April 2007.

Powerpoint slide sets for a tutorial on live digital forensics at ACSAC 2006, which I gave with Frank Adelstein of ATC-NY.

Powerpoint slides for an introductory lecture on digital forensics presented to students in the honors program at UNO, 2006.

Powerpoint slides for a lecture on research in digital forensics presented in the Computer Science Department's Fall 2006 seminar series.

Powerpoint slides for an introductory lecture on digital forensics and Linux, given to the New Orleans Linux User's Group (NOLUG) in November, 2006.

Powerpoint slides for a three lecture series on digital forensics at the University of Texas at Austin in 2005. WARNING: This is a 16MB download.

Powerpoint slides for a brief lecture on digital forensics, for New Orleans Public Schools guidance counselors..

Powerpoint slides for an introductory lecture on digital forensics, presented for the UNO Honors Program (November 11, 2003). The abstract is also available.

Powerpoint slides for an invited lecture on service discovery at Wayne State University (October 8th, 2002).

Powerpoint version of my Mobicom 2000 tutorial on service discovery. This is an updated version of a similar tutorial I gave at IPCCC 2000 in Phoenix. If you want an online version, click here.

Powerpoint version of my invited PDCS 2000 tutorial on mobile computing. This is a 4 hour tutorial that surveys several interesting areas in mobile computing. If you want an online version, click here.

Here is a brief introduction to Mobile IP. I gave this lecture some time back for the Systems Reading Group in our department. IPv6 and low level details are omitted.



Most of the stuff below this point is dated and is left up to preserve links from other pages.


PERL

Here are documented examples in Perl, mostly relating to client/server programming. They've evolved slightly (mostly corrected typos and minor changed) since their appearance in the TCOS Bulletin in Fall, 1996. I use these examples to help my introductory operating systems students get a handle (ha ha) on sockets programming in Perl. Some miscellaneous Perl examples are also here.

The networking examples don't hide networking programming details inside Perl 5 modules, since the point in the context of the OS course is to look at those gory bits. If you do serious networking programming in Perl, by all means look into the Perl modules which abstract away some of the nastiness.



RMI/JINI


JAVA

Here are simple Java examples:

JNI

Here is an example that illustrates the use of Java JNI. The Java Blender class calls a C function Blend(), through a wrapper function prototyped in Blender.h. All of the C stuff is in file blender.c. The C Blend() function uses a thread (via Pthreads) to whirl around the contents of a string which is then returned to Java. This was a proof of concept to make sure that Java mixed with C/Pthreads under Linux didn't crater. A Makefile is available which compiles everything. Note that the "Blender.h" file is generated automatically by a Java tool, javah. The command "javah Blender" created "Blender.h". If you leave the shared library "blender.so" (which is created by the Makefile and loaded by the Blender class), in the current directory, run the blender as follows: java -Djava.library.path=. Blender "tomato" (assuming you want to place a tomato in the blender).


SECURITY

Here are some simple C programs containing lstat/fstat race conditions. These are discussed in CSCI 4621: race.c, race2.c, race3.c. The following are shell scripts used to attack these applications: runrace, runrace2, runrace3.

The following is a Win2K trojan horse exploit: Trojan.cpp. Compile under Visual Studio, place a copy of the executable on c:\, and wait for an administrator to log in. This example simply creates a new user account. Win95/98/NT are also vulnerable to the c:\explorer.exe issue.