Jeremy Siek is an Associate Professor of Computer Science in the School of Informatics and Computing at Indiana University. Jeremy teaches courses in programming, programming languages, compilers, logic, and other areas of computer science. Jeremy designs new language features to help programmers create and use software libraries and domain-specific languages, especially generic and high-performance ones. In particular, Jeremy invented the gradual typing approach to mixing static and dynamic type checking within the same language. Prior to that, Jeremy authored the Boost Graph Library and attempted to add concepts to C++. Jeremy is a member of the Programming Languages Group at IU and the Center for Research in Extreme Scale Technologies (CREST).
- ICALP 2015: 42nd International Colloquium on Automata, Languages, and
Programming, Call For Papers.
- STOP 2015: Scripts to Programs Workshop, co-located with ECOOP 2015.
I’ve been fortunate to see some of my ideas get used in the software industry:
- Facebook has added gradual typing to PHP. See the article in Wired magazine.
- The implicits feature of Scala was inspired by my work on concepts for C++.
Recent Papers and Talks
- Blame and coercion: Together again for the first time with Peter Thiemann and Philip Wadler. Accepted for PLDI 2015 (November 2014 draft). pdf
- Refined Criteria for Gradual Typing with Michael M. Vitousek, Matteo Cimini, and John Tang Boyland. Accepted for SNAPL 2015. pdf Isabelle
- Monotonic References for Efficient Gradual Typing with Michael M. Vitousek, Matteo Cimini, Sam Tobin-Hochstadt, and Ronald Garcia. Accepted for ESOP 2015, October 2014. pdf Isabelle reviews
- Blame for All (revised) with Amal Ahmed, James T. Perconti, and Philip Wadler. Draft, August 2014. pdf
- Design and Evaluation of Gradual Typing for Python with Michael M. Vitousek, Andrew Kent, and Jim Baker. Accepted for DLS 2014, August 2014. pdf
- A Mechanized Semantics for System F via the F Machine (slides from IU Logic Seminar) pdf
- Meta-tracing makes a fast Racket with Carl Friedrich Bolz, Tobias Pape, and Sam Tobin-Hochstadt. In Dyla’14, June 2014. pdf
- Monotonic References for Gradual Typing with Vitousek, includes proof of type safety mechanized in Isabelle arxiv
- Compile-time Reflection and Metaprogramming for Java with Weiyu Miao. In PEPM 2014. pdf
- CSCI-B522: Programming Language Foundations Spring 2015
- CSCI-P523: Programming Language Implementation Spring 2014
- CSCI-C343: Data Structures Fall 2013, Fall 2014
- C++, Short and Sweet, an Online C++ Course for Beginners at Udemy.
Previous courses at Univ. of Colorado:
- Fall 2012: Compiler Construction
- Fall 2011: Fundamentals of Programming Languages
- Fall 2011: Discrete Mathematics for Computer Engineers
- Spring 2011: Discrete Mathematics for Computer Engineers
- Spring 2011: Theorem Proving in Isabelle
- Fall 2010: Compiler Construction
CS MS Student Advising
I am available for walk-in advising in my office (LH 230D) on Tuesdays and Thursdays 3:00-4:00pm. If you have a question about fulfilling your MS degree requirements, come with your CS MS Plan filled out. (Here is an example plan.) You may also send me email, with the subject line beginning with “CS MS:”, and I will read and respond to those emails during the walk-in advising time, but giving priority to students who are there in person. If you email me your CS MS Plan, make sure that it is a plain text file, not another format such as MS Word.
Information for Students at IU
- How do I deal with being on a waitlist during course registration?
- What are the requirements for a CS MS degree?
- What are the requirements for a CS PhD degree?
- John Michalakes (High-Performance Computing for Wind Energy Research)
- Thomas Nelson (Optimization of linear algebra kernels)
- Michael M. Vitousek (Gradual Python)
- Chris Wailes (Chapel and Parallel Programming Languages)
- Weiyu Miao (Generic Programming, Metaprogramming)
- Geoffrey Belter (Apple)
Ph.D. thesis: Efficient Generation of Sequences of Dense Linear Algebra through Auto-Tuning
- Shashank Bharadwaj (VMware)
- Jonathan Turner (Microsoft)
- Erik Silkensen (Ph.D. student at Northeastern Univ.)
- Neelam Agrawal (National Instruments)
- Sri Teja Basava (National Instruments)
- Ian Karlin (Postdoc at Lawrence Livermore National Laboratory)
- Justin Gottschlich (Intel Research Labs)
Ph.D. thesis: Invalidating Transactions: Optimizations, Theory, Guarantees, and Unification
- Moss Prescott (SlamData)
M.S. thesis: Speaking for the Trees: a New (Old) Approach to Languages and Syntax
- Christopher Schwaab (Ph.D. student at the Univ. of St. Andrews)
- David Broman (Post-doc at UC Berkeley)
Ph.D. thesis: Meta-Languages and Semantics for Equation-Based Modeling and Simulation