###############################
Software And Systems Laboratory
###############################

The Software and Systems Laboratory (SSL)
=========================================

The **Software and Systems Laboratory (SSL)** at Loyola University Chicago is an
interdisciplinary research space where computer systems and applied software engineering
intersect with **innovation and entrepreneurship**. Led by `George K. Thiruvathukal <https://gkt.sh>`_
(Professor and Chair of CS) and `Neil Klingensmith <https://neilklingensmith.com/>`_
(Assistant Professor of CS), the lab occupies a unique position at the
**hardware/software interface**. By bridging the gap between computer science/software engineering
and computer engineering, we enable researchers to build impactful, full-stack
solutions for complex STEAM-related problems.

While our core mission is preparing the next generation of academic researchers,
we greatly value participation from individuals with interests in **business and leadership**.
We believe that technical excellence is amplified by entrepreneurial acumen, and
we welcome collaborators—from within Loyola and beyond—who are driven by project
management and organizational growth. Following a strict commitment to **openness**,
we prioritize open-source development, reproducible results, and a diverse
environment that welcomes all individuals regardless of background. Whether you
are an aspiring academic or a future tech entrepreneur, the SSL provides the
collaborative framework to turn creative ideas into real-world innovation.

The Software and Systems Laboratory (SSL)
=========================================

The **Software and Systems Laboratory (SSL)** at Loyola University Chicago is an
interdisciplinary hub where computer systems and applied software engineering
intersect with **innovation and entrepreneurship**. Led by `George K. Thiruvathukal <https://gkt.sh>`_
(Professor and Chair of CS) and `Neil Klingensmith <https://neilklingensmith.com/>`_
(Assistant Professor of CS), the lab occupies a unique position at the
**hardware/software interface**. By bridging the gap between software engineering
and computer engineering, we enable researchers to build impactful, full-stack
solutions for complex STEAM-related problems.

Our current projects focus on
  empirical software engineering,
  energy-efficient and performance optimization using large-language models (LLMs),
  robot learning,
  interdisciplinary applications of AI to support healthcare and well being.
  (Details of each of these projects are forthcoming.)

While our core mission is preparing the next generation of academic researchers,
we greatly value participation from individuals with interests in **business and leadership**.
We believe that technical excellence is amplified by entrepreneurial acumen, and
we welcome collaborators—from within Loyola and beyond—who are driven by project
management and organizational growth. Following a strict commitment to **openness**,
we prioritize open-source development, reproducible results, and a diverse
environment that welcomes all individuals regardless of background. Whether you
are an aspiring academic or a future tech entrepreneur, the SSL provides the
collaborative framework to turn creative ideas into real-world innovation.

Information for Prospective Research Students
*********************************************

.. note::

    This information is accurate as of December 29th, 2025

I receive many inquiries from students within and outside of Loyola University
Chicago who are interested in joining my research group and/or seeking MS or PhD
admission.

To help set expectations and reduce confusion, this page explains how admissions
and funding work at Loyola University Chicago and what I seek in prospective
members of the Software and Systems Laboratory (SSL), *which I direct*.

Even though this page is primarily intended for prospective PhD students, many
of the same principles apply to current master's and undergraduate students.

Please read this page carefully before contacting me by e-mail with questions
about joining the lab.

Students Not Yet Applied to Loyola Must Follow These Steps
==========================================================

If you are interested in working with the Software and Systems Laboratory,
please follow these guidelines prior to e-mailing me or requesting a meeting:

1. **Submit a complete application** to Loyola University Chicago at
   https://gpem.luc.edu/.
   I am unable to meet with students who have not yet applied through the
   university's official process.

2. **Ensure that your Statement of Purpose clearly articulates your connection
   to SSL**. Your application should describe why your background and goals align with our
   research directions, what areas of SSL's work interest you, and how you see
   yourself contributing to ongoing projects.

3. **After submitting your application, you may request an appointment via Calendly**
   (https://calendly.com/gkthiruvathukal). I will only consider meeting with
   applicants who already have an active application on file. This policy is not
   meant to be discouraging; it is necessary given the volume of inquiries and
   my responsibility to prioritize active applicants.

4. **Part-time applicants must have a clear and documented funding plan**,
   including explicit employer support to dedicate substantial time to research.
   Without this, part-time study is not compatible with the expectations and
   demands of SSL projects. There are many more established PhD programs that
   welcome part-time professional applicants. We're not quite ready to be one of
   them.

Admissions and Funding Considerations
=====================================

All undergraduate and graduate admissions at Loyola University Chicago are
handled centrally by the university. Faculty members, including department
chairs, cannot personally admit students or guarantee financial support.

For the PhD program, a departmental committee reviews all applications and makes
admissions decisions. We have a limited number of departmental teaching
assistantships each year. Research assistantships depend on whether individual
faculty members have active grant funding. Even when when a faculty member has
funding, they may not have sufficient resources to support an admitted student
for their full studies.

Students who hold national or international fellowships are especially
encouraged to apply. Applicants with fellowships that provide at least three
years of support are typically the most competitive.

Admission to the MS or PhD program does not guarantee placement in my lab.
Lab membership depends on research alignment, preparation, and available
funding. Prospective students should be prepared to explain how their interests
connect to ongoing work in the group.

.. warning::
  Generic or mass-mailed inquiries cannot===and will not===be considered.
  Lengthy e-mails that do not demonstrate familiarity with our research and a
  clear rationale for joining SSL are likely to be ignored. We are a savvy AI
  research group; we can tell when you are using AI tools to draft your messages
  and will ignore such messages.

Course-Based Research Experiences (CUREs) for Current Undergraduates and Master's Students
==========================================================================================

.. note::

    This is a new requirement for all undergraduate (BS) and graduate master's
    (MS, not PhD) students, effective January 2026.

All undergraduate students wishing to conduct research with me will be expected
to enroll in my **course-based undergraduate research experience (CURE)** rather
than pursuing ad hoc or informal research arrangements.  Loyola's CURE program
is designed to provide students with a structured, mentored research experience
embedded within a credit-bearing course, emphasizing authentic inquiry,
collaboration, and scholarly practice. Additional information about the CURE
initiative is available through the College of Arts and Sciences at:
https://www.luc.edu/cas/academics/cures/.

A central purpose of the CURE model is to provide **structure, accountability,
and shared expectations** for student research. In the Software and Systems
Laboratory, this structure is realized through a set of **common research
milestones** that all students are expected to meet. These milestones typically
include the development of a research proposal, a mid-semester progress review,
the creation of a research artifact (such as software, data, or experimental
results), and a final written report (e.g., ArXiv, conference, or journal paper
draft) and presentation. Students are expected to spend **substantial and
regular time engaged in lab-based research**, rather than treating research as
fully asynchronous or independent work. This amount of time should be no less
than 10 hours/week, inclusive of our regular lab meetings.

Each research project (or project idea) operates as a **small research team**,
often aligned with or extending active doctoral research in the lab. **Mandatory
weekly meetings** are held for each research team to review progress, discuss
technical and research challenges, and plan subsequent work. Students should
expect to interact regularly with me and with doctoral students in the lab as
part of this collaborative research process.

This research experience is offered as **COMP 388-005** in Spring 2026, with me
serving as the primary instructor. You are eligible to take this course, even if
you have taken independent study previously with me or other professors. A
**COMP 488** section will also be available for master's students who wish to
engage in research. These courses are **not intended for doctoral students**,
who are expected to be largely self-directed at this stage of their training.
Projects in COMP 388 and COMP 488 are closely integrated with ongoing doctoral
research in the Software and Systems Laboratory.

All students enrolled in the CURE sections will be expected to produce a **final
written report of arXiv quality**, prepared using **LaTeX** and following the
conventions of professional computer science research papers. This includes
clear problem formulation, appropriate background and related work, a
description of methods or systems, results or evaluation where applicable, and
thoughtful discussion. While submission to arXiv or a conference is not
guaranteed, the expectation is that the work is written at a level that would
make such dissemination plausible.

Enrollment in these sections is **by permission only**. I will also be combining
these offerings with my **COMP 398 Independent Study** section, which allows
students to earn **Engaged Learning credit** when required for graduation.
However, I will no longer supervise independent studies that are not directly
connected to ongoing research in the Software and Systems Laboratory. Students
seeking independent or exploratory project work unrelated to active SSL research
are encouraged to reach out to other faculty members. As department chair, my
research supervision capacity is limited, and I need to focus my time on
students contributing to active, lab-aligned research efforts.

Expectations for Prospective and Current SSL Members Alike
==========================================================

As director of the Software and Systems Laboratory, I oversee a research group
focused on systems, high-performance computing, software engineering,
AI-assisted scientific computing, and interdisciplinary work that spans
computing and other fields. Because of this breadth and the applied nature of
our research, we look for students who have strong foundational preparation and
can grow into collaborative, long-running projects.

A solid understanding of fundamental computer science topics is essential. This
includes experience with advanced data structures, systems programming,
operating systems, and programming languages. Strong Linux/Unix proficiency is
expected, as our work involves servers, distributed systems, and HPC
environments.

We place a high value on excellent software engineering skills, including the
use of open-source tools, version control (especially GitHub), testing
practices, documentation, and collaborative workflows. Depending on the project,
familiarity with mathematics (discrete mathematics, probability, and linear
algebra) may be helpful.

Our group actively uses AI tools as part of research workflows, but we expect
students to engage with these tools critically and not as substitutes for
understanding. Intellectual curiosity, a willingness to learn, and comfort with
complex, open-ended problems are crucial. Students should be able to give and
receive constructive feedback.

Communication skills matter. SSL is not a code-only research group; students are
expected to write papers, prepare presentations, and contribute to discussions
about research methods and evaluation.

Conduct Expectations
====================

Professional conduct, reliability, and respect for others are essential to
success. We maintain a collaborative, inclusive environment and expect all
members to uphold recognized community standards.

Two examples that reflect the spirit of how we operate are:

* ACM Code of Ethics and Professional Conduct: https://www.acm.org/code-of-ethics
* Python Community Code of Conduct: https://www.python.org/psf/codeofconduct/

These documents articulate widely accepted expectations for respectful behavior,
professionalism, equity and inclusion, and responsible conduct in computing. We
expect all SSL members to engage with colleagues in ways consistent with these
principles.

Collaboration Model
===================

SSL is a highly collaborative research group. Students typically begin by
joining an existing project, learning the technical foundation, research
questions, and workflow conventions of the group. As they develop expertise,
students may take on leadership roles and help shape new project directions.

Purely solo projects are rare in our group; however, many solo projects often
originate as side projects and become SSL projects. Students should expect to
work closely with peers, faculty, and sometimes collaborators at Argonne
National Laboratory and other universities (e.g. Purdue University, Northern
Illinois University, Northwestern University, and Arizona State University,
among others).

As a **world-focused** laboratory, we greatly value diversity, equity, and
inclusion, and we welcome students from **all backgrounds** who are committed to
a respectful and collaborative research environment.

Please see my presentation on `Inclusive Mentoring <https://doi.org/10.6084/m9.figshare.30501749.v1>`__ to understand my mentoring approach.

Recommended Undergraduate Course Preparation
============================================

While formal admissions decisions are made centrally by the university,
successful applicants to the Software and Systems Laboratory (SSL) typically
demonstrate strong preparation in several areas of computer science that align
with the lab's research directions. The following undergraduate courses (from
the `Loyola University Chicago Computer Science curriculum <https://catalog.luc.edu/undergraduate/arts-sciences/computer-science/computer-science-bs/>`__)
are especially relevant for students interested in systems, high-performance
computing, software engineering, and programming languages.

These courses are not strict requirements as we welcome students at all levels
(freshman and beyond), but students who have taken most of them—or equivalent
courses elsewhere—are usually better prepared for SSL's *graduate* research
activities.

**Core Systems and Architecture**

- COMP 264 — Introduction to Computer Systems
  Provides essential foundations in low-level programming, memory models, and
  machine-level execution.
- COMP 310 — Operating Systems
  Covers concurrency, scheduling, resource management, and systems-level design
  principles.

**High-Performance and Distributed Computing**

- COMP 339 — Distributed Systems
  Important for understanding large-scale systems, coordination, distributed
  communication, and reliability.
- COMP 343 — Computer Networks
  Supports work involving data movement, performance tuning, and distributed
  protocol behavior.
- COMP 364 — High Performance Computing
  Directly aligned with SSL's emphasis on parallelism, scalability, and
  scientific computing.

**Software Engineering and Collaborative Development**

- COMP 330 — Software Engineering
  Reinforces structured development practices, testing, documentation, and
  collaborative open-source workflows.

**Programming Languages and Algorithmic Foundations**

- COMP 363 — Design and Analysis of Computer Algorithms
  Critical for algorithmic thinking, performance reasoning, and efficient
  problem-solving.
- COMP 371 — Programming Languages
  Useful for understanding language features, runtime systems, compilers, and
  program analysis.

**Data Structures and Core CS Fundamentals**

- COMP 271 — Data Structures I
- COMP 272 — Data Structures II

**Artificial Intelligence and Machine Learning**

- COMP 378 — Artificial Intelligence
  Introduces core AI theory and programming concepts.
- COMP 379 — Machine Learning
  Covers supervised/unsupervised learning, predictive modelling and data-driven
  algorithms.
- COMP 387 — Deep Learning
  Focuses on neural networks, modern architectures, and applications in vision
  and language.

These courses provide the fundamental data structure knowledge necessary for
systems programming, distributed systems, and high-performance software design.

Students who have completed most of the courses listed above—or who can
demonstrate equivalent experience through industry work, open-source
contributions, or independent projects—are typically well prepared to engage
with SSL's research projects and collaborate effectively within the group.

Preparing a Strong Case Join the Software and Systems Laboratory
================================================================

Students who wish to express interest in working with the lab should begin by
reading several of our recent publications and briefly describing how their
background aligns with specific projects.

Thoughtful inquiries that demonstrate familiarity with our work are far more
likely to be considered than generic requests.

Prospective students should also be prepared to learn independently, read papers
on their own initiative, and demonstrate evidence of technical depth through
coursework, projects, open-source contributions, or prior research experience.

This page serves as a starting point. For formal application procedures, please
consult Loyola University Chicago's `official admissions resources <https://gpem.luc.edu>`__.


.. toctree::
   :maxdepth: 2
   :caption: Pages
   :hidden:

   publications/index.rst
   members
   projects
