Dr. Marmorstein at his desk

Robert Marmorstein

Associate Professor
Department of (Math and) Computer Science
Longwood University
Stevens 109
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 2024 CTZN 110: Technology and the Common Good
CMSC 160: Introduction to Algorithmic Design I
CMSC 455: Cryptography
Fall 2023 CMSC 121: Introduction to Computer Science
CMSC 295: Special Topics (CS Scholars Seminar)
CMSC 355: Introduction to Computer and Network Security
CMSC 442: Operating Systems
CMSC 445: Compiler Design
ISCS 475: Advanced Web Programming

About me

I teach computer science at Longwood University , a small four year public school in Farmville, Virginia (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). I occasionally contribute to open source projects, including Freecol, 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. I use many distributions, including Arch Linux, Gentoo, OpenSuSE, and Debian. I am the co-advisor of Longwood's Cyber Security club and Chess Team. I also advise the game development club and the Upsilon Pi Epsilon computer science honor society. My family and I attend St. John's Lutheran Church (LCMS).
Abby and Ric

About my family

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 leads the Farmville Area Homeschool Strings group, the Farmville Christian Homeschool Co-op, and plays Cello for the Longwood University String Orchestra. Among other projects, she designed and built a 1/8th size cello for our three-year old son. We have five terrific children, Abby, Ric, Caspian, Peter, and Luke, who we homeschool. My mom keeps a blog here and 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 fall short in at least 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. Not only does lecture provide a structure and context for the readings, but I often include content in the lecture which you simply won't find in the book. 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 (and shouldn't try!), 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 be cumulative. If you miss something at the beginning of the semester, it will make it much harder to understand what comes later and depends on that prior knowlege. The material also tends to increase in difficulty 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. Often ten minutes in office hours can save you hours of work on your own! 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. Getting to know you outside of class is especially helpful for writing letters of recommendation when you graduate and need help finding a job. (It's hard to be a reference for a student you only see in class). If I have a better idea of your plans and interests, I'm much more likely to think of you when internship or scholarship opportunities arise. Finally, 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 also looks great on a resume! 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:

Thinking Inside the Box: Using Containers to Encourage Commit Discipline
Robert Marmorstein
Journal of Computing Sciences in Colleges(JCSC)
October 2023, Pp. 110-118, Vol. 39, No. 3
Techguide interview
Robert Marmorstein
Career Guidance for prospective students
Aug. 2022, Online
SPIFS: A Short Project Instructional Filesystem
Robert Marmorstein
Proceedings of the 36th Eastern Regional Conference of the Consortium for Computing Sciences in Colleges (CCSC Eastern 2020)
Oct. 2020, Hood College, MD
(presented online due to the COVID pandemic)
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
Programming as a Creative Outlet: Five unplugged activities for teaching the Computer Science standards(with Dr. Toni Sorrell)
Robert Marmorstein
Virginia Council of Teachers of Mathematics(VCTM)
Longwood University, Farmville, VA
March 9, 2019
Speculative Execution Attacks: Technical Background of the Spectre and Meltdown Vulnerabilities
Robert Marmorstein
US IT Tech Day
Swift, Inc., Manassas, VA
June 5, 2018
Common Myths about Computers and Cyber Crime
Robert Marmorstein
Presentation to TRIAD
Fireman's Arena, Farmville, VA
February 9, 2018
A brief survey of password cracking techniques
Robert Marmorstein
Colloquium Talk
Hampden-Syndey College
November 2, 2017
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