Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Martha J. Kosa

dblp:67/4671 · DBLP profile ↗
← Back
16ranked-venue papers
8as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 11 · 5 first-authorSystems, architecture and hardware · 4 · 3 first-authorTheory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Concurrent programming · 100%

Topics — the 2 heaviest of 3, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › concurrency theory
commutativity
0.011996
What Critical Algebraic Property Allows Operations of Concurrent Abstract Data Types to be Fast? (Brief Announement) · PODC 1996
Concurrent programming
concurrent data type
0.011994
Making Operations of Concurrent Data Types Fast · PODC 1994
YearPublicationVenuePosition
2015 Delegate, Decorate, State, and Illustrate in the OOP Course
abstract
We regularly teach a required OOP course which serves as the bridge between the introductory CS1/CS2 sequence and the senior software engineering sequence. We stress the fundamental concepts of polymorphism, inheritance, and encapsulation. The students transition from writing small programs to larger programs with multiple classes and hierarchical structures. They learn and apply several of the original Gang of Four (GoF) design patterns [1]. We share practical and fun examples of applying the decorator, state, and model-view-controller (MVC) design patterns, along with the critical OOP concept of delegation, that we have used in the classroom and our weekly labs and programming assignments.
Mark A. Boshart, Martha J. Kosa
ITiCSE2
2014 The rising renaissance engineer spectrum awards (abstract only)
abstract
We describe a new annual awards program, the Rising Renaissance Engineer Spectrum Awards, which recognizes a diverse body of students across all engineering departments at our institution for their initiatives and achievements in educational, research, and professional development activities. This award is unique at our institution because it is inclusively for students from all six engineering departments and specifically promotes underrepresented groups. This awards program complements existing engineering awards honoring faculty, staff, and alumni for their research, teaching, and service. It is modeled after the NCWIT (National Center for Women in Information Technology) Aspirations in Computing Award, which has successfully encouraged many female high school students to persist in computing careers. With the Computer Science Department spearheading the effort, this project is a collaborative partnership among representatives from all engineering departments.
Martha J. Kosa, Ambareen Siraj
SIGCSE1
2012 Weaving a tapestry: creating a satellite workshop to support HS CS teachers in attracting and engaging students
abstract
In this paper, we describe the Tennessee Technological University (TTU) Tapestry Workshop for high school (HS) teachers. The Tapestry Workshop initiative - a collaborative partnership between TTU, the University of Virginia (UVA) and HS teachers - shares strategies, practices, and innovative ideas for teaching Computer Science (CS) effectively. This three-day professional development workshop utilized informational, technical, networking, activity-, and discussion-oriented sessions geared towards attracting and engaging a diverse body of CS students. The workshop was a worthwhile professional development activity for both the organizers and attendees and contributed to the initiation of a local HS CS program.
Ambareen Siraj, Martha J. Kosa, Summer-Mistine Olmstead
SIGCSE2
2007 Solving recurring student problems with recurrences
abstract
We describe a prototype of RRTS (Recurrence Relation Tutorial System), a tool for students to use to practice solving homogeneous and non-homogeneous recurrence relations, both linear and divide-and-conquer, that arise in algorithm analysis.
Jonathan Byrd, Monty Carter, Philip Kirkham, Martha J. Kosa
ITiCSE5
2005 Weathering MindStorms with drizzle and DIODE in CS0
abstract
We introduce Drizzle, our new simple object-oriented scripting language for programming LEGO MindStorms robots, and DIODE, the Drizzle Integrated Object-Oriented Development Environment. Drizzle and DIODE have evolved from a student project into useful resources for our CS0 course. In this work we describe Drizzle and DIODE and discuss our experiences with them in our CS0 course.We are dismayed by the low retention rates of undergraduate majors in CS1 and CS2. To attempt to alleviate this problem, we introduced a new required CS0 course in Fall 2004. Its goals are to give students a breadth-first overview of CS and to expose them to algorithmic problem solving before immersing them in Java. We decided to use the MindStorms robots to accommodate student diversity, to introduce a fun element to the course, and to force the students to focus on problem analysis instead of detailed syntax. Our approach complements [2].Drizzle is a simple object-oriented scripting language. It supports repetition, selection, simple assignment statements, logical operators, numeric variables, and predefined objects representing components of a robot, i.e., sensors, motors, and the LCD display. Drizzle is purposely minimal to be suitable for students without prior programming experience. To encourage documentation, Drizzle supports comments.DIODE is the IDE that allows a MindStorms robot to be programmed in Drizzle. To achieve this, we used the leJOS API [3] to implement method call abstractions supporting the predefined objects. The IDE includes an intuitive GUI. It allows for automatic compilation of Drizzle code, including a translator from Drizzle to Java utilizing the predefined MindStorms objects. DIODE also directly interfaces to the robot's IR device. We provided these features because our typical user was familiar with text editing but was not familiar with command-line tools.Our CS0 course is currently taught in one 120-student section and meets 3 hours per week for 14 weeks. At least 3 hours are spent on each of algorithmic thinking and concepts of programming languages before Drizzle and DIODE are formally presented. The students see an actual problem with pseudocode and the corresponding Drizzle solution. A problem is then posed as a "Drizzle Team Challenge". Students must complete individual solution plans. The instructor then forms the student groups. Next, the teams produce solution plans. Finally, they are allowed to program with the actual robot. The lab has 3 computers with DIODE installed and 6 robots with 6 tracks. During the Fall 2004 offering, the 14 teams consisted of between 5 and 8 students. The large class size and small number of robots made smaller groups infeasible. No team solved the problem totally correctly during the first lab session. Not surprisingly, the smaller groups were more effective. All teams submitted at least a partial solution to the problem; 12 completed the solution. Students were excited about working with the robots.We are using Drizzle (and DIODE) again during Spring 2005. We expect to have smaller groups. We hope to evaluate the effectiveness of Drizzle; some possible approaches are additional questions in the course evaluation, surveys at the beginning and end of CS1, and analyses of CS1/CS2 retention rates. We may also compare the usage of Drizzle with the standard MindStorms approach and Alice [1].
J. C. Ernest, A. S. Bowser, S. Ghule, S. Sudireddy, Jameson P. Porter, Douglas A. Talbert, Martha J. Kosa
ITiCSE7
2005 A Unified Multiple-Level Cache for High Performance Storage Systems
abstract
Multi-level cache hierarchies are widely used in high-performance storage systems to improve I/O performance. However, traditional cache management algorithms are not suited well for such cache organizations. Recently proposed multi-level cache replacement algorithms using aggressive exclusive caching work well with single or multiple-client, low-correlated workloads, but suffer serious performance degradation with multiple-client, high-correlated workloads. In this paper, we propose a new cache management algorithm that handles multi-level buffer caches by forming a unified cache (uCache) which uses both exclusive caching in L2 storage caches and cooperative client caching. We also propose a new local replacement algorithm, frequency based eviction-reference (FBER), based on our study of access patterns in exclusive caches. Our simulation results show that uCache increases the cumulative cache hit ratio dramatically. Compared to other popular cache algorithms, like LRU, the I/O response time is improved by up to 46% for low-correlated workloads and 53% for high-correlated workloads.
Li Ou, Xubin He, Martha J. Kosa, Stephen L. Scott
MASCOTS3
2004 Treemap visualizations for CS2
abstract
Computer science instructors periodically need to update their classroom examples and programming assignments in order to reflect changes in current practice in the field and to discourage copying by students. As experienced CS2 instructors, we regularly face this challenge. The topics in our CS2 course are standard and include recursion, lists, stacks, queues, and trees (including B-trees as well as standard binary search trees and AVL trees). Our students use Java (including GUIs). We have experimented with having students use and write programs to visualize various data structures. The students have written programs to visualize search trees using the traditional approach in which ovals represent nodes and lines represent links. They have also written programs to visualize search trees via a Web browser [2]. We propose an alternate visualization technique based on treemaps. We believe that treemaps are a rich source for classroom examples and assignments for CS2 instructors. Trees are useful for storing hierarchical data, and they are naturally recursive. A tree is either empty, or it has a root node with subtrees. A root is connected to its subtrees by links or branches. We had an idea to draw a tree in a square, which would be split into multiple rectangles, one for each node in the tree. As we moved down a level in the tree, we toggled the direction of the split in the rectangles from vertical to horizontal or vice versa. The root node's size in the current rectangle corresponded to its relative weight in the current subtree. The structure of the tree could be inferred by the relationships among the rectangles and their relative widths and heights. We drew several of these embeddings by hand and noted that the patterns resembled art by the Dutch abstract artist Piet Mondrian [6]. We then implemented this visualization using the Java Power Tools [4] library and noted that this visualization can be enriched with colors and graphical patterns, as in the Kaleidoscope example [3]. Our idea is an active research area in computer graphics [7]. However, it still appears to be a novel teaching idea for CS2. Ben Shneiderman [5] was the first to study two-dimensional space-filling representations of trees; he called them "treemaps". His motivating problem was to visualize directories in order to determine disk utilization. His algorithm was similar to our algorithm. XML documents can also be visualized using his algorithm and others [1]. Our goal is to synthesize this treemap visualization literature [1, 5] into classroom materials for CS2 instructors.
Martha J. Kosa, Mark A. Boshart
ITiCSE1
2003 Growing a GUI from an XML tree
Mark A. Boshart, Martha J. Kosa
ITiCSE2
2002 Implementing student ideas in CS2: a simple IDE
abstract
It is very hard for faculty members to create programming assignments that are simultaneously challenging, accessible, and practical for students year after year. In some advanced undergraduate courses, most notably software engineering courses, students may specify their own programming projects. We demonstrate here that it is also possible for beginning undergraduate students to have good ideas for realistic programming projects, specifically a simple IDE (Integrated Development Environment) program which lets the user generate a basic GUI. The program then produces as output a Java source file, with some event-handling code, which can reproduce the GUI. Of course, we can't and don't expect the program to have all the features of a professional IDE, but it could be useful for CS1/CS2 students.A freshman CS2 student conceived and implemented this assignment in the Spring 2001 semester as part of an honors contract. Honors students elect to do extra work in courses for credit toward graduation with honors. Such a student designs a contract, to be approved by the instructor, indicating the extra work and its effect on the final grade. Although an honors student developed this project, this project is suitable in general for CS2 students.We now describe the features of the project. A settings frame and a drawing frame appear first. The settings frame allows the user to name the Java output file. It also has a Save button, a text field to control the arrow keys, and checkboxes that allow the user to choose if a main method will appear in the output file, if the resulting application frame will be centered on the screen, and if window listener code will be generated for the application frame. The right mouse button is used to add a component. When the mouse is released, the user chooses the component's type and then the desired variable name and caption. Components appear as black unfilled rectangles. The component declarations (alphabetically by variable name) and skeleton code for handling button clicks will appear in the output file. Clicking the left mouse button in a rectangle turns the rectangle red. The shift key and the left mouse button move such a component. The arrow keys resize the component. Component sizes will be preserved in the output file. The component's properties are updated with the C key. The delete key removes the component.We believe that this project is a challenging (but not impossible) and useful application of CS2 concepts.
Jason N. Wyatt, Martha J. Kosa, Mark A. Boshart
ITiCSE2
2001 XML and browser development activities in CS2
abstract
No abstract available.
Martha J. Kosa, Mark A. Boshart
ITiCSE1
2000 Distributed algorithms in the discrete mathematics course (poster session)
Martha J. Kosa
ITiCSE1
2000 One-write algorithms for multivalued regular and atomic registers
Soma Chaudhuri, Martha J. Kosa, Jennifer L. Welch
Acta Informatica2
1999 Beginners program Web page builders and verifiers
Martha J. Kosa
ITiCSE1
1996 What Critical Algebraic Property Allows Operations of Concurrent Abstract Data Types to be Fast? (Brief Announement)
abstract
No abstract available.
Martha J. Kosa
PODC1
1995 Lazy-Writer Multivalued Registers (Abstract)
abstract
No abstract available.
Martha J. Kosa
PODC1
1994 Making Operations of Concurrent Data Types Fast
abstract
We compare the costs of three well-known consistency guarantees (sequential consistency, linearizabilitv,
Martha J. Kosa
PODC1