149 research outputs found
Design and implementation of a reusable type inference engine and its application to Scheme
Static type checking allows programmers to locate potential bugs prior to code execution. However, developing a static type checker is a complicated endeavor. Implementers must address a number of concerns including recursion over syntax elements, unification of type variables within environments, and generation of meaningful error messages for users. The inherent complexity of type checkers can lead to code that is difficult to both understand and maintain. This thesis presents the design and implementation of an abstract type inference engine and its use in the revision of a student-oriented type checker for the Scheme programming language. Our inference engine provides a complete set of unification facilities to programmers for the specication of a type checking system. It allows for a clean separation of unification algorithms, inference rules, and error generation. We also demonstrate the applicability of the engine by using it to construct a type checker for Scheme targeted at novice programmers. This checker borrows a student-friendly type notation from a previous version and extends its system, providing for language native module support, a more complete treatment of advanced data types, and better error messages
A Framework for Implementing Type Systems
Type systems are ubiquitous in the study of programming languages. Although the basic mechanisms are well understood, a new type system can still be a challenge to implement. We present the design and implementation of a domain-specific language (i.e., a functional framework) for writing type system implementations. This domain-specific language has been embedded in both Haskell and Scheme. It allows users to write down the axioms and inference rules of the type system in a stylized notation that closely resembles the formal type rules, and automates the rest of the work of type checking or type inference
A Type Notation for Scheme
This report defines a type notation for Scheme. This notation was used in the undergraduate programming languages class at Iowa State in Spring 2005
Computational Thinking Bins: Outreach and More
Computational Thinking Bins are stand alone, individual boxes, each containing an activity for groups of students that teaches a computing concept. We have a devised a system that has allowed us to create an initial set, test the set, continually improve and add to our set. We currently use these bins in outreach events for middle and high school students. As we have shared this resource with K-12 teachers, many have expressed an interest in acquiring their own set. In this paper we will share our experience throughout the process, introduce the bins, and explain how you can create your own set
Bulldozing the STEM Silos in Omaha: While Engaging P-12 Teachers and Building Campus STEM Excellence
It has been said that all universities “do STEM these days”, but what exactly does it take to “do STEM” well? Questions commonly heard on a university campus these days include: “What is the STEM context for inquiry?”, “Should P-16 STEM be a campus priority?”, “How can a campus break down departmental silos for interdisciplinary workforce development?” In many ways STEM represents, at its core, an interdisciplinary approach and workforce development context to learning, that rigorously engages the core concepts of science, technology, engineering, and mathematics (Tsupros, N., Kohler, R. and Hallinen, J., 2009; National Science and Technology Council, 2018). Additionally, STEM concepts are found in most any P-16 curriculum (to include reading, writing, philosophy, history, etc.). How does it all come together for a campus trajectory toward STEM excellence? These questions, as well as projected workforce needs, put “STEM” as an important conversation on most campuses these days, and it certainly is the case on our campus, at the University of Nebraska at Omaha (UNO). Further, it is a truly a national dialogue, as educational institutions strive to more effectively work across disciplinary lines for “convergence”, where the insights and approaches from different disciplines can come together for finding creative solutions for our most difficult societal problems (National Research Council, 2014). Convergence is also a growing theme for innovations in P-12 STEM teacher training, such as at the National Science Foundation’s 2018 Noyce Teacher Scholarship Summit (http://www.nsfnoyce.org) and also across scientific programs as one of NSF’s 10 big ideas (https://www.nsf.gov/news/special_reports/big_ideas/)
Community Chairs as a Catalyst for Campus Collaboration in STEM
Strong collaborative partnerships are critical to the ongoing success of any urban or metropolitan university in its efforts to build the science, technology, engineering, and mathematics (STEM) career pathways so critical to our nation. At the University of Nebraska at Omaha, we have established a faculty leadership structure of community chairs that work across colleges to support campus priorities. This paper describes UNO’s STEM community chair model, including selected initiatives, impacts, and challenges to date
Encapsulated Molecules in Carbon Nanotubes: Structure and Properties
We encapsulate a number of fullerenes inside single-walled carbon nanotubes (SWNTs) including La2@C80 and ErxSc3-xN@C80(x=0-3). The structural properties of these nanoscopic hybrid materials are described using high resolution transmission electron microscopy and electron diffraction. It is found that the encapsulated fullerenes selfassemble into long, one-dimensional chains. The thermal stability of these supramolecular assemblies are studied and large variations are found. The behavior is nominally consistent with the mass of the encapsulated metallofullerenes
Identification of the Emergent Leaders within a CSE Professional Development Program
The need for high quality, sustainable Computer Science Education (CSE) professional development (PD) at the grades K-12 level is essential to the success of the global CSE initiatives. This study investigates the use of Social Network Analysis (SNA) to identify emergent teacher leaders within a high quality CSE PD program. The CSE PD program was designed and implemented through collaboration between the computer science and teacher education units at a Midwestern metropolitan university in North America. A unique feature of this specific program is in the intentional development of a social network. This study discusses the importance of social networks, the development of social capital, and its impact on the sustainability of the goals of the CSE PD program. The role of emergent teacher leaders in the development of the social capital of the CSE PD cohort is investigated using SNA techniques. The cohort consisted of 16 in-service teachers in grades 6-12 representing seven districts and four distinct content areas. The instruments used involved a questionnaire and the results of a CSE PD program online course. The findings suggest a correlation between the emergent teacher leaders, the online course results, and the overall cohort social capital. Future uses of SNA within professional development programs are also discussed
- …