Marcello Balduccini
Research Scientist
Intelligent Systems Group
Kodak Research Labs

E-mail: marcello.balduccini@gmail.com
Note: the email address marcello.balduccini@ttu.edu no longer works.

Education
Ph.D. in Computer Science (2005), Texas Tech University, Lubbock, TX
Laurea in Computer Science (1998), Università degli Studi di Milano, Italy

Research Interests
 Knowledge Representation
 Commonsense Reasoning
 Intelligent Agents
 Robotics

Current Research Activities
 Design of answer set based autonomous, rational agents
 Extensions of A-Prolog: CR-Prolog
 Planning, Diagnostics, Learning with A-Prolog and CR-Prolog
 Representation of and reasoning about complex flight systems, e.g. the Reaction Control System of the Space Shuttle
 Deep reasoning for natural language processing systems

Past Research Activities
 Parallelization of the smodels algorithm using traditional parallel processing techniques
 Computation of the answer sets of logic programs using neural networks
 Extensions of A-Prolog: Epistemic Specification
 Investigation of techniques for the integration of learning, planning, and action execution
 Construction of a deliberative agent employing propositional learning and planning to interact with an initially unknown environment
 Development of a module for SWI-Prolog supporting parallel processing

Academic Activities
 Instructor for CS3361 Concepts of Programming Languages (Fall 2006, Spring 2007)
 Instructor for CS4000 Java Applications (Summer 2002)
 Instructor for Introductory Computer Science (Fall 1999)
 Instructor for Algorithms and Data Structures (Fall 1999)

Invited Talks
 Answer Set Based Design of Autonomous, Rational Agents, New Mexico State University, Nov 18, 2005.
 Progress Report on Logic Form Translator, University of Texas at Dallas, Feb 4, 2005.
Publications
Click here for a list of my publications

Membership and Service
 Member of the Knowledge Representation Lab
 Member of the Texas Action Group
 Member of AAAI, AIAA
 Member of the Program Committee of: LPNMR'05 Systems and Application Session, PREFS 2006, ASP07
 Reviewer for TPLP, AIJ, ACM TOCL journals
 Reviewer for various conferences and workshops, including: AAAI, ICLP, JELIA, LPNMR, PADL
 Webmaster of the KRLab site
 Administrator of the KRLab Forum

Software Development
 RSig, extension of lparse allowing the specification of modules and signatures
 APLAgent Manager, Java-based interface for A-Prolog intelligent agents
 crmodels, an inference engine for CR-Prolog (by L.Kolvekal and M.Balduccini)
 Java interface for the A-Circuit system (by M.Balduccini, M.Gelfond, M.Nogueira)
 RCS/USA-Advisor, Java interface for the USA-Advisor reasoning system (by M.Nogueira, M.Balduccini, M.Gelfond, R.Watson, M.Barry)
 JInstall, Java-based abstract class for software installers -- used in the installers for the USA-Advisor and A-Circuit
 crmodels3, prototype of an inference engine for CR-Prolog - OBSOLETE: use crmodels instead
 Romeo, parallel implementation of the smodels algorithm
 NNEngine, engine for the computation of the answer sets of logic programs based neural networks
 MKAtoms, postprocessor for smodels
 BibPHP, web site for the management of BibTeX bibliographies using PHP and MySQL
 sismodels, frontend to smodels for Strong Introspection

Spare-Time Activities and Interests
 System administration of several NetBSD boxes on both sides of the Atlantic
 Network security
 Embedded systems programming (e.g. PIC, MIPS, HRI)
 Mechanical & electrical works on my 92 Ford Ranger, 93 Chevrolet Corsica, and 85 Yamaha Virago XV700





Teaching Information
 CS3361 Concepts of Programming Languages (Spring 2007)
 Syllabus
 
 CS3361 Concepts of Programming Languages (Fall 2006)
 Syllabus
 
 CS4000 Java Applications (Summer 2002)
 Syllabus
 Project 1
 Project 2
UPDATE (08/01/02): according to the latest news, the robocode simulation only allows socket connections among robots belonging to the same team. This prevents communication between client and server using CORBA. In order to complete the project you are no more required to extend the Robot class in your server. Just build a "normal" server (like the ones we saw in class) by removing the extend clause, by adding a main method, and by removing the run method. When the client invokes methods on the server, the server is required to print on the screen a message notifying that the method has been invoked. Return values may either be fixed (and arbitrary) or randomly generated.
 Project 3
 Sample Project (.tgz, .zip)