Paul Tarau

Research Publications Software Datasets

Teaching in Spring 2023:

CSCE 2100 Foundations of Computing
Office hours: Thursday 1:00PM-2:00PM

Research Interests: Natural Language Processing, Logic Programming, Deep Learning, Type Inference and Theorem Proving, Compilers and Abstract Machines, Tree-based Arithmetic Systems,  Combinatorics of Lambda Terms

Personal Links:  My wife Brenda Luderman and our kids  Dylan and Siena Tarau .
­
Extended CV with full list of publications (PDF). 

Online papers: browsereferences to papers (in bibref format) 

Academic position: Professor
Education: Ph.D. Univ. of Montreal, Canada (Computer Science), M.Sc. Univ. Laval, Canada (Computer Science), B.Sc. Univ. of Bucharest, Romania, (Mathematics)

NSF supported research projects:  Arithmetic Algorithms and Applications of Hereditarily Binary Numbers. Papers and code on these new tree-based numbering systems are here. NLP-related collaborative NSF project. Research project on a  data transformation framework that allows “morphing” between data types sharing the same information content. This paper and code (also here) describes bijections between fundamental data types. This Mathematica notebook visualizes some of the isomorphisms and this Coq script verifies some related computations. On lambda calculus and combinators in logic programming: draft paper (70p), code here and papers here and here.

Research Talks, papers and slides

My Open Source Software, here is a selection of (recent) favorites:

Natlog: Lightweight Prolog-like Interpreter and nested tuple store for unification-based tuple mining in Python

iProlog: A Prolog Interpreter, in Java, “derived from first principles” (as described here)

Stanza Graph: Multilingual STANZA-based Summary and Keyword Extractor and Question-Answering System using Text Graphs and Neural Networks
TypesAndProofs: Theorem provers and combinatorial testers for intuitionistic propositional logic and type inhabitation problems in Prolog

DeepRank: Python and Prolog-based summary, keyphrase and relation extractor from text documents using dependency graphs.
PythonProvers: Theorem provers and combinatorial testers for intuitionistic propositional logic and type inhabitation problems in Python
Styla: a Prolog interpreter in Scala, also here,
Jinni Prolog: a Java-based compiler and runtime system,
BinProlog:  a C-based compiler and runtime system,
Arithmetic operations with tree-based natural and rational numbers in Scala,
Bijective Goedel Numberings in Scala,
Kernel Prolog: a Prolog interpreter in Java.
Logic Transformers: ransformers from Horn Clause Programs to Code Running on Lightweight Python, Swift, Julia and C-based Virtual Machines

Contact Information
E-mailmyfirstname.mylastname@unt.edu  WWW : http://www.cs.unt.edu/~tarau
Address: Department of Computer Science and Engineering, University of North Texas, 1155 Union Circle #311366 Denton, Texas 76203-5017, USA
Phone :  +1-940-565-2806, +1-940-565-2767

Program committees:  ICLP’2022, PADL’2022, PPDP’2021, ICLP’2021, ICLP’2020, PADL’2019, ICLP’2018 (program chair), ICLP’2017, PADL’2018, PADL’2017, PADL’2016, LATA’15, ICLP’2014,TextGraphs’13, LOPSTR’13, ACM SAC’13, CICLOPS’12, GPCE’12 , TextGraphs-7 FLOPS’2012, ACM SAC’12PPDP’11, DSL’11, CICLOPS’11, ACM SAC'09, CICLOPS'08, ICLP'07, ACM SAC'06,  ICLP'04, PADL'04,  INAP'04, SONA'04, PADL'03, PADL'02, CICLOPS2002, PPDP'2000, CL2000,JFPLC'2000, ESAW'2000,MAS'99, COCL'99,IDL'99,DIPLCLP'99,WETICE'98, JICSLP'98,JFPLC'98,COCL'98, ILPS'97, JICSLP'96, JFPL'96, ICLP'95, LOPSTR'95

Workshops organized: 
CICLOPS 2009 at ICLP'09, IDL'99 at PLI'99, DIPLCL'99 ICLP'99
ICLP'97: 2nd International Workshop on Logic Programming Tools for Internet Applications JICSLP'96:
ILPS'94: Implementation of Logic Programming Languages
ICLP'93: Blackboard Based Logic Programming

Courses taught at UNT:

Spring 2022: CSCE 5450 Programming Languages
CSCE 4010-002 Social Issues in Computing.
Fall 2021: CSCE 3220 Human Computer Interfaces

Spring 2021: CSCE 2100 Foundations of Computing:
Spring 2021: CSCE 5450 Programming Languages:
Fall 2020: CSCE 4430
Programming Languages
Fall 2020: CSCE 5210 Fundamentals of Artificial Intelligence
Spring 2020: CSCE 5450 Programming Languages
Fall 2019: CSCE 4430 Programming Languages
CSCE 3110 Data Structures and Algorithms
Spring 2019: CSCE 5450 Programming Languages
Fall 2018: CSCE 4430
Programming Languages
Spring 2018: CSCE 5450 Programming Languages
Fall 2017: CSCE 5430 Software Engineering
Spring 2017: CSCE 5450
Programming Languages
Fall 2016: CSCE 4430 Programming Languages  CSCE 5400 Automata Theory

Spring 2015: CSCE 3030 Parallel Programming CSCE 4430 Programming Languages
Fall 2014. CSCE 5160 Parallel Processing and Algorithms CSCE 5450 Programming Languages
Spring 2014: CSCE 2100 Computing Foundations I CSCE 5450 Programming Languages
Fall 2013: CSCE 5290/4930 Natural Language Processing, CSCE 5150-2 Analysis of Algorithms,
CSCE 6933 Logic and Knowledge Processing in Computer Science   
Spring 2013 CSCE 4430 Programming Languages  CSCE 4444 Software Engineering
Fall 2012: CSCE 3210 Symbolic Processing  CSCE 6933 Computational Mathematics
Maymester 2012: Advanced Object Oriented and Functional Programming in Scala
Spring 2012: CSCE 4430 Programming Languages, CSCE 5430 Topics in Software Engineering
Fall 2011 CSCE 5420: Software Development CSCE 6933 Topics in Computational Mathematics
Spring 2011 CSCE 5170: Graph Theory CSCE 4430: Programming Languages
Fall 2010 CSCE 5450: Programming Languages CSCE 6933 Topics in Computational Mathematics
Spring 2010 CSCE 3600: Principles of System Programming CSCE 5430: Topics in Software Engineering
Fall 2009 CSCE 4430/5450: Programming Languages CSCE 5420:  Software Development
Spring 2009 CSCE 4430/5450: Programming Languages CSCE 5430: Topics in Software Engineering
Fall 2008 CSCE 4430/5450: Programming Languages CSCE 5420:  Software Development
Spring 2008 CSCE 4430/5450: Programming Languages CSCE 5430: Topics in Software Engineering
Fall 2007: CSCE 4430/5450: Programming Languages CSCE 5420: Software Development
Spring 2006: CSCE 5210: Artificial Intelligence CSCE 5450: Programming Languages
Fall  2005:  CSCE 5450: Programming Languages CSCE 4430:  Programming Languages
Spring  2005: CSCI 5410:  Artificial Intelligence CSCI  4300:   Survey of Computer Languages
Fall  2004: CSCI 4410:  Introduction to Artificial Intelligence CSCI 4250:   Survey of Computer Languages
Spring  2004: CSCI 5410: Artificial Intelligence CSCI 3400: - Data Structures
Fall  2003: CSCI 6330: Advanced Topics in Software Agents CSCI 4250: Survey of Computer Languages
Spring 2003: CSCI 5250: Programming Languages CSCI 5540: - Operating Systems
Fall 2002:  CSCI 4250 Survey of Computer Languages, CSCI 5250 Programming Languages,
Spring 2002: CSCI 5530 Topics in Software Engineering CSCI 5550 Compiler Design
Fall 2001:  CSCI 4250 Survey of Computer Languages, CSCI 5250 Programming Languages,
Spring 2001: CSCI 5530 Topics in Software Engineering CSCI 5550  Compiler Design
Fall 2000:  CSCI 4250 Survey of Computer Languages, CSCI 5250 Programming Languages,
Spring 2000: CSCI 5530 Topics in Software Engineering CSCI 6330  Advanced Internet Programming
Fall 1999:  CSCI 4250 Survey of Computer Languages, CSCI 5250 Programming Languages
Spring 1999: CSCI 5530 Topics in Software Engineering,  CSCI 6330 Intelligent Mobile Agents
Fall 1998: CSCI 4250 Survey of Computer Languages, CSCI 5250 Programming Languages.

Policy on directed studies, projects and reference letters: I will consider requests for directed studies and projects only for students working with me on a PhD or MSc thesis. Otherwise, I believe that regular classes, involving team work and presentations are likely to provide a more complete learning experience. Requests to work as a TA should be addressed directly to the department. Reference letters from me are not needed as the priority list is built independently by the department. I will provide reference letters for job or grant applications for students with which I worked directly as member of their thesis committees.