Dr. Kees Leune

Welcome to the academic home page of Dr. Kees Leune. Everything here is related to my affiliation with Adelphi University as associate professor and chair of the computer science department. Use the navbar on the side to find main content.

End of Semester 2025 Semester

Regular classes for the Spring 2025 semester are over. We’re about to head into Finals Week, and then the summer. This is a good time to look back.

This year marked the second year of me being Chair of Department. The first year was a bit of a transition shock; we were dealing with a rapidly growing program and I had to pull out quite a few tricks to staff courses. This year was a bit better, but finding instructors for all the course sections we needed to run was still tricky.

In the end, to make it all work, I ended up teaching way too much again. Hopefully, that will be better in the 2025/2026 academic year. We are seeing a bit of a turnaround; the unrestricted growth of the computer science field is definitely over for now and we’re seeing quite a bit of a decline for next year. International students are also not chopping at the bit to come study in the U.S., so that’s a double whammy.

Working together with Sung Kim and Chris Benson, we authored a paper on the research we conducted last summer. The paper will be presented at the European Conference of Cyber Warfare in Kaiserslautern in Germany in a few weeks. Given the workload, I didn’t get to do much research this year.

I did have the pleasure of working with an Honors College student on her undergraduate thesis. Joshanna will defend her work on phishing attacks targetting undergraduate students at U.S. colleges on Monday.

However, even though I haven’t been able to get much research done this year, we were able to put a lot of effort towards new curriculum development. During the academic year, we were able to approve and launch two new programs (a B.S. and an M.S.) in Artificial Intelligence.

Our department has a broad interest in mathematics, statistics, and computer science. AI is positioned at the intersection of these three fields, and several of our faculty members are established scholars in this field.

We have not launched this program earlier because market studies indicated that there would not be enough student interest to generate sufficient enrollment to run the program consistently. With the rapid adoption of generative AI, that has changed, and we took this opportunity to carefully design, develop, and lauch the programs. We aere looking to our first intake in the Fall.

What’s next? We’ll hold our Commencement ceremonies immediately following finals week, and then there will be some travel this summer. In early June, I’ll trek up to the Finger Lakes region of New York State to attend the New York CIO Conference. Its theme this year seems to heavily rely on the intersection between AI and cybersecurity. Perfect for me! Afterwards, a trip to Germany to present the paper.

Once back, I’ll work with my team in IT to update our cybersecurity plans to align with version 2.0 of the NIST Cybersecurity Framework, we’ll continue our onboarding of multifactor authentication across the board, update our VPN strategy and update the infrastructure to implement it, decide on an email filtering platform, onboard a new platform for course planning, registration, degree audit, and degree clearance, and do some other random stuff.

All and all, it won’t be a boring summer :-) I might even get some research done!

End of Semester

The end of the Spring semester is a week away! Time to help my students make that final push into their last week of classes for the online folks, and into final exam for the in-person group. For me, and my faculty, the theme is grading. Ugh!

My undergraduate research students already successfully defended their theses. Congratulations to Angel, Ashley, and Arfan! The grad students are finalizing their work as well, and by the end of the coming week, they’re all done too.

Together with another colleague, we’ll continue to work with at least one of them during the summer to work on a paper based on their work.

Commencement is going to take place on the 21st. Adelphi will take over the Nassau Collisium for the day, and we’ll have an undergraduate ceremony in the morning and a graduate ceremony in the afternoon.

Enrollment numbers are looking strong for all five of our programs, and our enrollment trendline continues to slope up. With all of that, I’ll be more than happy to complete my first year as Chair of Mathematics and Computer Science, and I look forward to all of new things that next academic year has to bring us.

Research Update

It has been some time since I posted here regarding research. That’s because I have been busy with many things as a first-year department chair. We’ve been writing a new Math & CS Student Handbook, we’ve launched a new hybrid in-person/online pathway through the MS in CS, we’ve launched a 100% online MS in CS, and we’ve been working on a lot of new and revised curriculum. It is too early to share details about that, but I’m excited about it!

I have also been working with three undergraduate Honors College thesis students, and with two graduate thesis students on research. Their projects (alphabetical by last name) are:

  • Angel Bajracharya has been working on her Honors College research project in which she is exploring if quantum computing is sufficiently mature to be incorporated into undergradate computer science curricula. She has presented her work at the Northeast Regional Honors Council Conference.

  • Chris Benson is working on exploring the intersection of Enterprise Modeling, Cyber Threat Intelligence, and Threat Modeling to enhance the framework that Sung Kim and I presented in 2021 (see my bibliography).

  • Rodrigo Henriquez is working on a graduate thesis in which he explores the role of malware in human trafficking. This is a topic that is not widely discussed, and his research is showing how much work still needs to be done in that field.

  • Ashley Peralta’s adopts an Information Systems perspective to write her undergraduate Honors College thesis. She explores security and privacy in cloud environments, and applies her finding to secondary and post-secondary education. Ashley also presented her work at the Northeast Regional Honors Council Conference.

  • Arfan Rasheed’s work revolves around Zero Knowledge Proofs. For his undergraduate Honors College thesis, he is exploring to what extent ZKPs are viable replacements for existing authentication mechanisms used in web and mobile apps.

All five students will present their work at the Adelphi Scholarship and Creative Works Conference on April 16.

Managing Email

In a follow-up to my previous post, let me include my full email workflow here.

Email philosophy

  1. Email is a necessary evil. Avoid it as much as possible. There is no joy in email. If using it is inevitable, use it effectively.

  2. Email is not web browsing. Do not use a web browser to process email. Do not use an email client to browse the web.

  3. Email is not a task manager. Do not use email to manage your work. Do not use a task manager to flood your inbox.

  4. Email is a communications tool. Use it to communicate.

Minimize Overhead

Delete and Filter

  • Unsubscribe and delete as much as possible.

  • Be relentless with filtering. The only email that may reach your inbox is stuff that is specifically addressed to you. Mailing lists, automated messages, etc. should all be filtered into their own folders.

  • I use a second-stage email filter that introduces a Purgatory. This is processed after first-stage filtering is done. Everything that is not specifically addressed To: me or doesn’t come from a very short list of allowlisted addresses will go into purgatory. Purgatory is reviewed once a day or so and then follows the workflow described below.

Triage

  • Is the email merely a politeness? Delete it. It is merely informational? Read and either archive or delete it.

  • Is somebody asking a question that I can immediately answer? If so, answer it.

  • Is somebody asking me a question, but I need to do something before I can answer it? Make it a task and move the message into a follow-up folder. When I have the answer, I will find the original message and reply to it.

  • Is somebody asking me to do something? If I am likely to do it, make it a task and let the requestor know when they can expect an answer. Move the message to follow-up. When I am done, find the original message and reply to it. If I am not likely to do it, either delegate or decline, and let the requestor know.

  • At this stage, Inbox should be empty.

Task Management

A task is a unit of work that takes some form of effort to complete.

  1. All tasks must have a clear description.
  2. All tasks must have a deadline. If there is no actual deadline, make one up.

Start of day

  1. Decide which tasks are going to be worked on today and mark them as such.
  2. Prioritize tasks by rearranging them.

Completing tasks

  1. Work on tasks. Keep notes associated with task if it cannot be completed in one session.

  2. Update the deadline if it is unlikely that you will make it. There is no shame in pushing back work that isn’t done. In fact, Agile folks call it backlogging.

  3. Communicate with task requestor.

  4. Mark task as complete after finishing work.

No more tasks left for the day? Decide if more tasks should be completed, and if it is feasible to do so. If so, add one task at a time.

Using Obsidian

Obsidian is a note taking tool. However, notes and To Do items have a lot of overlap. While I use Obsidian for its intended purpose, I also use it as a To Do manager. For this to be most effective, I activated a few community plugins. Specifically for this purpose, Tasks and Templater.

How does it work? My Daily Note template is structured as follows:

Daily Note Template

Each day, as I work through stuff, I add Notes. Usually, these are short bullet lists. If a new To Do items emerges, it goes on top. Use the markdown syntax:

  • #mcs Demo To Do Item 📅 2023-12-31

This is rendered as:

Rendered To Do Item

Tags (here: #mcs) are very helpful in filtering, and a lot of Obsidian’s strength comes from using tags appropriately.

The beauty is that I can now easily run an overview of pending TODO items.

To Do Script

This is rendered as:

Pending To Do Items

The hyperlink connects me back to the note in which the To Do item was created and lets me establish context. The due date is sortable, searchable, and filterable. It is trivial to create a report on ‘Items due today’, for example.

By checking the box, the item is marked as completed. In the note that created the, the box is checked too and the completion date is added.

Completed Note

In today’s daily note, the issue is included as “completed today”!

Completed Note

Lastly: Obsidian stores everything as Markdown files. Even if the tool will eventually go away, I’ll still have all of this easily greppable!

Managing Email

I have been following @mako for quite a while now. He generally writes insightful posts about lots of different things. The most recent item that caught my attention was his “Things I Like” report for 2023. In it, he mentions an “Inbox Allow List”. The idea was attributed to a post by Omar Shahine in which he describes the idea.

I have been struggling with keeping on top of relevant email too. Even though I have a ton of Gmail filters set up already to manage my workflow, this was one that I couldn’t figure out easily. Gmail filters are great, but they do have their limitations!

I have bemoaned the loss of procmail in the past. This time around, timing was good. Classes are over for the semester, and I have a bit of time on my hands. Time to take a look at the Gmail API.

Based on Google’s demo code, I threw together a quick solution: Gmail Purgatory was written in about an hour. The script is a bit ugly, but I might clean it up as time goes on.

For now, the goal is to manage email as follows:

Stage 1 filtering via Gmail rules that will ‘tag’ incoming messages with mailing list labels and never let them hit my Inbox, and which take care of spam filtering.

Stage 2 filtering is that script listed above. It will run every 15 minutes or so when I care enough to be looking at work email (7am - 8pm or so). It takes all email that did make it into my Inbox after stage 1 filtering and moves it into purgatory. Only messages that are specifically allow-listed will remain in my Inbox.

Stage 3 is manual filtering.

That means that my main workflow will now include messages tagged as:

  • 00 - Purgatory; I’ll get to these when I get to them. All messags end up in purgatory based on my script.

  • 01 - Follow Up; Manually moved here after I decide that I need to hold on to this for further action.

  • 02 - Incoming; This contains one sub-label for each mailing list. They gets reviewed based on what the list is for. Most sit there and get scanned once every other week or so; some are monitored more closely. Messages in this label are tagged by Gmail filters.

When email needs to be retained for archival purposes, I’ll remove all labels. In Google’s world, no labels means that they are archived.

I’d be interested in seeing how that plays out, and how I’ll end up tweaking it more.