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: browse, references 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-mail
: myfirstname.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’12, PPDP’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.