This is an introduction to creative software development and music making in Python. This material is intended for CS0/CS1 courses and for courses at the intersection of computing and the arts. The workshop will intro...
详细信息
ISBN:
(纸本)9781450329668
This is an introduction to creative software development and music making in Python. This material is intended for CS0/CS1 courses and for courses at the intersection of computing and the arts. The workshop will introduce music making activities for teaching traditional CS1 topics, GUIs, event-driven programming, and connecting to external devices (e.g., smartphones, digital pianos) via MIDI and OSC (Open Sound Control). Participants will be introduced to Jython Music (http://***), a library of Python modules for creative programming and music making, and will be making their own music artifacts a few minutes later. Intended audience: Computer science educators interested in teaching creative programming and computational thinking for CS0, CS1, introductory courses in the intersection of computing and the arts, and courses intended to attract and retain new CS majors. Each participant will receive a copy of (1) handouts to be used during the workshop, (2) sample student assignments and projects, (3) API documentation, (4) all required software, and (5) numerous sample programs. Laptop required (with Java JDK 7 or higher). All other software will be provided. Headphones are recommended.
This is an introduction to creative software development and music making in Python. This material is intended for CS0/CS1 courses and for courses at the intersection of computing and the arts. The workshop will intro...
详细信息
ISBN:
(纸本)9781450336857
This is an introduction to creative software development and music making in Python. This material is intended for CS0/CS1 courses and for courses at the intersection of computing and the arts. The workshop will introduce music making activities for teaching traditional CS1 topics, GUIs, event-driven programming, and connecting to external devices (e.g., smartphones, digital pianos) via MIDI and OSC (Open Sound Control). Participants will be introduced to Jython Music (http://***), a library of Python modules for creative programming and music making, and will be making their own music artifacts a few minutes later. Intended audience: Computer science educators interested in teaching creative programming and computational thinking for CS0, CS1, introductory courses in the intersection of computing and the arts, and courses intended to attract and retain new CS majors. Some familiarity with Python expected. Each participant will receive a copy of (1) handouts to be used during the workshop, (2) sample student assignments and projects, (3) API documentation, (4) all required software, and (5) numerous sample programs. Laptop required (with Java JDK 7 or higher). All other software will be provided. Headphones are recommended.
Distributed software remains susceptible to data races and poor scalability because of the widespread use of locks and other low-level synchronization primitives. Furthermore, using this programming approach is known ...
详细信息
Distributed software remains susceptible to data races and poor scalability because of the widespread use of locks and other low-level synchronization primitives. Furthermore, using this programming approach is known to break encapsulation offered by object-oriented programming. Actors present an alternative model of concurrent computation by serving as building blocks with a higher level of abstraction. They encapsulate concurrent logic in their behaviors and rely only on asynchronous exchange of messages for synchronization, preventing a broad range of concurrent issues by eschewing locks. Existing actor frameworks often seem to focus on CPU-bound workloads and lack an actor-oriented I/O infrastructure. The purpose of this thesis is to investigate the scalability of user-space I/O operations carried out by actors. It presents an experimental actor framework named React++, with an M: N runtime for cooperative scheduling of actors and an integrated I/O subsystem. Load distribution is policy-driven and uses a variant of the randomized work-stealing algorithm. The evaluation of the framework is carried out in three stages. First, the efficiency of message delivery, scheduling and load balancing is assessed by a set of micro-benchmarks, where React++ retains a competitive score against several well-known actor frameworks. Next, a web server built on React++ is shown to be on par with its fastest event-driven counterparts in the TechEmpower plaintext benchmark. Finally, the runtime of an existing messaging library (ZeroMQ) is augmented with React++, replacing the backend and delegating all network I/O to actors without incurring any substantial overhead.
In this paper, we describe techniques of integrating the traditional, object-oriented console model with an object-oriented, event-driven model of programming in the first course. We present a design methodology succe...
详细信息
ISBN:
(纸本)1581130856
In this paper, we describe techniques of integrating the traditional, object-oriented console model with an object-oriented, event-driven model of programming in the first course. We present a design methodology successfully used to provide a transition from the console model to an event-driven model, relating both to problem-solving strategies.
Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping implicit which procedures are called, but also where or when-...
详细信息
Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping implicit which procedures are called, but also where or when-under implicit invocation with implicit announcement, the call site contains no signs of that, or what it calls. Recently, aspect-oriented programming has popularized implicit invocation with implicit announcement as a possibility to separate concerns that lead to interwoven code if conventional programming techniques are used. However, as has been noted elsewhere, as currently implemented it establishes strong implicit dependencies between components, hampering independent software development and evolution. To address this problem, we present a type-based modularization of implicit invocation with implicit announcement that is inspired by how interfaces and exceptions are realized in JAVA. By extending an existing compiler and by rewriting several programs to make use of our proposed language constructs, we found that the imposed declaration clutter tends to be moderate;in particular, we found that, for general applications of implicit invocation with implicit announcement, fears that programs utilizing our form of modularization become unreasonably verbose are unjustified.
This paper presents the image server of the VISOR cloud agnostic virtual machine images management service. An evaluation approach is also described and the results are discussed. VISOR is not intended to fit in a spe...
详细信息
This paper presents the image server of the VISOR cloud agnostic virtual machine images management service. An evaluation approach is also described and the results are discussed. VISOR is not intended to fit in a specific cloud framework but rather to overreach sharing and interoperability limitations among different frameworks. Such feature is achieved by relying on a flexible image metadata schema and in a storage abstraction layer, where the latter seamlessly abstracts the heterogeneity of distinct cloud storage systems into which images can be saved. VISOR is an open source highly distributed system composed of several independent web services. In its development we have focused in modularity, extensibility and performance. Conducted evaluation tests have shown encouraging results regarding performance and scalability.
Object-Relational Mapping(ORM) is often used between tiers in a Web-based system to automate the persistence of data to secondary storage. ORMs work by transparently providing developers with an object-oriented repres...
详细信息
Object-Relational Mapping(ORM) is often used between tiers in a Web-based system to automate the persistence of data to secondary storage. ORMs work by transparently providing developers with an object-oriented representation of some view of the tables in a database. Although the ORM approach is beneficial, it is not easy for a developer to integrate push-style development into object-relational model. In this project, we investigate an event-driven style of programming where developers could register for notification of updates to specific properties of ORM mapped objects. A key challenge in this context is maintaining consistency between the state of the objects of the ORM and the high-level event registration abstractions exposed to programmers. We use a running example from the RubiS web application benchmark example as evaluation to demonstrate the performance implications of the approach.
event-driven programming is progressively replacing the call-stack model to improve flexibility, efficiency and scalability in SOA. Enterprise applications often deal with large messages attached to asynchronous event...
详细信息
ISBN:
(纸本)9781479906505
event-driven programming is progressively replacing the call-stack model to improve flexibility, efficiency and scalability in SOA. Enterprise applications often deal with large messages attached to asynchronous events. This could reduce the benefits provided by event-driven programming since the need for having every information propagated as event is counterbalanced by wasting resources when large messages are entirely propagated to destinations that do not use all of them. In this paper, we propose the adoption of the D-WSLink framework for improving data transfers by using a composite and extensible declarative mechanism to inject the desired message transfer strategies into the underlying middleware. At the current stage, we focus mainly on (conditional) lazy transfer mechanisms even though the framework is able to support also smarter strategies. In particular, we compare, through an experimental analysis, our system with Apache Camel in delivering events with large attachments. The results show that the proposed approach is effective not only for programming but also at performance level.
暂无评论