Classes

This is a selection of classes I took as part of my Master of Science degree requirements at University of California, Riverside.

  • CS 246 - Advanced Verification Techniques in Software Engineering

    This class covered verification techniques for concurrent and complex systems, temporal logics (CTL and LTL), symbolic model checking, and partial order reduction. We read the book "Principles of Model Checking" by Christel Baier and Joost-Pieter Katoen that I highly recommend for people interested in model checking. As part of a project for this class, I worked on verifying confluence and termination for an ECA rules based cyber physical system. [More details on this project].

  • CS 206 - Testing and Verification Techniques for Software Engineering

    This class covered testing techniques and an introduction to verification techniques. We read the book "Foundations of Software Testing" by Mathur. We covered testing techniques such as black box testing and model based testing, and other test generation approaches, static and dynamic analysis and we had an introduction to model checking. I gave a presentation on Communicating FSMs. [Slides]

  • CS 234 - Computational Methods for the Analysis of Biomolecular Data

    This class was an introduction to Biology and related computational problems. We covered Biology fundamentals (a fascinating realm), some probability and statistics basics, and memory efficient data structures for DNA sequences storage and alignment. As part of the class project, I implemented a C++ generalized suffix-tree, a data-structure that stores all the suffixes of the concatenation of two strings using Ukonnen's algorithm, and an algorithm that finds the maximum unique matches between the two strings.

  • CS207 - Advanced Programming Languages

    This class is an advanced class on programming languages and type systems that introduced me to the beauty of ML and type systems. We covered lambda calculus, type systems, how to reason about a program's type safety, correctness, and semantics. We also learnt O'Caml and were given as assignments some code snippets to implement. It was a lot of fun. We read the book "Types and Programming Languages" by Benjamin Pierce. This book is a great introduction to type systems and programming languages theory and it is written in a simple, clear, and elegant way. We also read few papers mostly on type systems. As part of the class prject, I started working on a type system for Binary Decision Diagrams client code and libraries. [More details on the project].