Session 1 (1:30 – 4:30 PM)

1A: Computer Engineering Curriculum Guidelines (FREE workshop - costs covered by NSF grant)

John Impagliazzo; Susan Conry; Eric Durant; Andrew McGettrick; Mitchell A Thornton; Timothy Wilson

Participants will learn about the revisions process and give feedback on the second draft of the updated ACM/IEEE-CS 2004 "Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering" known as CE2004. In 2011, the ACM and the IEEE-CS created the CE2004 Review Task Force (RTF) and charged it with reviewing and determining the extent to which the CE2004 document required revisions. The RTF reported on its survey of academic and industry constituents in July, 2011. It also recommended specific contemporary topics to be strengthened or added while de-emphasizing other topics that appeared to be waning from the mainstream. Additionally, the RTF recommended that the societies form a joint committee to update and edit the earlier document and to seek input and review from the computer engineering industrial and academic communities through workshops co-located at major conferences. This preconference workshop will engage the computer engineering education community in evaluating the current draft and planning revisions to the guidelines for publication in 2014. 

1B: Modeling Software the Alloy Way

Michael J. Lutz  

The goal of this workshop is to introduce Alloy - both the language and support tool - to faculty interested in formal methods and mathematical modeling. After a brief introduction to Alloy concepts, the tool and language will be explored by interactively developing a simple software system model. This approach mirrors the way Alloy is taught and used within RIT's undergraduate software engineering program. 

1C: Programming Board Game Strategies in CS2

Ivona Bezakova; James Heliotis; Sean Strout

This workshop presents freshman-level projects based on designing and programming player strategies for well-established board games. Unlike modern computerized games, board games are typically discrete, where the game state can be stored in basic data structures, and a variety of search techniques can be used to evaluate possible player moves. Such board games provide a natural context for many introductory Computer Science topics. The strategy component makes the project open-ended, motivating the students to keep improving their code. After appropriate background information is presented, to better understand how the project works from the students' perspective, participants will act as students, brainstorm through a variety of data structures, and develop a small part of a player module.

1D: Why are continuous-time signals and systems courses so difficult? How can we make them more accessible?

Mario Simoni  

This NSF sponsored workshop offers engineering and science faculty an engaging opportunity to explore how to improve learning in introductory continuous-time signals and systems (CTSS) courses. The two primary goals of the workshop are to provide: an interactive discussion of the sources of difficulty in CTSS courses in order to define the "problem", and a hands-on experience with laboratories that have been used at Rose-Hulman Institute of Technology and Bucknell University to improve learning in CTSS courses.

1E: Using Problets for Problem-Solving Exercises in Introductory C++/Java/C# Courses 

Amruth N. Kumar

This workshop will help participants introduce problem-solving exercises into their introductory C++/Java/C# programming courses. The purpose of problem-solving exercises is two-fold: they supplement classroom instruction and complement the programming projects traditionally assigned in the course. The benefits of problem-solving exercises are many: they improve students’ comprehension of programming constructs, their self-confidence, especially that of female students, and their coding skills.  In this workshop, problets ( will be introduced as a tool for problem-solving exercises. They parameterize problems to deter plagiarism; provide step-by-step explanation of the correct solution to each problem, which helps students learn; and adapt to the learner’s needs. They are a web-based service freely available for educational use. Problets have been rigorously evaluated, and have been adopted and used by dozens of instructors every semester since 2004. The workshop is appropriate for instructors of introductory C++/Java/C# programming courses in Computer Science or engineering. Participants are asked to bring a WiFi-enabled laptop to the workshop for hands-on experience.


Session 2 (5:30 – 8:30 PM)

2A: Inspiring Inventive Genius in Middle and High School Students with Chain-Reaction STEAM Machines™

Shawn Jordan; Odesma Dalrymple; Nielsen Pereira

A STEAM Machine™ is a Rube Goldberg®-style chain reaction contraption that completes a simple task in an overly complex way. This hands-on workshop introduces participants to the project-based STEAM Machines™ program, where middle or high school students brainstorm ideas, design, and build creative inventions that solve everyday problems - like sending a text message - using chain-reaction machines. This hands-on workshop will begin with a description of the STEAM Machines™ program, and a video of a chain-reaction machine from a recent camp offering. Examples of how science, technology, engineering, arts, and math learning objectives are addressed by the curriculum (including 21st century skills) will be presented, along with the pedagogical techniques employed. Opportunities for assessment of knowledge, skills, and attitudes of students will be discussed. Then, results of current design-based research on the STEAM Machines™ program will be presented including a discussion of its effectiveness and impact. 

2B: The Erlang Approach to Concurrent System Development

Michael J. Lutz  

Erlang, a functional language with roots in Prolog, has been used by Erickson, Ltd., to develop robust, fault-tolerant, distributed communications switches. More recently, the symmetric multiprocessing capabilities inherent in the language have been fully incorporated into Erlang's interpretive virtual machine. The goal of this workshop is to introduce Erlang - a functional language designed for use in developing concurrent and distributed system - to computer scientists interested in the language as well as computer scientists and software engineers whose focus is software design. Participants will install the Erlang system on their notebooks, and will engage in activities along with the organizer. Both sequential and concurrent systems - small though they may be - will be developed in conjunction with the presentation. 

2C: An Online Revolution in Learning and Teaching: from e-books to MOOCs

Frank Vahid

College-level online learning took off in a big way in 2012, and is likely to impact every department and teacher in some manner. This workshop will highlight major developments in online education technology in engineering and computer science. We'll describe the latest trends in: teaching modalities like blended, flipped and online; MOOCs like Udacity, Coursera, and EdX and the impact they are having on traditional education; web-native learning material and tools like MyMathLab and Zyante; developing and/or using online teaching material for engineering and computing like interactive quizzes, animations, and simulations like Zyante tools, Hype tools, tablet capture, lecture capture; and methodologies and technology for team teaching. We'll share lessons from some experienced teachers of online and hybrid (online plus in-person) courses, and include discussion on how departments and teachers might embrace the trend. We'll also discuss methods and technology for instructors with a range of expertise to successfully collaborate to deliver impactful instructional experiences.

2D: Teaching Service-Oriented Programming to CS and SE Undergraduate Students (FREE workshop - costs covered by NSF grant)

Xumin Liu, Rajendra K. Raj, Tom Reichlmayr

This workshop will introduce the participants to the fundamental concepts and techniques of a new programming paradigm, Service-Oriented Programming (SOP), which allows developing applications using services as the building blocks. SOP has gained significant popularity in industry since it greatly increases software reuse. The related topics can be incorporated into existing programming courses, such as CS2 and PLC, as well as related elective courses, such as software engineering and web services. Service-Oriented Programming (SOP) is a new programming methodology that allows developing software applications by linking and composing existing services. It builds on top of OOP as services are usually developed in an OO fashion and then wrapped as Web services, and takes a further step to software reuse. More specifically, OOP allows one to model and implement software components as objects, while SOP allows to model and implement software systems in terms of services, which can be accessed on the Web. Presenters will introduce the problem areas and the motivation behind the SOP paradigm, the techniques of designing and implementing services, and the techniques of developing applications using services. The topics covered include service-oriented architecture, web services, service description and discovery, service invocation, service composition architecture, and core SOP protocols (e.g., WSDL, UDDI, SOAP, and XPDL). 

2E: Refining a Taxonomy for Engineering Education Research (FREE workshop – costs covered by NSF grant)

Cindy Finelli

Engineering education research is a diverse, rapidly-evolving, international field in which scholars apply the methods of educational research to address a variety of issues pertaining to teaching and learning in engineering. As the field has grown, so has the need for a standardized terminology and an updated taxonomy to map and communicate research initiatives, and refining such a taxonomy is the focus of this workshop. Participants will engage in activities to reflect on a draft taxonomy and offer suggestions to refine it. Interested participants at any experience level are encouraged to join this dialogue.