Dr. Marmorstein at his desk

Robert Marmorstein

Assistant Professor
Department of (Math and) Computer Science
Longwood University
Ruffner 329
Tel: (434)395-2185

My public key.


Assignments, syllabi, and class notifications can be accessed by following the links below. If you are a student in one of my classes, you should check the course web site at least once a week to be sure that you have not missed an important announcement (a new due date, for instance).

Spring 2017 CMSC 121: Introduction to Computer Science
CMSC 242: Systems Programming
CMSC/MATH 350: Ethical Issues in Mathematics and Computer Science
CMSC 362: Database Theory
Fall 2016 CMSC 162: Introduction to Algorithmic Design II
CMSC 340: Linux System Administration
CMSC 355: Introduction to Computer and Network Security
ISCS 375: Web Programming

About me

I teach computer science at Longwood University, a small four year public school in Farmville, Virgina (yes, there is a real Farmville). I did my graduate work at the College of William and Mary, where my dissertation work was on Firewall Analysis and Repair (slides). As part of my research, I developed ITVal, a tool for verifying iptables-based firewalls on Linux. I also contribute to several open source projects, including kdepim and koffice.

I have been published in several Usenix conferences, including LISA and Freenix. I am a huge open-source fanatic and run Linux on pretty much everything I touch. My favorite distribution is Arch Linux.

I am the faculty advisor for Longwood's College Republicans, the Gamma Psi Fraternity, and the Upsilon Pi Epsilon computer science honor society. My family and I attend St. John's Lutheran Church (LCMS).

About my family

Abby and Ric

Beth and I were married in 2004. She taught high school math until our daughter was born, but is now very happy to be a stay-at-home mom. She does lots of sewing, knitting, and even a little programming. She is also really awesome at setting up phone and ethernet networks. We have three terrific children, Abby, Ric, and Caspian.

My mom keeps a blog here. My Dad has a set of really neat presentations on different topics here.

How to get (at least) a B in my classes

If you plan to pass my courses, there are four things that you absolutely need to do. Computer Science isn't a magical skill that some people are born with and others aren't. If you work hard at these four things, you will almost always be able to earn at least a "B" in my class. If you don't, you will probably not pass the course. They may seem kind of obvious, but most students who fail my classes do so because they did not keep up in one of these four areas.

Show up for class on time
The book and other class resources are helpful, but usually are not enough to get you a passing grade in my class. It is very important to show up for each class so that you can make sure of getting ALL the material. Furthermore, if you don't show up for class, you are likely to miss assignments. I give unannounced pop quizzes, so if there is a good reason you must miss class, be sure to clear it with me ahead of time.
Take notes in class
Not only will taking notes help you stay awake, it will provide you with another resource to use for exam review. You don't need to write down everything I say, but it is probably a good idea to copy down any definitions, theorems, examples, or blocks of code I write on the board.
Complete assignments on time
Late work really hurts your grade and makes it harder to keep up with the rest of the class. In computer science, the material tends to start easy and get increasingly difficult as the semester progresses. If you get behind, it can be very hard to catch up. Late work also makes my life much harder, so if you don't get an assignment to me on time, expect to earn a zero.
Take advantage of office hours
If you're really stuck on something, ask me about it. I won't do your work for you, but a lot of the time I can point you to a solution or help you understand what you missed. Even if you're not stuck on something, swing by my office from time to time. I enjoy hanging out with students and will show you something cool we didn't have time cover in class or play a game of chess with you. Sometimes just being in my office when OTHER students have questions can help you "get" something you didn't even realize you'd misunderstood.


Whether or not you plan to go to grad school, a research project can be a great way to develop important logical, writing, and technical skills. It is also a very good resume filler. Doing research on a topic you are interested in helps you develop marketable skills in that area and build a deeper understanding of that topic. If you are interested in pursuing a research project in operating systems, security, formal methods, or system administration, shoot me an e-mail or drop by my office to talk about setting up a directed study course.

Current and ongoing research projects

Past research projects

Ideas for future research

Here are some ideas for undergraduate research projects:


Here are some of my research publications. They can give you a good idea of which topics I have been working on recently:

Teaching Semaphores Using . . . Semaphores
Robert Marmorstein
Proceedings of the 30th Eastern Regional Conference of the Consortium for Computing Sciences in Colleges (CCSC Eastern 2014)
Nov. 2014, York, Pennsylvania
Open source as an effective software engineering semester project
Robert Marmorstein
Proceedings of the 16th conference on Innovation and Technology in Computer Science Education (ITiCSE 2011)
June 2011, Pp. 268-272, Darmstadt, Germany
Assisted firewall policy repair using examples and history
Robert Marmorstein and Phil Kearns
Proceedings of the 21st Large Installation System Administration Conference (LISA '07)
November 2007, Pp. 27-37, Dallas, TX
Debugging a firewall policy with policy mapping
Robert Marmorstein and Phil Kearns
;login: The Usenix Magazine
Volume 32, Number 1, February 2007
Berkeley, CA
Firewall analysis with policy-based host classification
Robert Marmorstein and Phil Kearns
Proceedings of the 20th Large Installation System Administration Conference (LISA '06)
December 2006, Pp. 41-51, Washington DC
The saturation algorithm for symbolic state-space exploration
Gianfranco Ciardo, Radu Siminiceanu, Robert Marmorstein
International Journal on Software Tools for Technology Transfer (STTT)
Springer Berlin/Heidelberg, Volume 8, Number 1, February 2006
An open source solution for testing nat'd and nested iptables firewalls
Robert Marmorstein and Phil Kearns
Proceedings of the 19th Large Installation System Administration Conference (LISA '05)
December 2005, Pp. 103-112, San Diego, CA
A tool for automated iptables firewall analysis
Robert Marmorstein and Phil Kearns
Proceedings of the Usenix 2005 Annual Technical Conference, Freenix Track (Freenix '05)
April 2005, Pp. 71-81, Anaheim, CA
Saturation unbound
Gianfranco Ciardo, Radu Siminiceanu, and Robert Marmorstein
Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2003)
April 2003, Pp. 379-393, Warsaw, Poland
How do Spammers Get Your E-mail Address?
Robert Marmorstein
Science Gang Talk
Lynchburg College
October 27, 2011
E-mail Address Harvesting in 2008
Robert Marmorstein with Damian Bailey
Blackwell Talk
Longwood University
Spring 2010
Nifty Idea: Teaching Networking Concepts Using Active Learning
Robert Marmorstein
CCSC Eastern District Conference
October 2008, Hood College, Frederick, MD

Do not send e-mail to these addresses:
Marcus Smith: kko2175@pamplinhealth.blogsite.org
Marcus Smith: gka2176 AT pamplinhealth DOT blogsite DOT org
Marcus Smith: gro.etisgolb.htlaehnilpmap@7712luu
Marcus Smith: rqd21#78@p#am#plinhea#l#th.b#log#si#te#.o#r#g#