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.

Test Driven Development in Java using JUnit 5
Friday, December 1, 2017
8:30 a.m. – 4:30 p.m., Lubar Hall N440

Workshop presenter, Daniel Hinojosa, will be demonstrating one of his favorite development techniques, Test Driven Development.

In Test Driven Development (TDD), we first write an executable test of what your application code must do. Only then do you write the code itself and, with the test spurring you on, you improve your design. You use the same technique to implement product features, benefiting from iterative development, rapid feedback cycles, and better-defined requirements. Simply put, TDD and its supporting tools and techniques lead to better software, faster.

In this live, hands-on training course, industry practitioner and TDD expert Daniel Hinojosa teaches you the basics of TDD using the Java programming language. You’ll learn about the best tools and techniques for getting started, including the latest JUnit that was released this year, Easy Mock, Mockito, Eclipse, and IntelliJ IDEA. You’ll then learn the mechanics through interactive group projects, Q&A, and a couple of practical challenges.

Who should attend:

Any Developer that is interested in test driven development.  The class will be done in Java and at times we will be discussing specific Java tools.  But if you are a developer in another language, you can watch or try your hand with Java and TDD.


Test Driven Development – The process in which we can check that our software is accurate and runs according to specification.

JUnit 5 – The latest JUnit that came out 2017, with some really nice features.

AssertJ – An excellent assertion library

EasyMock and Mockito – Mocking frameworks used for testing

IntelliJ and Eclipse – Integrated Development Environments used in Java and what we will be using in the class.

Refactoring – After establishing the test, you have the opportunity to create the cleaner and concise code.


Functional Programming in Swift
Friday, November 10, 2017

8:30am – 4:30pm, Lubar Hall N440

Workshop presenter, Daniel Steinberg, is the author of the best-selling book, “A Swift Kickstart” and has written apps for iPhone and the iPad since the SDKs first appeared and has written programs for the Mac all the way back to System 7. Daniel presents iPhone, Cocoa, and Swift training and consults through his company Dim Sum Thinking.

Swift is Apple’s Open Source language for programming the iPhone, iPad, Apple Watch, and Mac. Other companies are also beginning to be used as a server side and systems language. As we create code that executes in multiple cores it becomes more important that we’re able to reason about this code.

This workshop will introduce you to Functional Programming techniques using the Swift language that provide a powerful and safe way to write robust code. We’ll begin by looking at Swift functions and closures, we’ll explore some of the classic higher order functions built into the standard library, and end the day with a look at how we get from MVC to MVVM to Reactive Programming.

The topics you will learn:

  • Thinking Functionally – Parameters and Return Types in Swift; Model objects that support mutating and non-mutating methods; Using Generics to create flexible containers; Separating our code using Extensions and Protocols
  • Higher Order Functions – Functions that return other functions; Functions that consume functions; Passing closures; Map, Filter, Reduce, and Flat Map; Understanding Capture Lists
  • Digging Deeper into Map – Map and Optionals; Map and Result types; Non-Container types and Map; Our own Map
  • Designing our system – Classic MVC; Moving to MVVM; Finishing with a (not quite) Reactive Solution


Recent workshops included:

  • 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