Colloquium Archive

Robots in CS1: Overview, Bluetooth, Tone Generation, and Testing with eSpeak

Henry Walker
Professor Emeritus of Computer Science and Mathematics
Grinnell College

03/30/2022

As the Computer Science Curriculum continues to evolve at Sonoma State University, a new approach for CS 115, Programming I, is being offered for one section in Spring 2022. Continuing long-standing themes, fundamental concepts (e.g., from the University Catalog) continue, including imperative problem solving, variables and expressions, conditional statements, iteration, simple I/O, program organization, program style and maintainability, and structure programming. However, four elements are rather different from recent offerings of the course:

  • Programs utilize the C programming language (e.g., neither Python nor C++).
  • The control of robots serves as an on-going application theme.
  • With the use of C, considerable attention is devoted to low-level elements of computing (e.g., the run-time stack, addressing, and data representation).
  • The course follows a lab-based pedagogy, in which lectures and labs will be integrated---students work collaboratively on a new lab almost every day (about 40 labs for the semester).

As background, this course has evolved with development by the speaker with several student teams since Summer 2011, and the approach has been used in introductory courses at Grinnell College, the University of the South, Williams College, and the University of Puget Sound.

This talk with begin with an overview of the course and a demonstration of some robot capabilities.  The presentation will continue with a discussion of selected technical elements, including basics of Bluetooth communication, tone generation with both blocking and non-blocking commands, and the use of a speech synthesizer as part of program testing.

TBD

Todd Ziesing
Terrace Consulting, Inc.

04/06/2022

The presentation will be split into several pieces - all focused on Enterprise Technology application(s) for a fictitious company.  The first part of the presentation will set the context of what we do - analyze, design, develop and implement Enterprise Technology to enable eCommerce, Supply Chain, ERP and Business Intelligence.  This will be a high-level overview to establish context.  After that we're going to present a pro-forma project focused on B2B Supply Chain enablement for a fictitious logistics company.  We'll discuss the need to design and develop a custom solution as there was no "out of the box" solution suitable to the problem set.  After that we'll discuss the analysis phase of the project (gathering requirements), the design phase (technical design / enterprise architecture), the execution of the project (Agile Sprint Plan), the deployment of the solution and the implementation of CICD to enable continuous updating and improvement.  All this will be presented mostly via graphics with a minimum of text so the concepts will be simpler to grasp.

Improving code quality through Test-Driven Development

Daniel Holz ('16)
Ciena

04/13/2022

Test-Driven Development (TDD) is a software development technique that relies on test cases to be written prior to implementation code. In this talk I will discuss in detail how TDD is practiced, the impact it has on the design and maintainability of software, and share my experiences developing enterprise-scale software both with and without TDD.

Performance Matters

Emery Berger
Professor
University of Massachusetts Amherst

04/20/2022

Performance clearly matters to users. For example, the most common software update on the AppStore is "Bug fixes and performance enhancements." Now that Moore's Law has ended, programmers have to work hard to get high performance for their applications. But why is performance hard to deliver?

I will first explain why current approaches to evaluating and optimizing performance don't work, especially on modern hardware and for modern applications. I then present two systems that address these challenges. Stabilizer is a tool that enables statistically sound performance evaluation, making it possible to understand the impact of optimizations and conclude things like the fact that the -O2 and -O3 optimization levels are indistinguishable from noise (sadly true).

Since compiler optimizations have run out of steam, we need better profiling support, especially for modern concurrent, multi-threaded applications. Coz is a new causal profiler that lets programmers optimize for throughput or latency, and which pinpoints and accurately predicts the impact of optimizations. Coz's approach unlocks previously unknown optimization opportunities. Guided by Coz, we improved the performance of Memcached (9%), SQLite (25%), and accelerated six other applications by as much as 68%; in most cases, this involved modifying less than 10 lines of code and took under half an hour (without any prior understanding of the programs!). Coz now ships as part of standard Linux distros (apt install coz-profiler).

Automotive ECS Development, Verification & Validation: Recent Trends & Challenges

S. Ramesh
Senior Tech Fellow
General Motors Research and Development Division

04/20/2022

Electronics, Control and Software (ECS) assets have taken a central place in today’s vehicles.  They have been ever increasing in content and exploding in complexity thanks to the demands of advanced driver assist systems, and highly automated driving features. In the recent times, there have been multiple evolutions that are underway in the development of ECS assets: (i) Introduction of AI/ML Components for feature implementations, (ii) Shift from traditional domain controllers to more centralized architecture, (iii) Adoption of agile software development, and Continuous Improvement/Continuous Deployment (CI/CD), (iv) from static to adaptive SW architectures. This talk will focus on the recent challenges to the development, verification & validation of ECS systems and how the industry is responding to these with solutions that include: (a) guidelines & standardization of AI/ML Component Development and V&V, (b) new safety processes for dealing with functional insufficiency, (c) system level modeling and analysis and (d) scenario-based verification.

Pages