diff --git a/talk/penn-spring-2019/abstract.md b/talk/penn-spring-2019/abstract.md
new file mode 100644
index 0000000000000000000000000000000000000000..20ee8f5da333edd1d7d97572003ebb3dbdb40c6a
--- /dev/null
+++ b/talk/penn-spring-2019/abstract.md
@@ -0,0 +1,29 @@
+# Type Theoretic Gradual Typing
+
+Gradually typed languages allow for the gradual addition of static
+types to dynamically typed programs, helping one-off scripts, quick
+prototypes and legacy codebases mature into robust, reasonable
+programs. A key design principle is that this process be incremental:
+statically typed programs must be allowed to interoperate with
+dynamically typed programs or else entire codebases would have to be
+re-written before using the typed programs. However, different gradual
+languages and calculi disagree on the semantics of this
+interoperability, specifically if and when any types are checked
+dynamically at runtime.
+
+We show that type theoretic βη reasoning principles, chiefly η,
+distinguish between different dynamic type checking
+schemes. Furthermore, when combined with the principle of graduality
+(a gradual analogue of parametricity) we show that almost all of the
+cast semantics can be derived from an equational theory. By using a
+gradual type theory based on call-by-push-value as a metalanguage, we
+can derive cast semantics for many different evaluation orders from
+the same basic type theoretic principles.
+
+# Bio
+
+Max S. New is a PhD candidate in computer science at Northeastern
+University. His PhD work focuses on semantic models and (in)equational
+reasoning principles for gradually typed programming languages. More
+broadly, he is interested in the use of type theory and category
+theory to understand program semantics and language design.
diff --git a/talk/penn-spring-2019/homework.org b/talk/penn-spring-2019/homework.org
new file mode 100644
index 0000000000000000000000000000000000000000..8a24e45bde9a3c675276e57683cf55eef77a451b
--- /dev/null
+++ b/talk/penn-spring-2019/homework.org
@@ -0,0 +1,37 @@
+In gradually typed lambda calculus the following programs all pass the
+type checker because the dynamic type, called `?` is considered
+compatible with any type. However, dynamic type casts are inserted
+into the program when this occurs, and a runtime error is raised if
+the types are violated.
+
+In particular we get the following (derived) rule that says that
+annotating anything with the dynamic type gives it the dynamic type
+
+t : A
+------------
+(t :: ?) : ?
+
+Let t1,t2 be defined as follows.
+  t1 = (3,4) :: ?
+  t2 = (λ x:Int. x) :: ?
+
+How do you think each of the following programs should evaluate?
+
+Can you justify your answer from a type soundness principle?
+
+Does your answer change depending on whether the language is
+call-by-value or call-by-name?
+
+1. (λ x: (Int x Int). first x) t1
+2. (λ x: (Int x Int). first x) t2
+
+3. (λ x: (Int x Int). x) t1
+4. (λ x: (Int x Int). x) t2
+
+5. (λ x:(Int x Int). true) t1
+6. (λ x:(Int x Int). true) t2
+
+For more background, see the paper
+    Gradual Type Theory
+    New, Licata and Ahmed
+    POPL 2019
diff --git a/talk/penn-spring-2019/outline.org b/talk/penn-spring-2019/outline.org
new file mode 100644
index 0000000000000000000000000000000000000000..1382bc01a8372a45fb37663022c331a0aae47dca
--- /dev/null
+++ b/talk/penn-spring-2019/outline.org
@@ -0,0 +1,19 @@
+* TODO Expand
+  - [X] title/attribution
+  - [ ] More examples to illustrate other GT semantics
+  - [X] Contributions -> Main Results
+  - [ ] More about CBPV?
+  - [ ] More about Term Precision!
+  - [ ] A bit about operational models
+    - a gradual type is a pair of a static type and an ep pair.
+
+* Intro
+** Why Gradual Typing?
+** What is Gradual Typing?
+** Idea: Derive semantics from Properties
+* Properties of Gradual Typing
+* CBPV
+* Formalizing these in a type theory
+* Deriving semantics
+* Semantic Model?
+
diff --git a/talk/penn-spring-2019/upenn-GTT-talk.key b/talk/penn-spring-2019/upenn-GTT-talk.key
new file mode 100644
index 0000000000000000000000000000000000000000..a650c90b6c50b0992ab29fadb836cc8aa7f0ff59
Binary files /dev/null and b/talk/penn-spring-2019/upenn-GTT-talk.key differ