Andrew Gill
Associate Professor
Electrical Engineering and Computer Science
School of Engineering
The University of Kansas
Contact Information
Email: | andygill@ku.edu |
---|---|
Address: | The University of Kansas, 2001 Eaton Hall, 1520 West 15th Street, Lawrence, KS 66045-7621 |
Office: | Room 2024 (Eaton) / Room 252 (Nichols Hall) |
Office hours: | Zoom, MWF 1-2ish |
@_andy_gill | |
Fax: | +1 785-864-3226 (FAX) |
Research
I lead the Functional Programming Group at the University of Kansas. Funded by the National Science Foundation, the International Foundation for Telemetering, and others, we use functional programming to solve problems in ways that are amicable to acceleration, and supports assurance arguments. As a group we make aggressive use of functional languages, extending the technology where needed, and ultimately strive to close gaps between high level specifications and highly efficient implementations. We then deploy our new technologies into diverse application areas, including telemetry, high performance computing, virtual reality and real-time systems.
Teaching
I teach programming in Java (EECS 168 & 368), JavaScript & Scheme (EECS 368), and Haskell (EECS 368, 776, 876). In all these class, we go on to use programming to solve interesting real-world problems. I also lead the EECS Computer Science Capstone (EECS 581, 582). Before KU, I taught graduate-level compilers at the Oregon Graduate Institute (OGI).
ENGR 108 | Introduction to Engineering (CS component) | F13 F14 |
EECS 168 | Programming I | S13 S12 |
EECS 368 | Programming Language Paradigms | F08 F09 F10 F11 F12 S14 F15 F16 S17 F19 |
EECS 581/582 | CS Senior Design I & II | F14 S15 F15 S16 |
EECS 700/776 | Functional Programming / and Domain Specific Languages] | S09 S10 S11 S12 F12 F13 F14 F15 F16 |
EECS 876/800 | Advanced Topics in Functional Languages | S10 S11 S14 |
CSE 511 | Principles of Compiler Design (at OGI) | Summer 02, Summer 03 |
Recent and Pending Publications and Submissions
M. Grebe and A. Gill, “Threading the Arduino with Haskell,” in Post-Proceedings of Trends in Functional Programming, 2017.
A. Gill, “Aframe: A domain specific language for virtual reality: Extended abstract,” in Proceedings of the 2nd International Workshop on Real World Domain Specific Languages, RWDSL17, 2017.
J. Dawson, M. Grebe, and A. Gill, “Composable network stacks and remote monads,” in Proceedings of the 10th ACM SIGPLAN International Symposium on Haskell, Haskell 2017, pp. 86–97, New York, NY, USA: ACM, 2017.
M. Grebe, D. Young, and A. Gill, “Rewriting a shallow dsl using a ghc compiler extension,” in Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2017, (New York, NY, USA), pp. 246–258, ACM, 2017.
M. Grebe and A. Gill, “Haskino: A remote monad for programming the Arduino,” in Practical Aspects of Declarative Languages, Lecture Notes in Computer Science, 2016.
A. Farmer, N. Sculthorpe, and A. Gill, “Reasoning with the HERMIT: Tool support for equational reasoning on GHC Core programs,” in Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, Haskell 2015, (New York, NY, USA), pp. 23–34, ACM, 2015.
A. Gill, N. Sculthorpe, J. Dawson, A. Eskilson, A. Farmer, M. Grebe, J. Rosenbluth, R. Scott, and J. Stanton, “The remote monad design pattern,” in Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, (New York, NY, USA), pp. 59–70, ACM, 2015.
Professional Activities
2019
- PC Member, Workshop on Real World Domain Specific Languages, 2019
2018
- PC Member, The 24th Annual IEEE International Symposium on Field-Programmable Custom Computing Machines, 2018
- PC Member, Workshop on Real World Domain Specific Languages, 2018
- PC Member, ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, 2018
2017
- PC Member, The 24th Annual IEEE International Symposium on Field-Programmable Custom Computing Machines, 2017
- PC Member, Workshop on Real World Domain Specific Languages, 2017
2016
- Visiting Professor, Facebook
- PC Member, 2016 Workshop on Domain-Specific Language Design and Implementation, 2016
- PC Member, ACM SIGPLAN Haskell Symposium, 2016
- PC Member, Workshop on Real World Domain Specific Languages, 2016
- PC Member, The 23rd Annual IEEE International Symposium on Field-Programmable Custom Computing Machines, 2016
- PC Member, Workshop on Partial Evaluation and Program Manipulation, 2016.
2015
- Editor, SIGPLAN Notices & ACM SIGPLAN Information Director, 2011-2015
- Faculty Attendee, KU Startup School, 2015
- Reviewer, PeerJ Computer Science, 2015
- PC Member, Symposium on High Level Languages for Parallel Computing on FPGAs, 2015
- PC Member, International Symposium on the Implementation and Application of Functional Languages, 2015
- PC Member, Trends in Functional Programming, 2015
- PC Member, ACM SIGPLAN International Conference on Functional Programming, 2015
- PC Member, The 22nd Annual IEEE International Symposium on Field-Programmable Custom Computing Machines, 2015
- Invited participant, Dagstuhl Seminar on Domain-Specific Languages, 2015
2014
- Invited observer, IFIP Working Group 2.1, 2014
- PC Member, 7th International Conference on Software Language Engineering, 2014
- PC Member, 24th International Conference on Field Programmable Logic and Applications, 2014
2013
- PC Member, Workshop on Haskell And Rewriting Techniques (HART), 2013
- PC Member, 23nd International Conference on Field Programmable Logic and Applications, 2013
- PC Member, International Symposium on High-level Parallel Programming and Applications, 2013
- PC Member, Trends in Functional Programming (TFL’13)
- PC Member, 6th International Conference on Software Language Engineering, 2013
2012
- Co-Chair, Midwest Verification Day, Lawrence, KS, 45 attendees, 2012
- PC Member, 22nd International Conference on Field Programmable Logic and Applications, 2012
- PC Member, 8th ACM SIGPLAN Workshop on Generic Programming, 2012
- PC Member, Reconfigurable Architectures Workshop, 2012
- PC Member, High-level programming for heterogeneous and hierarchical parallel systems, 2012
- Invited observer, IFIP Working Group 2.8, 2012
- PC Member, ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM’12)
2011
- Chair & Editor, International Symposium on the Implementation and Application of Functional Languages (IFL’11)
- Member, ACM SIGPLAN Haskell Symposium Steering Committee, 2008-2011 (Chair in 2011)
- PC Member, ACM SIGPLAN Haskell Symposium (HASKELL’11)
- Invited observer, IFIP Working Group 2.1, 2011
2010
- Chair, ICFP Program Committee Workshop, Cambridge, England, 2010
- PC Member, ACM SIGPLAN International Conference on Functional Programming (ICFP’10)
- PC Member, ACM SIGPLAN Symposium on Practical Aspects of Declarative Languages (PADL’10)
- PC Member for the Workshop on Mathematically Structured Functional Programming (MSFP’10)
- PC Member for the Symposium on the Implementation and Application of Functional Languages (IFL’10)
- PC Member for the ACM SIGPLAN International Conference on Functional Programming (ICFP’10)
- PC Member for Practical Aspects of Declarative Languages (PADL’10)
2009
- PC Member for the Symposium on the Implementation and Application of Functional Languages (IFL’09)
- Chair, ICFP Programming Contest, 2009
- Chair, Midwest Programming Languages Day, 2009
- PC Member for the Symposium on the Implementation and Application of Functional Languages (IFL’08)
- PC Co-Chair for the Practical Aspects of Declarative Languages (PADL’09)
2008
- PC Chair for the ACM SIGPLAN Haskell Symposium (HASKELL’08)
- PC Member for Mathematically Structured Functional Programming (MSFP’08)
2007
- PC Member for the ACM SIGPLAN Haskell Workshop (HASKELL’07)
2006
- Chair, First International Glasgow Haskell Compiler “Hackathon”, 2006, 55 attendees.
2000
- PC Member, ACM SIGPLAN Haskell Workshop, 2000
Professional Awards
- John E. and Winifred E. Sharp Teaching Professorship, for ``demonstrated excellence in engineering education and dedication to the University, the School, and the Department’’, University of Kansas School of Engineering, 2016-2019
- Millar Scholar, for overall achievement during the past academic year, University of Kansas School of Engineering, 2015.
- Harry Talley Excellence in Teaching Award, for contributed significantly to undergraduate education and developing a strong rapport with students both inside and outside of the classroom, KU EECS Department, 2015.
- National Science Foundation CAREER Award, 2014.
- Leading Light Award, for contributing to the research enterprise at the University of Kansas in a major way, Office of the Provost & Office of Research and Graduate Studies, 2014.
- Miller Professional Development Award for distinguished research in the engineering profession, University of Kansas School of Engineering, 2014.
- Distinguished Visitor Fellowship, Scottish Informatics and Computer Science Alliance, 2013.
- Excellence in Teaching award, Center for Teaching Excellence, University of Kansas, 2010.
- Harry Talley Excellence in Teaching Award, for contributed significantly to undergraduate education and developing a strong rapport with students both inside and outside of the classroom, KU EECS Department, 2009.
Bio and Background
Andrew (Andy) Gill is an Associate Professor of Electrical Engineering and Computer Science at the University of Kansas. He was born and educated in Scotland, and has spent his professional career in the United States. Andy received his Ph.D. from the University of Glasgow in 1996, and has split his time since between industy and adaemdia, doing applied functional programming and compiler deveoplemnt.
- In 1996 through 1999, he worked as a compiler developer (Hewlett Packard, Metrowerks, Semantic Designs),
- One year in academia as a principal project scientist (Oregon Graduate Institute).
- In 2000, he co-founded Galois, a technology transfer company that used language technologies to create trustworthiness in critical systems.
- In 2008 he joining the University of Kansas, being awarded tenure in 2014. From 2016 to 2019, he held the John E. and Winifred E. Sharp Teaching Professorship.
- In 2017 and 2018, he took a two year leave from academia, working on machine learning accelerators and compilers at Google.
- In 2019, he returned to Kansas and teaching.
Since returning to academia, Gill has targeted the application areas of telemetry and signal processing, specializing in generating high performance circuits from specifications. His research interests include optimization, domain-specific languages, language design, debugging, and dependability. The long-term goal of his research is to offer engineers and practitioners the opportunity to write clear and high-level executable specifications that can realistically be compiled into efficient implementations.
In 2017, Gill took a job at X, the moonshot factory, doing applied functional programming in industry.