School

Relevant or interesting classes I took in my time at the University of Texas at Austin

Spring 2016

Declarative Programming

CS 378

https://www.cs.utexas.edu/~vl/teaching/

  • Used CLINGO, a declarative programming tool, to solve problems ranging from standard NP Hard problems to math puzzles to real world problems
  • Read papers on and studied the theory and applications behind declarative programming and answer set solvers

Ethical Hacking

CS 378

  • Studied and used real world security methodologies and tools like nmap, metasploit, aircrack, John (with and without password lists like rockyou), and burp
  • Participated in a premade in class network capture the flag competition for the midterm
  • For our final project, we created a tool that, given a range of IPs, would scan those IPs, find live hosts in that range of IPs, find out which of those hosts were web servers (ports 80 and/or 443 open), and crawl the websites performing automated web attacks on it including static analysis of all JavaScript to find known vulnerabilities and dynamic analysis to perform attacks through HTTP requests

Fall 2015

Big Data Programming

CS 378

https://www.cs.utexas.edu/~dfranke/courses/2015fall/cs378-BDP.htm

  • Went over Map Reduce and various Map Reduce design patterns such as
    • Inverted Index
    • Custom Writables and AVRO Objects
    • Joins
    • Filtering
    • Job Chaining
  • Went over Spark and Spark design patterns such as inverted index and session filtering

Intro to Security

CS 361

https://github.com/mtesauro/ut-cs-361

  • Went over a wide variety of information security concepts, attacks, and defenses
  • Practiced security attacks through Hacking-Lab
  • Performed an automated test to detect DOM Based cross-site scripting in WebGoat using Gauntlt and a headless webdriver, Watir

Debugging and Verifying Programs

CS 340D

http://www.cs.utexas.edu/users/emerson/cs340d.txt

  • Went over topics concerning debugging and verification of programs, including Hoare logic and temporal logic
  • Wrote a research essay entitled "Game Theory Applications to Temporal Logic" over a cross section of elementary game theory and it's applications to temporal logic

Spring 2015

Object Oriented Programming

CS 371P

  • Went over object oriented programming with a focus on the SOLID (Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion) principles.
  • Practiced psuedo-realistic C++ projects involving github, pair programming, and continuous integration via Travis CI.

Compilers

CS 375

http://www.cs.utexas.edu/users/novak/cs375.html

  • Covered the phases of the compiler, including lexical analysis, syntactic analysis and parsing, code optimization, code generation.
  • Covered Regular and Context Free Grammars, Types of Parsers, Symbol Tables, Array references, records, and pointers, Linking and Loading.
  • Implemented a Pascal compiler that compiled Pascal code into x86 assembly. This includes the following phases
    • 2 versions of lexical analysis, one using C and another using lex.
    • A parser using yacc.
    • A code generator that also performed optimizations.

Operating Systems 2

CS 350F

  • Went over the following concepts
    • System Calls
    • Synchronization and Concurrency
    • Virtual Memory
    • File Systems and Disk Management
    • Deadlock and Distributed Deadlock
    • Security and Protection
    • Generalized Rate Monotonic Scheduling

Fall 2014

Theory of Computation

CS 353

http://www.cs.utexas.edu/~diz/353/

  • Covered topics including Turing Machines, Time and Space complexities and classes, useful cases for "hard" problems, and approaches to solving "hard" problems

Network Security

CS 361S

PHP/SQL

CS 105

https://www.cs.utexas.edu/~jthywiss/C%20S%20105%202014%20Fall%2052715%20Syllabus.pdf

  • Created a bidding web application on the LAMP platform.
  • Conformed web application to both HTML 5 and XML web standards as well as following CSS 2.1 standards.

Spring 2014

Algorithms and Complexity

CS 331

http://www.cs.utexas.edu/users/plaxton/courses.html

  • Went over topics such as
    • Stable Marriage, Graph Problems and Traversals, Greedy Algorithms, and Divide and Conquer Algorithms
    • Dynamic Programming, Max-flow Min-cut problems, and the Ford-Fulkerson Algorithm
    • NP, NP-completeness, PSPACE, PSPACE-completeness, Undecidability, the Halting Problem
    • Approximation Algorithms and Randomized Algorithms
  • Used techniques, discrete math, and proofs to implement and design algorithms to solve the same problem, the optimization of an auction (creating a Maximum Weight Maximum Cardinality Matching of a bipartite graph), in increasingly faster times. We started with the naive solution of O(n!), brought it down to O(n^2) through simple observations, and finally ended up at a runtime of O(n) taking a dynamic inspired approach.

Computer Networks

CS 356

http://www.cs.utexas.edu/~gouda/

  • Explored the theory of networks using the professors self created Abstract Protocol Notation.
  • Through this AP Notation, learned about
    • TCP, UDP, and error detection in both. Also went over error recovery and flow control for TCP.
    • Local and global topology maintenance, along with routing and switching.

Intro to Computational Linguistics

LIN 353C

http://www.katrinerk.com/courses/intro-to-computational-linguistics-ug

  • Implemented concepts we learned in class using python and the NLTK (Natural Language Toolkit) addon.
  • Went over concepts such as
    • Regular Expressions
    • Finite State Automata and Transducers
    • Part of Speech Tagging and Chunking
    • Classification

Fall 2013

Operating Systems

C S 439

http://www.cs.utexas.edu/~ans/classes/cs439/index.html

  • Created a simple user shell
  • Modified a partially implemented Operating System called PintOS. More specifically
    • Changed from a single threaded system to a multithreaded system
    • Implemented argument passing via a stack and system calls such as exec, read, and wait
    • Allowed stack growth via page faults and changed the virtual memory system from using contiguous allocation to using a page table, frame table, and supplemental page table
    • Modified the filesystem to use multi-leveled index inodes and allowed the creation and traversal of directories

Perl

C S 105

  • Learned how to code in Perl
  • Created a program to use IMDB's database to calculate a given actor or actress' degree from Kevin Bacon

Spring 2013

Computer Organization and Architecture

C S 429

  • Wrote a y86, a toy assembly language based on x86, interpreter
  • Optimized a cache to operate twice as efficiently through various optimizations

Fall 2012

Data Structures

C S 314

http://www.cs.utexas.edu/users/novak/cs314.html

  • Learned about the paradigm of Lisp
  • Solved algebraic equations with pattern matching
  • Experimented with path finding via Dijkstra's algorithm, Prim's algorithm, and A* pathfinding
  • Experimented with MapReduce

Usability and User Centered Design

UGS 302

http://courses.ischool.utexas.edu/Bias_Randolph/2013/Spring/UGS303/index.html

  • Performed a heuristic evaluation on the UT School of Information Website
  • Studied other usability tests such as remote usability testing, surveys, field testing, and crowd sourced usability testing

Logic, Sets, and Functions

C S 313K

http://www.cs.utexas.edu/~gouda/

  • Studied boolean formulas, predicates, basic proofs, graph theory, sets, functions, recurrences, and Big-O, Omega, and Theta notations

ACM - Association for Computing Machinery

  • VP Finance: May 2013 - May 2015
  • National ACM Member: August 2013 - August 2015
  • Member of Student Chapter: August 2012 - Present

Longhorn Lockpicking Club

  • Webmaster: May 2013 - May 2014
  • Member: August 2012 - May 2014