Plan II Honors Logo
Plan II Honors

Paul Navratil


Contact

Courses


T C 310 • Modes Of Reasoning

41715 • Spring 2022
Meets TTH 9:30AM-11:00AM ETC 2.102
QR

Course Number: T C 310 

Course Title: Applied Logic and Reasoning through Programming and Data Analysis 

Semester/Year: Spring 2022 

Instructor Name: Paul Navrátil  

Description: 

Computers and digital technology are endemic to everyday life, impacting the ways we communicate, the ways we learn, and the ways we work. These sophisticated machines, and the software that operates them, have radically altered many aspects of life from even just the turn of the century. Yet, at their core, these machines operate using a relatively small vocabulary of basic instructions, from which amazing complexity is produced. 

This course provides an introduction to computer programming meant to form a foundation for continued learning and practical use through your college career and beyond. During this course, you will learn the basic principles used to provide instructions to a computer, and you will learn to apply them to solve problems, assist your research and help present your findings. You will be able to generalize the concepts from this class to your work as you progress through Plan II (and any other major(s) you might pursue!). 

Texts and Readings: 

  • Introducing Python: Modern Computing in Simple Packages. Bill Lubanovic. 
  • Plotly Python Library. plotly - https://plot.ly/python/ 
  • IPython Notebook Gallery. plotly - https://plot.ly/ipython-notebooks/ 
  • PyTorch Tutorials. PyTorch - http://pytorch.org/tutorials/ 

Course Requirements: 

Your grade in this course will be determined by a combination of short programming assignments, a longer course project, and class participation: 

  • Short Programming Assignments: The best way to learn about programming is to program. There will be eight short assignments over the Fundamentals and Algorithms sections of the course. These will be used to reinforce material covered in class and to build your comfort and familiarity with programming concepts. 
  • Course Project: The final course section will apply your skills to perform data analysis and deep learning techniques on real-world data. The project will be broken into parts to assist you in maintaining development momentum and to address any challenges early in the process. In addition to the project code, you will submit a 3-5 page summary of your work and findings. 
  • Class Participation: Class will cover programming concepts through examples and analysis, and it will be an opportunity to address any questions or issues that arise. You will be expected to bring a question or comment to each class, and to aid your classmates (and your instructor!) in achieving a better understanding of the material. 

Grade Distribution: 

  • Short Programming Assignments: 5% each (40% total) 
  • Course Project: 5% + (3 x 10 %) + 15% (50% total) 
  • Project Proposal: 5% 
  • Milestone 1: 10% 
  • Milestone 2: 10% 
  • Milestone 3: 10% 
  • Final Project: 15% 
  • Class Participation: 10% 

Biography: 

Dr. Paul A. Navrátil is an expert in high-performance visualization technologies, accelerator- based computing and advanced rendering techniques at the Texas Advanced Computing Center (TACC) at The University of Texas at Austin. His research interests include efficient algorithms for large-scale parallel visualization and data analytics (VDA) and innovative design for large- scale VDA systems, with particular focus on in-situ, high-fidelity visualization techniques. My recent work includes software-defined visualization capabilities, particularly the NSF-funded GraviT project that enables large-scale distributed-memory ray tracing. This work enables photo-realistic rendering of the largest datasets produced on supercomputers today. 

He is Director of Visualization at TACC and leads TACC’s programs for large-scale visualization and human-data interaction. Dr. Navrátil's work has been featured in numerous venues, both nationally and internationally, including the New York Times, Discover, and PBS News Hour. He holds BS, MS and Ph.D. degrees in Computer Science and a BA in Plan II Honors from the University of Texas at Austin.  

When not helping power discoveries that change the world (TACC’s motto), Paul enjoys the Austin outdoors through trail running and golf, spending time with his wife and their menagerie, and maintaining his martial arts practice. 

T C 310 • Modes Of Reasoning

42779 • Fall 2021
Meets TTH 9:30AM-11:00AM PAR 210
QR

Course Number: T C 310

Course Title: Applied Logic and Reasoning through Programming and Data Analysis

Semester/Year: Fall 2021

Instructor Name: Paul Navrátil

 

Description:

Computers and digital technology are endemic to everyday life, impacting the ways we communicate, the ways we learn, and the ways we work. These sophisticated machines, and the software that operates them, have radically altered many aspects of life from even just the turn of the century. Yet, at their core, these machines operate using a relatively small vocabulary of basic instructions, from which amazing complexity is produced.

 

This course provides an introduction to computer programming meant to form a foundation for continued learning and practical use through your college career and beyond. During this course, you will learn the basic principles used to provide instructions to a computer, and you will learn to apply them to solve problems, assist your research and help present your findings. You will be able to generalize the concepts from this class to your work as you progress through Plan II (and any other major(s) you might pursue!).

 

Texts and Readings:

 

  • Introducing Python: Modern Computing in Simple Packages. Bill Lubanovic.
  • Plotly Python Library. plotly - https://plot.ly/python/
  • IPython Notebook Gallery. plotly - https://plot.ly/ipython-notebooks/
  • PyTorch Tutorials. PyTorch - http://pytorch.org/tutorials/

 

Course Requirements:

 

Your grade in this course will be determined by a combination of short programming assignments, a longer course project, and class participation:

 

  • Short Programming Assignments: The best way to learn about programming is to program. There will be eight short assignments over the Fundamentals and Algorithms sections of the course. These will be used to reinforce material covered in class and to build your comfort and familiarity with programming concepts.
  • Course Project: The final course section will apply your skills to perform data analysis and deep learning techniques on real-world data. The project will be broken into parts to assist you in maintaining development momentum and to address any challenges early in the process. In addition to the project code, you will submit a 3-5 page summary of your work and findings.
  • Class Participation: Class will cover programming concepts through examples and analysis, and it will be an opportunity to address any questions or issues that arise. You will be expected to bring a question or comment to each class, and to aid your classmates (and your instructor!) in achieving a better understanding of the material.

 

 

Grade Distribution:

 

  • Short Programming Assignments: 5% each (40% total)
  • Course Project: 5% + (3 x 10 %) + 15% (50% total)
  • Project Proposal: 5%
  • Milestone 1: 10%
  • Milestone 2: 10%
  • Milestone 3: 10%
  • Final Project: 15%
  • Class Participation: 10%

 

Biography:

 

Dr. Paul A. Navrátil is an expert in high-performance visualization technologies, accelerator- based computing and advanced rendering techniques at the Texas Advanced Computing Center (TACC) at The University of Texas at Austin. His research interests include efficient algorithms for large-scale parallel visualization and data analytics (VDA) and innovative design for large- scale VDA systems, with particular focus on in-situ, high-fidelity visualization techniques. My recent work includes software-defined visualization capabilities, particularly the NSF-funded GraviT project that enables large-scale distributed-memory ray tracing. This work enables photo-realistic rendering of the largest datasets produced on supercomputers today.

He is Director of Visualization at TACC and leads TACC’s programs for large-scale visualization and human-data interaction. Dr. Navrátil's work has been featured in numerous venues, both nationally and internationally, including the New York Times, Discover, and PBS News Hour. He holds BS, MS and Ph.D. degrees in Computer Science and a BA in Plan II Honors from the University of Texas at Austin.

 

When not helping power discoveries that change the world (TACC’s motto), Paul enjoys the Austin outdoors through trail running and golf, spending time with his wife and their menagerie, and maintaining his martial arts practice.

 

T C 310 • Modes Of Reasoning

41690 • Spring 2020
Meets TTH 9:30AM-11:00AM RLP 1.402
QR

Applied Logic and Reasoning through Programming and Data Analysis

Description:

Computers and digital technology are endemic to everyday life, impacting the ways we communicate, the ways we learn, and the ways we work. These sophisticated machines, and the software that operates them, have radically altered many aspects of life from even just the turn of the century. Yet, at their core, these machines operate using a relatively small vocabulary of basic instructions, from which amazing complexity is produced.

This course introduces logic and reasoning through computer programming. It is meant to form a foundation for continued learning and practical use through your college career and beyond. During this course, you will learn how to think about logic problems, particularly as they apply to our increasingly digital world. Along the way, you will also encounter the basic principles used to provide instructions to a computer, and you will learn to apply them to solve problems, assist your research and help present your findings. You will be able to generalize the concepts from this class to your work as you progress through Plan II (and any other major(s) you might pursue!) and into your post-collegiate life wherever it might take you.

Texts and Readings:

  • Selections from Gödel, Escher, Bach. Douglas Hofstadter.

  • Selections from The Signal and the Noise. Nate Silver.

  • Selections from Computer Power and Human Reason. Joseph Weizenbaum.

  • Introducing Python: Modern Computing in Simple Packages. Bill Lubanovic.

  • Keras: The Python Deep Learning Library. https://keras.io/

  • (additional readings may be added as the course evolves)

Course Requirements:

Your grade in this course will be determined by a combination of short programming assignments, a longer course project, and class participation:

    • Short Assignments: The best way to learn anything is to do it. In that spirit, these short assignments will ask you to exercise logic, reasoning and programming concepts from class. There will be eight short assignments over the Fundamentals and Algorithms sections of the course. These will be used to reinforce material covered in class and to build your comfort and familiarity with covered concepts.

    • Course Project: The final course section will apply your skills to perform data analysis and deep learning techniques on real-world data. The project will be broken into parts to assist you in maintaining development momentum and to address any challenges early in the process. In addition to the project code, you will submit a 3-5 page summary of your work and findings.

    • Class Participation: Class will cover logic, reasoning and programming concepts through examples and analysis, and it will be an opportunity to address any questions or issues that arise. You will be expected to bring a question or comment to each class, and to aid your classmates (and your instructor!) in achieving a better understanding of the material.

Grade Distribution:

  • Short Assignments: 5% each (40% total)

  • Course Project: 5% + (3 x 10 %) + 15% (50% total)

    o ProjectProposal:5%
    o Milestone1:10%
    o Milestone2:10%
    o Milestone3:10%
    o FinalProject:15%
  • Class Participation: 10%

 

  1. Provisional Class Schedule (subject to revision):

Class 1

Course Introduction, Overview and Foundation of the Python Technical Environment

 

Class 2

Statements, Operators and Conditionals

Short Assignment 1 Out

Class 3

Arrays and Hashes

 

Class 4

Control Flow: while loops

Short Assignment 1 Due Short Assignment 2 Out

Class 5

Control Flow: for loops, do loops

 

Class 6

Functions

Short Assignment 2 Due Short Assignment 3 Out

Class 7

Recursion

 

Class 8

File Input and Output, Data formats

Short Assignment 3 Due Short Assignment 4 Out

Class 9

Program and Program Structure

 

Class 10

Objects and Object-Oriented Design

Short Assignment 4 Due Short Assignment 5 Out

Class 11

Reasoning about Program Design

 

Class 12

Algorithms: basic sorting

Short Assignment 5 Due Short Assignment 6 Out

Class 13

Algorithms: efficient sorting

 

Class 14

Algorithms: basic searching

Short Assignment 6 Due Short Assignment 7 Out

Class 15

Algorithms: efficient searching

 

Class 16

Algorithms: merging and data integration

Short Assignment 7 Due

   

Short Assignment 8 Out

Class 17

Algorithms: reasoning about efficiency

 

Class 18

Regular Expressions and Pattern Matching

Short Assignment 8 Due Course Project Proposal Out

Class 19

Python Libraries and How to Use Them

 

Class 20

Applications: Course Project Proposal review, Milestone expectations, ensuring project success

Course Project Proposal Due

Class 21

Applications: Machine Learning - Foundations

 

Class 22

Applications: Machine Learning - Design

Course Project Milestone 1 due

Class 23

Applications: Machine Learning - Training

 

Class 24

Applications: Machine Learning - Applying

 

Class 25

Applications: Data Analysis Foundations

Course Project Milestone 2 due

Class 26

Applications: Data Analysis – Data Wrangling

 

Class 27

Applications: Data Analysis – 2D and 3D visualization

 

Class 28

Applications: Data Analysis – high- dimensional visualization

Course Project Milestone 3 due

Final

 

Course Project and Report due


Biography:

Dr. Paul A. Navrátil is an expert in high-performance visualization technologies, accelerator- based computing and advanced rendering techniques at the Texas Advanced Computing Center (TACC) at The University of Texas at Austin. His research interests include efficient algorithms for large-scale parallel visualization and data analytics (VDA) and innovative design for large- scale VDA systems, with particular focus on in-situ, high-fidelity visualization techniques. My recent work includes software-defined visualization capabilities, particularly the NSF-funded GraviT project that enables large-scale distributed-memory ray tracing. This work enables photo-realistic rendering of the largest datasets produced on supercomputers today.
He is Director of Visualization at TACC and leads TACC’s programs for large-scale visualization and human-data interaction. Dr. Navrátil's work has been featured in numerous venues, both nationally and internationally, including the New York Times, Discover, and PBS News Hour. He holds BS, MS and Ph.D. degrees in Computer Science and a BA in Plan II Honors from the University of Texas at Austin.

When not helping power discoveries that change the world (TACC’s motto), Paul enjoys the Austin outdoors, spending time with his wife and their menagerie, maintaining his martial arts practice, and trying to lower his golf handicap.

Profile Pages



  •   Map
  • Plan II Honors Program

    University of Texas at Austin
    305 East 23rd St
    RLP 2.102
    Austin, Texas, 78712-1250
    512-471-1442