Joshua Crotts

ljcrotts at iu.edu

About Me: I am a (fifth-year) computer science PhD student and course instructor at Indiana University, where I am primarily a computer science education researcher, but I also have interests in programming language theory, compilers, and logical theory.

I received my Master of Science in Computer Science in 2022, and my Bachelor of Science in Computer Science in 2021, both from the University of North Carolina at Greensboro. I was a graduate instructor's assistant for the computer science department from 2021-2022.

Research Interests: I am broadly interested in understanding how students reason about the programs they design. In particular, my research examines the conceptual structure of programming, the ideas that are often implicit in how a program is organized and constructed, and how we can make that structure more explicit through instruction. For example, rather than seeing an accumulator as simply a variable that changes during a computation, I am interested in whether students understand the role that accumulator plays in constructing a solution contextualized to the problem.

I am also interested in how students communicate their reasoning while programming. Do they focus primarily on syntax and surface-level features of their code? Do they reason about the semantics and roles of programming constructs? Do they connect details of the problem they are solving to the structures they use in their programs? By studying when and why students engage in these different forms of reasoning, I hope to better understand where students struggle and how educators can intervene with pedagogical approaches that make important programming concepts more visible and usable.

In the past, I focused on rhetorical device detection, education, and Prolog with Dr. Nancy L. Green. I have three published papers in inductive logic programming, antithesis detection, and AI argument scheme education. My master's thesis focused on improving the pedagogy of natural deduction proofs and logical thought processing. I currently specialize in programming languages.

Theoretical Computer Science Interests: Computer Science Education, Programming Languages, Compilers, Linguistics Syntax and Semantics, Theory of Computation, Computer Graphics, Algorithm Analysis, Artificial Intelligence

Practical Computer Science Interests: Systems Programming, Embedded Software Engineering, Parallel Computing, Computer Architecture

See also my CV.

Note, this website was heavily inspired by Carlo Angiuli's website. In fact, you could say it was the entire inspiration. :-)

Current and Past Research

A Pedagogically-Focused Translation Pipeline for Designing Loops in Programming
L. Joshua Crotts, Chung-chieh Shan, and Sam Tobin-Hochstadt
FIE 2025 (IEEE Frontiers in Education Conference)
[PDF]

From One Dimension to Another: Raycasting Lab
Joshua Crotts
CCSC SC 2025 (36th Annual Consortium for Computing Sciences in Colleges South Central)
[PDF]

Learning Java: A Test-Driven Approach
Joshua Crotts
Springer, 2024
[Description] [Springer Store] [Amazon Store]

Principles of Computer Science: An Invigorating, Hands-On Approach
Joshua Crotts
J-Ross Publishing, 2023
[Description] [J-Ross Publishing Store] [Amazon Store]

Comparison of Natural Deduction Theorem Provers used in Electronic Tutoring Systems
L. Joshua Crotts and Stephen R. Tate
ICEEL 2022 (6th International Conference on Education and E-Learning)
[PDF]

Promoting a Common Testbed for Natural Deduction Tutoring Systems
L. Joshua Crotts and Stephen R. Tate
ICEEL 2022 (6th International Conference on Education and E-Learning)
[PDF]

Nifty Assignments
Nick Parlante, Julie Zelenski, Stephanie Valentine, Mike Izbicki, Eric S. Roberts, Jed Rembold, Juliette Woodrow, Kathleen Creel, Nick Bowman, Ben Stephenson, Jonathan Hudson, Larry "Joshua" Crotts, Andrew Matzureff.
SIGCSE 2022 (In Proceedings of the 53rd ACM Technical Symposium on Comp. Sci. Ed. Vol. 2)
[PDF] [Assignment Description]

Construction and Evaluation of a Gold-Standard Syntax for Formal Logic Formulas and Systems
Joshua Crotts
M.S. thesis @ UNCG
[PDF]

A First Experiment Using ILP for Argument Mining
Nancy L. Green and L. Joshua Crotts
CMNA 2021 (Workshop on Computational Models of Natural Argument)
[PDF]

Argument Schemes for AI Ethics Education
Nancy L. Green and L. Joshua Crotts
CMNA 2020 (Workshop on Computational Models of Natural Argument)
[PDF]

Towards Automatic Detection of Antithesis
Nancy L. Green and L. Joshua Crotts
CMNA 2020 (Workshop on Computational Models of Natural Argument)
[PDF]

Instructor-On-Record Courses Indiana University

CSCI-C212/A592: Introduction to Software Systems
Fall 2026
[Website]

CSCI-C212/A592: Introduction to Software Systems
Spring 2026
[Website]

CSCI-C212/A592: Introduction to Software Systems
Fall 2025
[Website]

CSCI-C212/A592: Introduction to Software Systems
Spring 2025
[Website]

CSCI-C212/A592: Introduction to Software Systems
Fall 2024
[Website]

CSCI-C212/A592: Introduction to Software Systems
Spring 2024
[Website]

CSCI-C212/A592: Introduction to Software Systems
Fall 2023

Associate Instructor Courses at Indiana University

CSCI-C291: C Programming and Unix
Summer 2026

CSCI-C212/A592: Introduction to Software Systems
Summer 2026

CSCI-C291: C Programming and Unix
Summer 2025

CSCI-C212/A592: Introduction to Software Systems
Summer 2025

CSCI-C212/A592: Introduction to Software Systems
Summer 2023

CSCI-C212/A592: Introduction to Software Systems
Spring 2023

CSCI-C211/H211/A591: Introduction to Computer Science
Spring 2023

CSCI-C211/H211/A591: Introduction to Computer Science
Fall 2022

Teaching Assistant Courses at University of North Carolina Greensboro

CSC-490: Senior Capstone
Spring 2022

CSC-471: Principles of Database Systems
Spring 2022

CSC-462/662: Principles of Operating Systems
Spring 2022

CSC-454/654: Algorithm Analysis and Design
Spring 2022

CSC-362: System Programming
Spring 2022

CSC-490: Senior Capstone
Fall 2021

CSC-471: Principles of Database Systems
Fall 2021

CSC-362: System Programming (two sections)
Fall 2021

PHI-310: Introduction to Formal Logic
Spring 2021

CSC-130: Introduction to Computer Science (two sections)
Spring 2021

PHI-310: Introduction to Formal Logic
Fall 2020

CSC-130: Introduction to Computer Science (two sections)
Fall 2020

CSC-130: Introduction to Computer Science (two sections)
Spring 2020

CSC-130: Introduction to Computer Science
Fall 2019

Luddy Hall 3025Q
700 N Woodlawn Ave
Bloomington, IN 47408