Saverio Perugini, Ph.D.
Teaching and Scholarship
Veritatem facientes in caritate. ✞ JMJ ✞ Omnia in Christo. Pro Deo et Patria
Professor of Computer Science, Ave Maria University
In July 2023, I joined the faculty at Ave Maria University to start the computer science program. This page catalogues my teaching materials and activities at the University of Dayton, where I spent the past eighteen years as a faculty member in the Department of Computer Science. I will be progressively populating this page with new course materials I develop at Ave Maria University. I hope both students and faculty will find these materials helpful.At the bottom of this page, you can find a list of the refereed papers I have published in scholarly journals and in the proceedings of conferences and workshops.
Recent News
View Dr. Perugini's short course An Introduction to Computer Science that is part of the inaugural Ave Maria University The Pursuit of Wisdom short course series.
Podcast of the interview Dr. Perugini did on artificial intelligence on July 23, 2024 on the The Catholic Theology Show, hosted by Dr. Michael Dauphinais.
View the New Brochure for the Computer Science Program at Ave Maria University.
Webinar About the New Computer Science Program at Ave Maria University
Podcast of the interview Dr. Perugini did on artificial intelligence on September 15, 2023 on the The Drew Mariani Show, which airs on Relevant Radio.
Podcast of the interview Dr. Perugini did on artificial intelligence on June 22, 2023 on the Treasure of Faith radio show, which airs on Divine Mercy Radio
My programming languages textbook Programming Languages: Concepts and Implementation was published by Jones & Bartlett Learning and is available here.
Courses and Course Lecture Notes
Introduction to Computer Programming (CSCI 151) | Discrete Structures and Functional Programming (CSCI 152) |
Algorithms and Programming (CSCI 251) | Data Structures and Algorithms (CSCI 252) |
Automata Theory (CSCI 350) | Programming Languages (CSCI 370) |
Operating Systems (CPS 356) (older notes) | Emerging Programming Languages (CPS 452) |
Unix/Linux and C Programming (CPS 444/544) (older notes) | Advanced Unix/Linux Programming (CPS 445) |
Database Management Systems (CPS 430/542) | Advanced Topics in Database Systems (CPS 432/562) |
Artificial Intelligence and Machine Learning (CSCI 470) |
Helpful Pages
Prior Courses (at Ave Maria University)
(links to webpages of each of my prior course offerings)
CSCI 150. Introduction to Computing (Fall 22)
CSCI 151. Introduction to Computer Programming (Fall 23 24, Spring 23)
CSCI 152. Discrete Mathematics and Functional Programming (Fall 23, Spring 25)
CSCI 251. Algorithms and Programming (Spring 24)
CSCI 252. Data Structures and Algorithms (Fall 24)
CSCI 270. Web/Mobile App Development (Spring 24)
CSCI 350. Automata Theory (Spring 24)
CSCI 350. Programming Languages (Fall 24)
CSCI 470. Artificial Intelligence and Machine Learning (Spring 23 25)
Prior Courses (at the University of Dayton)
(links to webpages of each of my prior course offerings)CPS 150. Algorithms and Programming I (Winter 05, Fall 04)CPS 250. Introduction to Computer Organization (Fall 13 12)CPS 341. Discrete Structures (Spring 22)CPS 343/543. Comparative Languages (Spring 14 13 11 10 09, Winter 08 07 05)CPS 352. Concepts and Implementation of Programming Languages (Spring 22, Fall 21, Spring 15)CPS 356. Operating Systems
(Spring 20, Fall 19, Spring 19, Fall 18, Spring 18, Fall 17, Spring 17, Fall 16, Spring 16, Fall 15, Spring 15,
Fall 14, Spring 14, Fall 13, Spring 13, Fall 12, Spring 11, Fall 10, Spring 10, Fall 09, Spring 09)CPS 410. User Interface Design and Development (Spring 22, Fall 21)CPS 430/542. Database Management Systems (Fall 07 06 05)CPS 432/562. Database Management Systems II (Winter 06)CPS 444/544. Unix/Linux Programming (Spring 20, Fall 19, Spring 19, Fall 18, Spring 18, Fall 17, Spring 17, Fall 16 15 14 13 12 10 09 08 06 05)CPS 445. Systems Programming II (Winter 07 06)CPS 452/592. Emerging Programming Languages (Fall 21, Fall 19, Spring 17, 16)CPS 482/582. Automata Theory (Spring 20)BEST 2009/10
(summer program in science, engineering, and business for high school students from Singapore, China, and the greater Dayton area)CPS 111. Introduction to Personal Computers
(Summer I 16 15 14 13 12 11 10 09 08, Spring 19 18 16 15 13 11 10 09, Winter 08, Fall 18 17 10 09 08 07)
Quick Reference Sheets
PUBLISHED PAPERS
Rowland, Z.S. & Perugini, S. (2025). The formal semantics and implementation of a domain-specific language for mixed-initiative dialogs. The Art, Science, and Engineering of Programming, 10(1), article 7, 44 pages. [DOI/PDF].
Perugini, S., Yao, Z., Phung, P.H., Rettig, A., Bryant, A.R., Baldwin, R.O., Wright, D.J., & Gallagher, J.C. (2022). An Active Learning Laboratory Manual for Teaching a Contemporary Undergraduate Operating System Course. Journal of Open Source Education, 5(58), 162. [DOI/PDF].
Williams, B.M. & Perugini, S. (2020). Staging human-computer dialogs: An application of the Futamura Projections. Journal of Computing Sciences in Colleges, 36(4), 83-92. USA: Consortium for Computing Sciences in Colleges. [DOI | preprint PDF | postprint PDF]. (Also appears as Williams, B.M. & Perugini, S. (2018). Staging human-computer dialogs: An application of the Futamura Projections (Technical Report No. arXiv:1811.05536 [cs.PL]). Cornell University Library: Computing Research Repository. [PDF | abstract].)
Perugini, S. & Williams, B.M. (2020). C + Go: An alternate approach toward Linux programming course. In Heckman, S., Monge, A., & Cutter, P. (Eds.), Proceedings of the 50<sup>st</sup> ACM Technical Symposium on Computer Science Education (SIGCSE), 933–939. New York, NY: ACM Press. [DOI | preprint PDF].
Perugini, S. & Wright, D.J. (2020). Communicating Sequential Processes in the Go programming language. [Extended Abstract]. Journal of Computing Sciences in Colleges, 35(7), 101-102. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Perugini, S. (2019). Emerging languages: An alternative approach to teaching programming languages. Journal of Functional Programming, 29, E13. Cambridge, UK: Cambridge University Press. [DOI | WWW | PDF | preprint PDF].
Watkin, J.L., Volk, A.C., & Perugini, S. (2019). An introduction to declarative programming in CLIPS and PROLOG. In Arabnia, H.R., Deligiannidis, L., Grimaila, M.R., Hodson, D.D., & Tinetti, F.G. (Eds.), Proceedings of the 17<sup>th</sup> International Conference on Scientific Computing (CSC), 105-111. USA: Computer Science Research, Education, and Applications Press. (Publication of the World Congress in Computer Science, Computer Engineering, and Applied Computing (CSCE).) [preprint PDF | postprint PDF].
Perugini, S. (2019). Revitalizing the Linux programming course with Go. Journal of Computing Sciences in Colleges, 35(5), 61-69. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Perugini, S. & Wright, D.J. (2019). Concurrent programming with the Actor model in Elixir [Extended Abstract]. Journal of Computing Sciences in Colleges, 35(5), 111-114. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Buck, J.W. & Perugini, S. (2019). An interactive, graphical CPU scheduling simulator for teaching operating systems. Journal of Computing Sciences in Colleges, 35(5), 76-87. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Arnold, Z.L. & Perugini, S. (2019). An introduction to concatenative programming in Factor. Journal of Computing Sciences in Colleges, 35(5), 70-77. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Perugini, S. & Wright, D.J. (2019). Developing a contemporary and innovative operating systems course [Birds-of-a-Feather Abstract]. In Hawthorne, E.K. & Pérez-Quiñones, M.A. (Eds.), Proceedings of the 50<sup>th</sup> ACM Technical Symposium on Computer Science Education (SIGCSE). New York, NY: ACM Press. [DOI | PDF | another PDF].
Buck, J.W. & Perugini, S. (2019). An interactive, graphical simulator for teaching operating systems [Demonstration Abstract]. In Hawthorne, E.K. & Pérez-Quiñones, M.A. (Eds.), Proceedings of the 50<sup>th</sup> ACM Technical Symposium on Computer Science Education (SIGCSE). New York, NY: ACM Press. [DOI | PDF | another PDF].
Buck, J.W. & Perugini, S. (2019). An interactive, graphical CPU scheduling simulator for teaching operating systems (Technical Report No. arXiv:1812.05160 [cs.OH]). Cornell University Library: Computing Research Repository. [PDF | abstract].
Prince, D.P. & Perugini, S. (2018). An application of the Actor model of concurrency in Python: A Euclidean rhythm music sequencer. Journal of Computing Sciences in Colleges, 34(1), 35-43. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Perugini, S. & Watkin, J.L. (2018). ChAmElEoN: A customizable language for teaching programming languages. Journal of Computing Sciences in Colleges, 34(1), 44-51. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Perugini, S. (2018). The design of a emerging/multi-paradigm programming languages course. Journal of Computing Sciences in Colleges, 34(1), 52-59. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Perugini, S. & Wright, D.J. (2018). Developing a contemporary operating systems course [Extended Abstract]. Journal of Computing Sciences in Colleges, 34(1), 155-156. USA: Consortium for Computing Sciences in Colleges. [DOI | PDF].
Buck, J.W., Perugini, S., & Nguyen, T.V. (2018). Natural language, mixed-initiative personal assistant agents. In Kim, D.S., Lee, K., & Ushiama, T. (Eds.), Proceedings of the 12<sup>th</sup> International ACM Conference on Ubiquitous Information Management and Communication (IMCOM), 82:1-82:8. New York, NY: ACM Press. [DOI | PDF].
Buck, J.W., Perugini, S., & Nguyen, T.V. (2017). CSE: U: Mixed-initiative personal assistants. ACM Student Research Competition Grand Finals Candidates, 2016-2017; Undergraduate Student Winners. [PDF].
Buck, J.W. & Perugini, S. (2017). Mixed-initiative personal assistants [Extended Abstract]. In Barnes, T. & Garcia, D. (Eds.), Proceedings of the 48<sup>th</sup> ACM Technical Symposium on Computer Science Education (SIGCSE), 753-754. New York, NY: ACM Press. (First-place winner 2016-2017 ACM Student Research Competition.) [DOI | PDF].
Masthay, T.M. & Perugini, S. (2017). Parareal algorithm implementation and simulation in Julia (Technical Report No. arXiv:1706.08569 [cs.MS]). Cornell University Library: Computing Research Repository. [PDF | abstract].
Williams, B.M. & Perugini, S. (2016). Revisiting the Futamura Projections: A diagrammatic approach. Theoretical and Applied Informatics, 28(4), 15-32 [DOI | PDF]. (Also appears as Williams, B.M. & Perugini, S. (2018). Revisiting the Futamura Projections: A diagrammatic approach (Technical Report No. arXiv:1611.09906 [cs.PL]). Cornell University Library: Computing Research Repository. [PDF | abstract].)
Perugini, S. & Buck, J.W. (2016). A language-based model for specifying and staging mixed-initiative dialogs. In Campos, J.C. & Schmidt, A. (Eds.), Proceedings of the 8<sup>th</sup> International ACM SIGCHI Symposium on Engineering Interactive Computing Systems (EICS), 204-216. New York, NY: ACM Press. (Acceptance rate = 30%.) [DOI | PDF].
Perugini, S. (2016). Mining mixed-initiative dialogs. In Su, S.-F. (Ed.), Proceedings of the IEEE International Conference on Systems, Man, and Cybernetics (SMC), 2287-2294. Los Alamitos, CA: IEEE Computer Society Press. [DOI | PDF].
Buck, J.W. & Perugini, S. (2016). A tool for staging mixed-initiative dialogs. In P. Phung, J. Shen, & M. Glass (Eds.), Proceedings of the 27<sup>th</sup> Modern Artificial Intelligence and Cognitive Science Conference (MAICS), 25–32. [eCommons PDF | CEUR-WS PDF].
Lu, X., Shen, J., Perugini, S., & Yang, J. (2015). An immersive telepresence system using RGB-D sensors and head mounted display. In Chen, M., Sousa, L., & Tian, Y. (Eds.), Proceedings of the IEEE International Symposium on Multimedia (ISM), 453-458. Los Alamitos, CA: IEEE Computer Society Press. (Acceptance rate < 26%.) [DOI | [PDF]()].
Perugini, S. (2015). Specifying and staging mixed-initiative dialogs by program generation and transformation (Technical Report No. arXiv:1108.0476v5 [cs.PL]). Los Alamos, NM: Computing Research Repository (CoRR). [PDF | abstract].
Calvo, A.A. & Perugini, S. (2014). Pointing devices for wearable computers. Advances in Human-Computer Interaction, 2014(Article ID 527320), 10pp. [doi:10.1155/2014/527320 | WWW | PDF].
Calvo, A., Burnett, G., Finomore, V., & Perugini, S. (2012). The design, implementation, and evaluation of a pointing device for a wearable computer. In Bolstad, C.A. & Mayhorn, C.B. (Eds.), Proceedings of the Human Factors and Ergonomics Society 56th Annual Meeting, 521-525. Santa Monica, CA: Human Factors and Ergonomics Society. (Nominated for the computer systems best paper award.) [DOI | PDF].
Kimball, W.B. & Perugini, S. (2012). Software vulnerabilities by example: A fresh look at the buffer overflow problem—Bypassing SafeSEH. Journal of Information Assurance and Security, 7(1), 1–13 [WWW | preprint PDF].
Perugini, S. (2010). Personalization by website transformation: Theory and practice. Information Processing and Management, 46(3), 284-294 [DOI | PDF].
Perugini, S. & Ramakrishnan, N. (2010). Program transformations for information personalization. Computer Languages, Systems and Structures, 36(3), 223-249 [DOI | PDF].
Perugini, S. (2010). Supporting multiple access paths to objects in information hierarchies: Faceted classification, faceted search, and symbolic links. Information Processing and Management, 46(1), 22-43 [DOI | PDF].
Perugini, S. & Ramakrishnan, N. (2009). Exploring out-of-turn interactions with websites. Journal of Digital Information, 10(4) [abstract | HTML | PDF].
Stefaner, M., Ferré, S., Perugini, S., Koren, J. & Zhang, Y. (2009). User interface design. In G. Sacco & Y. Tzitzkas (Eds.), Dynamic taxonomies and faceted search: Theory, practice, and experience (Vol. 25, pp. 75-112). Berlin: Springer. (Invited submission.) [PDF].
Perugini, S. (2008). Symbolic links in the Open Directory Project. Information Processing and Management, 44(2), 910-930 [DOI | PDF].
Perugini, S., Anderson, T.J., & Moroney, W.F. (2007). A study of out-of-turn interaction in menu-based, IVR, voicemail systems. In Gilmore, D. (Ed.), Proceedings of the 25<sup>th</sup> International ACM Conference on Human Factors in Computing Systems, 961-970. New York, NY: ACM Press. (Acceptance rate < 25%.) [DOI | PDF].
Perugini, S. & Ramakrishnan, N. (2007). Mining functional dependencies for flexible information access. Journal of the American Society for Information Science (JASIST), 58(12), 1805-1819. (In special issue of JASIST on Mining Web Resources for Enhancing Information Retrieval.) [DOI | PDF | HTML].
Perugini, S. & Ramakrishnan, N. (2006). Interacting with web hierarchies. IEEE IT Professional, 8(4), 19-28 [DOI | PDF].
Perugini, S. (2006). Real-time query expansion and procedural interfaces for information hierarchies. In Broder, A.Z. & Maarek, Y.S. (Eds.), Proceedings of the International ACM SIGIR Workshop on Faceted Search, 50-54 [PDF].
Kimball, W.B. & Perugini, S. (2006). Information assurance through binary vulnerability auditing. [Abstract]. Ohio Journal of Science, 106(1), A-15. (Special issue on the 115<sup>th</sup> Meeting of the Ohio Academy of Science, Dayton, Ohio.) [PDF].
Perugini, S. & Ramakrishnan, N. (2005). A generative programming approach to interactive information retrieval: Insights and experiences. In Glück, R. & Lowry, M. (Eds.), Proceedings of the 4<sup>th</sup> International ACM Conference on Generative Programming and Component Engineering, LNCS 3676, 205-220. Berlin: Springer. (Acceptance rate = 30%.) [DOI | PDF].
Perugini, S. & Ramakrishnan, N. (2005). Personalization by Program Slicing. Journal of Object Technology, 4(3), 5-11. (Special issue on the 6<sup>th</sup> International ACM GPCE Young Researchers Workshop, Vancouver, Canada.) [PDF | HTML].
Keller, B.J., Kim, S., Vemuri, N.S., Ramakrishnan, N., & Perugini, S. (2005). The good, bad, and the indifferent: Explorations in recommender system health. In Proceedings of the International ACM Intelligent User Interfaces Beyond Personalization Recommender Systems Research Workshop, 43-47. [PDF].
Perugini, S. (2005). Recommender systems research. [Abstract]. In Proceedings of the 16<sup>th</sup> Midwest Artificial Intelligence and Cognitive Science Conference, 6. (Invited plenary talk.) [PDF].
Narayan, M., Williams, C., Perugini, S., & Ramakrishnan, N. (2004). Staging transformations for multimodal web interaction management. In Najork, M. & Wills, C. (Eds.), Proceedings of the 13<sup>th</sup> International ACM World Wide Web Conference, 212-223. New York, NY: ACM Press. (Acceptance rate < 15%.) [DOI | PDF].
Perugini, S., Gonçalves, M.A., & Fox, E.A. (2004). Recommender systems research: A connection-centric survey. Journal of Intelligent Information Systems, 23(2), 107-143. [DOI | PDF].
Perugini, S. McDevitt, K., Richardson, R., Pérez-Quiñones, M.A., Shen, R., Ramakrishnan, N., Williams, C., & Fox, E.A. (2004). Enhancing usability in CITIDEL: Multimodal, multilingual, and interactive visualization interfaces. In Lim, E.-P. & Christel (Eds.), Proceedings of the 4<sup>th</sup> International ACM/IEEE-CS Joint Conference on Digital Libraries, 315-324. New York, NY: ACM Press. (Acceptance rate < 25%.) [DOI | PDF].
Perugini, S. (2004). Program transformations for information personalization. Ph.D. Dissertation, Department of Computer Science, Virginia Tech. US Copyright Office Registration Number TX 6-040-012 [PDF | abstract].
Perugini, S., Ramakrishnan, N., & Fox, E.A. (2004). Automatically generating interfaces for personalized interaction with digital libraries (Technical Report No. cs.DL/0402022). Los Alamos, NM: Computing Research Repository [PDF | abstract].
Perugini, S. & Ramakrishnan, N. (2003). Personalizing web sites with mixed-initiative interaction. IEEE IT Professional, 5(2), 9-15. (Featured on the cover of the March-April issue and recognized in ACM TechNews Timely Topics, 5(490), Friday, May 2, 2003.) [DOI | PDF].
Perugini, S. & Ramakrishnan, N. (2003). Personalizing Interactions with Information Systems. In M.V. Zelkowitz (Ed.), Advances in Computers (pp. 323-382), 57: Information Repositories. Amsterdam: Academic Press. (Invited submission.) [PDF].
Capra, R., Narayan, M., Perugini, S. Ramakrishnan, N., & Pérez-Quiñones, M.A. (2003). The Staging Transformation Approach to Mixing Initiative. In Tecuci, G. (Ed.), Working Notes of the IJCAI Conference, Workshop on Mixed-Initiative Intelligent Systems, 23-29 [PDF].
Ramakrishnan, N. & Perugini, S. (2001). The partial evaluation approach to information personalization (Technical Report No. cs.IR/0108003). Los Alamos, NM: Computing Research Repository [PDF | abstract].
Perugini, S., Lakshminarayanan, P., & Ramakrishnan, N. (2000). Personalizing the GAMS cross-index (Technical Report No. TR-00-01). Blacksburg, VA: Department of Computer Science, Virginia Tech [PDF | abstract].
Spring 2025 Office Hours:
Tuesdays 3:45 PM - 5:15 PM,
Thursdays 3:45 PM - 5:15 PM,
and by appointment.
Office: Academic Building, Room 2048
E-mail: first [dot] last avemaria edu
Tel: +001 (239) 304-7920
Ave Maria University
5050 Ave Maria Blvd
Ave Maria, FL 34142