The Center for Technology Innovation sponsors a series of day-long workshops on cutting-edge technology issues with nationally-known speakers. Open to the public, the $165 registration fee includes handouts, breaks, lunch, and parking in the UWM Union parking structure. Discounted rate is available for UWM MIS/ITM alumni for $145.

Programming in Functional Style: Reducing Accidental Complexity
Friday, April 13, 2018
Lubar Hall, N333

Workshop presenter, Dr. Venkat Subramaniam, is an award-winning author, founder of Agile Developer, Inc., creator of, and an instructional professor at the University of Houston. Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book ‘Practices of an Agile Developer’.

He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.


Most mainstream languages have favored the imperative style of programming in the past. Though most prevalent, that style brings along accidental complexity. The code gets verbose, often involves mutable state, and becomes hard to reason. Functional programming has been around for a long time and almost all mainstream languages now embrace this style of programming.

Functional Programming has been around for a while, but it is gaining popularity since most mainstream languages now support it. Furthermore, the gaining popularity of reactive programming and big data puts functional programming in the limelight. What does it mean to program in functional style? For those of us with experience in the imperative style, how do we approach thinking in functional style? How does functional style influence our design, coding, and the way we write common tasks? This workshop has been designed to answer those questions and to help you adapt to functional style of programming for your everyday tasks.

In this workshop we will start by learning the fundamentals of functional style of programming, how it differs from the imperative style, how it relates to the declarative style, and look at the various benefits of using this style. Instead of talking theory we will get hands on, using concrete examples from different languages, to create practical working code that brings out the benefits of functional style.

Note: you will need your laptop

Who should attend: Developers, architects, technical managers, anyone interested in and involved in development applications. This workshop is hands on, prior knowledge of programming is required. Prior experience with functional programming is not required.

The topics you will learn are:

Functional Style of Programming
-From Imperative Style
-To Declarative Style
-Declarative vs. Functional
-Higher order functions
-Lambda expressions

Thinking in Functional Style
-Using higher order functions
-Common tasks using functional style
-Applying functional decomposition
-Lambdas vs. closures
-Reasons for function purity

Working with Collections
-Iterating in functional style
-Filter, map, reduce operations
-When to use flatMap
-Joining values

Function Composition
-Function pipeline
-Performance concerns
-Lazy Evaluations
-Infinite collections


Recent workshops have included:

  • Microservices Architecture and Design
  • Building Evolutionary Architectures
  • Test Driven Development in Java using JUnit 5
  • Functional Programming in Swift
  • Angular 2/4 Hands-on Programming Codecamp
  • Six Essential Soft-Skills for the Technology Professional
  • Rediscovering JavaScript
  • A Thorough Introduction to Grails 3
  • Java Design Patterns
  • The Antifragility Edge: Business and Technology
  • Aurelia: Single Page Applications Done Right
  • A Swift Kickstart: Introducing the Swift 2.0 Programming Language
  • AngularJS Hands-on Programming Codecamp

To automatically receive information on upcoming workshops, please click here to request being added to our mailing list. 


The Center also sponsors panel discussions with IT leaders who present their thoughts on topics of interest to the local IT community. Audience participation follows the presentation.

For More Information

Dr. Atish Sinha
Director, Center for Technology Innovation
Professor, Information Technology Management
Lubar Hall N363
(414) 229-3301