Tech Talks

Tech Talks are an engineering-focused seminar series. The topics listed here tend to be more practical, rather than theoretical, in focus. Software Engineering and Computer Science students may be especially interested in these topics.

There have been 2 completed talks and 7 topic suggestions tagged with Tech Talks.

Related Tags

Completed Talks

Total Functional Programming

Delivered by Adam Hofmann on Friday March 3, 2017

Total functional programming is a paradigm of functional programming with the additional restriction that all functions must be total; that is, every function is defined for every element of its domain.

The immediate benefits of total functional programming are clear; every function in a total language is guaranteed to terminate and not cause a runtime error. This talk will cover the basics of writing and understanding functions that are total, as well as benefits that come from having totality.

Also in the scope of this talk is the major trade offs of total functional programming, including Turing completeness and things like input and output that seem unattainable. This is accompanied by strategies to write functions with non-trivial proofs of termination such that totality is guaranteed and verifiable by the interpreter.

Bitcoin and the Blockchain

Delivered by Ben Zhang on Friday February 17, 2017

In this talk, we will learn about the principles behind the Double Spend Problem, the Blockchain, and explore the various ways this technology is being used today.

Transferring money in the physical world is easy. However, the transfer of virtual currency is not as easy to validate. The Double Spend Problem has long stood in the way of a free (libre et gratis) virtual currency, and the world found a need for a third party (usually in the form of large banks) to validate all virtual transactions.

In 2008, a mysterious individual known as Satoshi Nakamoto published a paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System" which describes a system for virtual transactions to be validated through the distributed computing power of the community. The system, known as the Blockchain, uses hashing and non-deterministic mathematics to protect itself from Double Spending attacks. Nakamoto's paper led to the creation of free online currencies such Bitcoin, Litecoin, and Ethereum, which are used in marketplaces today.

Prerequisite Information: Middle school math.

Talk Suggestions

Abstraction in Technical Computing

Scientists, mathematicians, and engineers have an increasing need to write efficient computer programs but they tend to use specific languages for technical computing like Matlab or Mathematica rather than general purpose languages. The suggested reference discusses the properties a general purpose language would need to be able to also handle technical computing – one possibility for allowing efficient technical computing involves a powerful type system and dispatch system to enable generic, staged, and higher-order programming.

Required Background: First year CS at the level of CS 135 and 136.

Possible reference materials for this topic include

Quick links: Google search, arXiv.org search, propose to present a talk

Tech Talks computer science first year friendly polymorphism programming language type theory

Complex Event Processing Systems

The ever-increasing amount of information that needs to be processed has led to the development of Complex Event Processing systems such as Apache Storm or Twitter Heron. These systems distribute a workload over many machines in a cluster, and offer both efficiency and fault-tolerance.

Possible reference materials for this topic include

Quick links: Google search, arXiv.org search, propose to present a talk

Tech Talks computer science data science distributed system first year friendly parallel computing statistics

Dealing with Missing Data

Data are rarely perfect. Robust data science tools must have ways to deal with missing data. However, this is not always easy. A balance must be struck between performance and convenience.

Possible reference materials for this topic include

Quick links: Google search, arXiv.org search, propose to present a talk

Tech Talks computer science data science efficiency first year friendly statistics

IEEE 754-2008: Floating Point Arithmetic

Most programming languages provide a floating-point type. What is floating point, and how does it work? What caveats should programmers be aware of?

Possible reference materials for this topic include

Quick links: Google search, arXiv.org search, propose to present a talk

Tech Talks computational mathematics computer science first year friendly floating point number

Jupyter Notebooks

Jupyter Notebooks are a must-have for any data scientist or engineer. They are available for a wide variety of programming languages, particularly Python.

Possible reference materials for this topic include

Quick links: Google search, arXiv.org search, propose to present a talk

Tech Talks data science first year friendly statistics tutorial

Understanding LLVM

The LLVM Compiler Infrastructure Project now powers a wide variety of software, including major programming languages including Rust and Julia, as well as compilers for the popular C and C++ programming languages. Understanding how LLVM works, and being able to read some LLVM bytecode, is extremely useful for optimizing code.

Possible reference materials for this topic include

Quick links: Google search, arXiv.org search, propose to present a talk

Tech Talks compiler computer science efficiency first year friendly programming language

Zero-Cost Abstraction

Computer science is, fundamentally, about abstraction and efficiency. A programmer would rather use high-level bricks to build a product than worry about low-level details. Regrettably, the use of high-level bricks often comes at a cost in efficiency, forcing programmers to worry about low-level details. Recently, many programming languages have begun to stress the importance of zero-cost abstractions: ways to construct high-level bricks with zero efficiency cost.

Possible reference materials for this topic include

Quick links: Google search, arXiv.org search, propose to present a talk

Tech Talks abstraction computer science efficiency first year friendly