12 research outputs found
Student Monks – Teaching Recursion in an IS or CS Programming Course Using the Towers of Hanoi
Educators have been using the Towers of Hanoi problem for many years as an example of a problem that has a very elegant recursive solution. However, the elegance and conciseness of this solution can make it difficult for students to understand the amount of computer time required in the execution of this solution. And, like many recursive computer programs, students often find it difficult to follow a trace of the solution. Research in computer education has shown that active learning exercises achieve positive educational results. In line with this research, an active learning exercise was employed in the classroom to assist students in gaining a better understanding of the recursive solution to the Towers of Hanoi problem. This demonstration can be used in an introductory IS or CS programming class, independent of the language used. The demonstration involves using student volunteers, who, in the demonstration, are referred to as “monks,” a reference to the original problem that had monks moving the golden rings in the Towers of Hanoi. An anonymous student survey revealed that students felt strongly that the demonstration helped them better understand recursion, and that the demonstration was a good use of class time. In addition, an analysis of a small sample of students’ computer programs following the demonstration, suggests that there may be pedagogical benefits to use of the student monk demonstration
Effectiveness of abstract interpretation in automatic parallelization: a case study in logic programming
We report on a detailed study of the application and effectiveness of program analysis based on abstract interpretation to automatic program parallelization. We study the case of parallelizing logic programs using the notion of strict independence. We first propose and prove correct a methodology for the application in the parallelization task of the information inferred by abstract
interpretation, using a parametric domain. The methodology is generic in the sense of allowing the use of different analysis domains. A number of well-known approximation domains are then studied and the transformation into the parametric domain defined. The transformation directly
illustrates the relevance and applicability of each abstract domain for the application. Both local and global analyzers are then built using these domains and embedded in a complete parallelizing compiler. Then, the performance of the domains in this context is assessed through a number
of experiments. A comparatively wide range of aspects is studied, from the resources needed by the analyzers in terms of time and memory to the actual benefits obtained from the information inferred. Such benefits are evaluated both in terms of the characteristics of the parallelized code and of the actual speedups obtained from it. The results show that data flow analysis plays an important role in achieving efficient parallelizations, and that the cost of such analysis can be reasonable even for quite sophisticated abstract domains. Furthermore, the results also offer significant insight into the characteristics of the domains, the demands of the application, and the
trade-offs involved
Resource bounds analysis.
We present a generic analysis that infers both upper and lower bounds on the usage that a program makes of a set of user-definable resources. The inferred bounds will in general be functions of input data sizes. A resource in our approach is a quite general, user-defined notion which associates a basic cost function with elementary operations.
The analysis then derives the related (upper- and lower- bound) cost functions for all procedures in the program. We also present an assertion language which is used to define both such resources and resource-related properties that the system can then check based on the results of the analysis. We have performed some experiments with some concrete resource-related properties such as execution steps, bits sent or received by an application, number of arithmetic operations performed, number of calls to a procedure, number of transactions, etc. presenting the resource usage functions inferred and the times taken to
perform the analysis. Applications of our analysis include resource consumption verification and debugging (including for mobile code), resource control in parallel/distributed computing, and resource-oriented specialization
Predicting companies stock price direction by using sentiment analysis of news articles
This paper summarizes our experience teaching
several courses at Metropolitan College of Boston University Computer Science department over five years. A number of innovative teaching techniques are presented in this paper. We
specifically address the role of a project archive, when designing a course. This research paper explores survey results from every running of courses, from 2014 to 2019. During each class, students participated in two distinct surveys: first, dealing with key learning outcomes, and, second, with teaching techniques used. This paper makes several practical recommendations based on the analysis of collected data. The research validates the value of a sound repository of technical term projects and the role such repository plays in effective teaching and learning of computer science courses.Published versio
National Aeronautics and Space Administration (NASA)/American Society for Engineering Education (ASEE) summer faculty fellowship program, 1986, volume 2
The Johnson Space Center (JSC) NASA/ASEE Summer Faculty Fellowship Program was conducted by the University of Houston and JSC. The ten week program was operated under the auspices of the American Society for Engineering Education (ASEE). The basic objectives of the program are (1) to further the professional knowledge of qualified engineering and science faculty members; (2) to stimulate an exchange of ideas between participants and NASA; (3) to enrich and refresh the research and teaching activities of participants' institutions; and (4) to contribute to the research objectives of the NASA Centers. Each faculty fellow spent ten weeks at JSC engaged in a research project commensurate with his interests and background and worked in collaboration with a NASA/JSC colleague. The final reports on the research projects are presented. This volume, 2, contains sections 15 through 30
Java, Java, Java: Object-Oriented Problem Solving
Open Access Textbook from Open Textbook Library:
Java, Java, Java, 3e was previously published by Pearson Education, Inc.
The first edition (2000) and the second edition (2003) were published by
Prentice-Hall. In 2010 Pearson Education, Inc. reassigned the copyright to
the authors, and we are happy now to be able to make the book available
under an open source license.
This PDF edition of the book is available under a Creative Commons
Attribution 4.0 International License, which allows the book to be used,
modified, and shared with attribution:
(https://creativecommons.org/licenses/by/4.0/).
– Ralph Morelli and Ralph Walde
– Hartford, CT
– December 30, 201
Exploiting parallelism in n-D convex hull algorithms
PhD ThesisThe convex hull is a problem of primary importance because of its applications in
computational geometry. A number of sequential and parallel algorithms for computing
the convex hull of a finite set of points in the lower dimensions are known. In compar-
ison, the general n-D problem is not as well understood and parallel algorithms are not
so prevalent because the 2-D and 3-D methods are not easily extended to the general
case. This thesis presents parallel algorithms for evaluating the general n- D convex hull
problem (where 2-D and 3-D are special cases) using Swart's sequential algorithm. One of
our methods combines a gift-wrapping technique with partitioning and merge algorithms
> where the original list is split into p 1 partitions followed by the computation of
the subhulls using the sequential n-D gift-wrapping method. The partial hulls are then
combined using a fanin tree. The second method computes the convex hull in parallel
by wrapping around the edges until a complete facial lattice structure of the polytope is
generated.
Several parameterised versions of the proposed algorithms have been implemented on
the shared memory and message passing architectures. In the former, performance on an
Encore Multimax using Encore Parallel Threads and the more lightweight Microthread
programming utilities are examined. In the latter, performance on a transputer based
machine using CS- Tools is discussed. We have shown that our techniques will be useful
in the construction of faster algorithms which employ the n-D convex hull algorithms as
a sub-algorithmCommonwealth Scholarship
Commission in the United Kingdo