111 research outputs found
Teaching Concurrent Software Design: A Case Study Using Android
In this article, we explore various parallel and distributed computing topics
from a user-centric software engineering perspective. Specifically, in the
context of mobile application development, we study the basic building blocks
of interactive applications in the form of events, timers, and asynchronous
activities, along with related software modeling, architecture, and design
topics.Comment: Submitted to CDER NSF/IEEE-TCPP Curriculum Initiative on Parallel and
Distributed Computing - Core Topics for Undergraduate
The Extreme Software Development Series: An Open Curricular Framework for Applied Capstone Courses
We describe an open, flexible curricular framework for offering a collection of advanced undergraduate and graduate courses in software development. The courses offered within this framework are further unified by combining solid foundations with current technology and play the role of capstone courses in a modern software development track. Our initiative has been very successful with all stakeholders involved
Natural XML for Data Binding, Processing, and Persistence
The article explains what you need to do to incorporate XML directly into your computational science application. The exploration involves the use of a standard parser to automatically build object trees entirely from application-specific classes. This discussion very much focuses on object-oriented programming languages such as Java and Python, but it can work for non-object-oriented languages as well. The ideas in the article provide a glimpse into the Natural XML research project
Scientific Programming: The Promises of Typed, Pure, and Lazy Functional Programming: Part II
This second installment picks up where Konrad Hinsen\u27s article The Promises of Functional Programming from the July/August 2009 issue left off, covering static type inference and lazy evaluation in functional programming languages
Plone and Content Management
In this column, the authors look at Plone, which they feel is one of the best content management systems available today. Even better, it?s distributed under a free open-source license: the cost of getting started is only limited to the time you have available to set up the software on a server. Plone is written in Python and uses the Zope application server infrastructure; it runs on most modern operating systems. The authors have even set it up at Loyola University Chicago in the Department of Computer Science. Besides being two faculty members who rely on Plone to host all our Web content, they have recently customized Plone for their department?s public Web site (www.cs.luc.edu). The end result is a site on which content can be maintained entirely over the Web at zero cost to their department. Everything you see on their Web pages was generated by a unique combination of plaintext authoring, clever plug-ins, and a site-wide style
Enhancing the CS Curriculum with with Aspect-Oriented Software Development (AOSD) and Early Experience
Aspect-oriented software development (AOSD) is evolving as an important step beyond existing software development approaches such as object-oriented development. An aspect is a module that captures a crosscutting concern, behavior that cuts across different units of abstraction in a software application; expressed as a module, such behavior can be enabled and disabled transparently and non-invasively, without changing the application code itself. Increasing industry demand for expertise in AOSD gives rise to the pedagogical challenge of covering this methodology and its foundations in the computer science curriculum. We present our curricular initiative to incorporate a novel course in AOSD in the undergraduate computer science curriculum at the intermediate level. We also discuss recent and planned efforts to integrate coverage of AOSD into existing courses
Unit Testing Considered Useful
Testing is an important part of application development. Hardware engineers, in particular, have a long established history of testing for the obvious reason that it\u27s awfully hard to rebuild a microprocessor every time a bug pops up in the design stage--not to mention the enormous headaches such bugs generate on the software side
Initial Experience in Moving Key Academic Department Functions to Social Networking Sites
We discuss our initial experience with the transition from conventional technology to social networking sites and other cloud-backed sites for three core business functions of an academic computer science department at a mid-size private university: course management, research collaboration, and community engagement. We ïŹrst discuss the social/cultural context that informs our technology choices, as well as the evolution of the technology choices themselves. Then, we identify the targeted department functions and their actors. Next, we describe the past and present technical architectures used to support these functions. We conclude with a discussion of our preliminary experience with this transition and to what extent our experience can be generalized into a blueprint that can be adopted by other organizations
Essential Tools: Version Control Systems
Did you ever wish you\u27d made a backup copy of a file before changing it? Or before applying a collaborator\u27s modifications? Version control systems make this easier, and do a lot more
- âŠ