111 research outputs found

    Teaching Concurrent Software Design: A Case Study Using Android

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    • 

    corecore