scispace - formally typeset
Search or ask a question
Author

Ralph Morelli

Other affiliations: Trinity College, Dublin
Bio: Ralph Morelli is an academic researcher from Trinity College (Connecticut). The author has contributed to research in topics: Advanced Placement & Expert system. The author has an hindex of 16, co-authored 60 publications receiving 725 citations. Previous affiliations of Ralph Morelli include Trinity College, Dublin.


Papers
More filters
Journal ArticleDOI
TL;DR: The humanitarian focus of socially useful projects promises to motivate community-minded undergrads in and out of CS.
Abstract: The humanitarian focus of socially useful projects promises to motivate community-minded undergrads in and out of CS.

57 citations

Proceedings ArticleDOI
07 Mar 2007
TL;DR: This paper presents the experiences with Sahana including the benefits for both academia and industry and is currently exploring the wider use of Sahana as a sustainable model and platform for teaching about open-source software development.
Abstract: In this paper, we present an example humanitarian open-source software project that has been used since January 2006 at a small liberal-arts college as an experiment in undergraduate CS education. Sahana (Sinhalese for relief) is a free and open-source disaster management system developed in Sri Lanka by a group of IT professionals following the 2004 Asian tsunami. It is a web-based tool that addresses the IT coordination problems that typically occur in trying to recover from a large-scale disaster. We are currently exploring the wider use of Sahana as a sustainable model and platform for teaching about open-source software development while at the same time allowing CS students and educators to make a socially useful contribution of their time, effort, and expertise. This paper presents our experiences with Sahana including the benefits for both academia and industry.

56 citations

Journal ArticleDOI
TL;DR: This is an advanced monograph in Combinatorics dealing with what quite often is called "Hungarian" combinatorics; hypergraphs, set systems, etc.
Abstract: This is an advanced monograph in Combinatorics dealing with what quite often is called "Hungarian" combinatorics; hypergraphs, set systems, etc. Presently, the connections of this part of Combinatorics to Artificial Intelligence and Databases are rather loose, the only application that comes to mind are topics related to cyclic and acyclic databases. Hence we should pose to ourselves the following question: is it worth it (from the professional point of view, of course) to read such books at all and is it worth it, in particular, to review them in a specialized bulletin like SIGART news? Generally the answer to both questions is, in the opinion of this reviewer, negative. Let us point out however that the combinatorics treated in Bollobas book is very interesting and sometimes stunning in its beauty. I wish programs (like AM, Eurisco, etc.) were able to produce such estetic results. For a moment, though, we have no hope of building programs mimicking inventiveness of mathematicians and, finally I do not expect to see such programs written during my lifespan.

44 citations

Proceedings ArticleDOI
06 Mar 2013
TL;DR: Both the second and third pilots provide evidence that the CS Principles course is succeeding in changing how computer science is taught and to whom it is taught.
Abstract: In this paper we analyze the CS Principles project, a proposed Advanced Placement course, by focusing on the second pilot that took place in 2011-2012. In a previous publication the first pilot of the course was explained, but not in a context related to relevant educational research and philosophy. In this paper we analyze the content and the pedagogical approaches used in the second pilot of the project. We include information about the third pilot being conducted in 2012-2013 and the portfolio exam that is part of that pilot. Both the second and third pilots provide evidence that the CS Principles course is succeeding in changing how computer science is taught and to whom it is taught.

38 citations

Proceedings ArticleDOI
03 Jul 2007
TL;DR: An approach for using open source software as a foundation to teach software engineering in a Liberal Arts environment is discussed by involving students in an ongoing, real-world project from the very beginning, allowing students with a wide range of backgrounds to participate.
Abstract: For the past year, Trinity College has utilized Sahana, a free and open source disaster management system, as a foundation to teach software engineering. The goals of the use of the Sahana project are threefold: to provide students with a real-world software engineering experience; to introduce students to the open-source development model; and to attract a wider variety of students into computing due to the real-world and humanitarian nature of the Sahana project. This paper discusses an approach for using open source software as a foundation to teach software engineering in a Liberal Arts environment by involving students in an ongoing, real-world project from the very beginning, allowing students with a wide range of backgrounds to participate. Results of a learning survey of a small group of students who have participated in the project are presented. The paper also provides guidance to others contemplating incorporating open source projects into their software engineering courses or curriculum.

33 citations


Cited by
More filters
Journal ArticleDOI
TL;DR: In this article, a critical examination of democratic theory and its implications for the civic education roles and contributions of teachers, adult educators, community development practitioners, and community organizers is presented.
Abstract: Course Description In this course, we will explore the question of the actual and potential connections between democracy and education. Our focus of attention will be placed on a critical examination of democratic theory and its implications for the civic education roles and contributions of teachers, adult educators, community development practitioners, and community organizers. We will survey and deal critically with a range of competing conceptions of democracy, variously described as classical, republican, liberal, radical, marxist, neomarxist, pragmatist, feminist, populist, pluralist, postmodern, and/or participatory. Using narrative inquiry as a means for illuminating and interpreting contemporary practice, we will analyze the implications of different conceptions of democracy for the practical work of civic education.

4,931 citations

Proceedings ArticleDOI
01 Oct 1987
TL;DR: In this article, a class of logic programming languages, called CLP languages, are defined, all of which share the same essential semantic properties and are based on a unified formal semantics.
Abstract: We address the problem of designing programming systems to reason with and about constraints. Taking a logic programming approach, we define a class of programming languages, the CLP languages, all of which share the same essential semantic properties. From a conceptual point of view, CLP programs are highly declarative and are soundly based within a unified framework of formal semantics. This framework not only subsumes that of logic programming, but satisfies the core properties of logic programs more naturally. From a user's point of view, CLP programs have great expressive power due to the constraints which they naturally manipulate. Intuition in the reasoning about programs is enhanced as a result of working directly in the intended domain of discourse. This contrasts with working in the Herbrand Universe wherein every semantic object has to be explicitly coded into a Herbrand term; this enforces reasoning at a primitive level. Finally, from an implementor's point of view, CLP systems can be efficient because of the exploitation of constraint solving techniques over specific domains.

1,709 citations

Book
01 Jan 2006
TL;DR: Researchers from other fields should find in this handbook an effective way to learn about constraint programming and to possibly use some of the constraint programming concepts and techniques in their work, thus providing a means for a fruitful cross-fertilization among different research areas.
Abstract: Constraint programming is a powerful paradigm for solving combinatorial search problems that draws on a wide range of techniques from artificial intelligence, computer science, databases, programming languages, and operations research. Constraint programming is currently applied with success to many domains, such as scheduling, planning, vehicle routing, configuration, networks, and bioinformatics. The aim of this handbook is to capture the full breadth and depth of the constraint programming field and to be encyclopedic in its scope and coverage. While there are several excellent books on constraint programming, such books necessarily focus on the main notions and techniques and cannot cover also extensions, applications, and languages. The handbook gives a reasonably complete coverage of all these lines of work, based on constraint programming, so that a reader can have a rather precise idea of the whole field and its potential. Of course each line of work is dealt with in a survey-like style, where some details may be neglected in favor of coverage. However, the extensive bibliography of each chapter will help the interested readers to find suitable sources for the missing details. Each chapter of the handbook is intended to be a self-contained survey of a topic, and is written by one or more authors who are leading researchers in the area. The intended audience of the handbook is researchers, graduate students, higher-year undergraduates and practitioners who wish to learn about the state-of-the-art in constraint programming. No prior knowledge about the field is necessary to be able to read the chapters and gather useful knowledge. Researchers from other fields should find in this handbook an effective way to learn about constraint programming and to possibly use some of the constraint programming concepts and techniques in their work, thus providing a means for a fruitful cross-fertilization among different research areas. The handbook is organized in two parts. The first part covers the basic foundations of constraint programming, including the history, the notion of constraint propagation, basic search methods, global constraints, tractability and computational complexity, and important issues in modeling a problem as a constraint problem. The second part covers constraint languages and solver, several useful extensions to the basic framework (such as interval constraints, structured domains, and distributed CSPs), and successful application areas for constraint programming. - Covers the whole field of constraint programming - Survey-style chapters - Five chapters on applications Table of Contents Foreword (Ugo Montanari) Part I : Foundations Chapter 1. Introduction (Francesca Rossi, Peter van Beek, Toby Walsh) Chapter 2. Constraint Satisfaction: An Emerging Paradigm (Eugene C. Freuder, Alan K. Mackworth) Chapter 3. Constraint Propagation (Christian Bessiere) Chapter 4. Backtracking Search Algorithms (Peter van Beek) Chapter 5. Local Search Methods (Holger H. Hoos, Edward Tsang) Chapter 6. Global Constraints (Willem-Jan van Hoeve, Irit Katriel) Chapter 7. Tractable Structures for CSPs (Rina Dechter) Chapter 8. The Complexity of Constraint Languages (David Cohen, Peter Jeavons) Chapter 9. Soft Constraints (Pedro Meseguer, Francesca Rossi, Thomas Schiex) Chapter 10. Symmetry in Constraint Programming (Ian P. Gent, Karen E. Petrie, Jean-Francois Puget) Chapter 11. Modelling (Barbara M. Smith) Part II : Extensions, Languages, and Applications Chapter 12. Constraint Logic Programming (Kim Marriott, Peter J. Stuckey, Mark Wallace) Chapter 13. Constraints in Procedural and Concurrent Languages (Thom Fruehwirth, Laurent Michel, Christian Schulte) Chapter 14. Finite Domain Constraint Programming Systems (Christian Schulte, Mats Carlsson) Chapter 15. Operations Research Methods in Constraint Programming (John Hooker) Chapter 16. Continuous and Interval Constraints(Frederic Benhamou, Laurent Granvilliers) Chapter 17. Constraints over Structured Domains (Carmen Gervet) Chapter 18. Randomness and Structure (Carla Gomes, Toby Walsh) Chapter 19. Temporal CSPs (Manolis Koubarakis) Chapter 20. Distributed Constraint Programming (Boi Faltings) Chapter 21. Uncertainty and Change (Kenneth N. Brown, Ian Miguel) Chapter 22. Constraint-Based Scheduling and Planning (Philippe Baptiste, Philippe Laborie, Claude Le Pape, Wim Nuijten) Chapter 23. Vehicle Routing (Philip Kilby, Paul Shaw) Chapter 24. Configuration (Ulrich Junker) Chapter 25. Constraint Applications in Networks (Helmut Simonis) Chapter 26. Bioinformatics and Constraints (Rolf Backofen, David Gilbert)

1,527 citations

Book
01 Jan 2006
TL;DR: The author discusses the history and present situation of operating systems, as well as some of the techniques used to design and implement these systems.
Abstract: Table of Contents CHAPTER 1 INTRODUCTION 1.1 WHAT IS AN OPERATING SYSTEM? 1.2 HISTORY OF OPERATING SYSTEMS 1.3 OPERATING SYSTEM CONCEPTS 1.4 SYSTEM CALLS 1.5 OPERATING SYSTEM STRUCTURE 1.6 OUTLINE OF THE REST OF THIS BOOK 1.7 SUMMARY CHAPTER 2 PROCESSES 2.1 INTRODUCTION TO PROCESSES 2.2 INTERPROCESS COMMUNICATION 2.3 CLASSICAL IPC PROBLEMS 2.4 SCHEDULING 2.5 OVERVIEW OF PROCESSES IN MINIX 3 2.6 IMPLEMENTATION OF PROCESSES IN MINIX 3 2.7 THE SYSTEM TASK IN MINIX 3 2.8 THE CLOCK TASK IN MINIX 3 2.9 SUMMARY CHAPTER 3 INPUT/OUTPUT 3.1 PRINCIPLES OF I/O HARDWARE 3.2 PRINCIPLES OF I/O SOFTWARE 3.3 DEADLOCKS 3.4 OVERVIEW OF I/O IN MINIX 3 3.5 BLOCK DEVICES IN MINIX 3 3.6 RAM DISKS 3.7 DISKS 3.8 TERMINALS 3.9 SUMMARY CHAPTER 4 MEMORY MANAGEMENT 4.1 BASIC MEMORY MANAGEMENT 4.2 SWAPPING 4.3 VIRTUAL MEMORY 4.4 PAGE REPLACEMENT ALGORITHMS 4.5 DESIGN ISSUES FOR PAGING SYSTEMS 4.6 SEGMENTATION 4.7 OVERVIEW OF THE MINIX 3 PROCESS MANAGER 4.8 IMPLEMENTATION OF THE MINIX 3 PROCESS MANAGER 4.9 SUMMARY CHAPTER 5 FILE SYSTEMS 5.1 FILES 5.2 DIRECTORIES 5.3 FILE SYSTEM IMPLEMENTATION 5.4 SECURITY 5.5 PROTECTION MECHANISMS 5.6 OVERVIEW OF THE MINIX 3 FILE SYSTEM 5.7 IMPLEMENTATION OF THE MINIX 3 FILE SYSTEM 5.8 SUMMARY CHAPTER 6 READING LIST AND BIBLIOGRAPHY 6.1 SUGGESTIONS FOR FURTHER READING 6.2 ALPHABETICAL BIBLIOGRAPHY APPENDIX A - INSTALLING MINIX 3 APPENDIX B - MINIX 3 SOURCE CODE LISTING APPENDIX C - INDEX TO FILES INDEX

572 citations

Journal ArticleDOI
TL;DR: The expressive power of even the simplest language in the family of concurrent logic programming languages within a uniform operational framework is demonstrated and how varying the basic synchronization and control constructs affect the expressiveness and efficiency of the resulting languages is investigated.
Abstract: Concurrent logic languages are high-level programming languages for parallel and distributed systems that offer a wide range of both known and novel concurrent programming techniques. Being logic programming languages, they preserve many advantages of the abstract logic programming model, including the logical reading of programs and computations, the convenience of representing data structures with logical terms and manipulating them using unification, and the amenability to metaprogramming. Operationally, their model of computation consists of a dynamic set of concurrent processes, communicating by instantiating shared logical variables, synchronizing by waiting for variables to be instantiated, and making nondeterministic choices, possibly based on the availability of values of variables.This paper surveys the family of concurrent logic programming languages within a uniform operational framework. It demonstrates the expressive power of even the simplest language in the family and investigates how varying the basic synchronization and control constructs affect the expressiveness and efficiency of the resulting languages.In addition, the paper reports on techniques for sequential and parallel implementation of languages in this family, mentions their applications to date, and relates these languages to the abstract logic programming model, to the programming language PROLOG, and to other concurrent computational models and programming languages.

504 citations