University of Nevada, Las Vegas
2016 White House Champion of Change
This page is for students looking for more information on my courses. I have taught a wide variety of courses, including Software Engineering, Human-Computer Interaction, Automata Theory, Compiler Theory, Data Structures, Assembly, or a variety of others. My current class is listed below:
Current techniques in software design presented with emphasis on architecture first development. Introduction to the processes involved in development. Practice architectural design through a series of homework problems. Students work in teams to prepare the architecture for a software product.
Prerequisites: CS 326 and CS 370
The purpose of this course is to give students an introduction to developing software in a more realistic setting. In the first semester of the course (CS 472), students gather requirements; creating mockups and prototypes, while in the second (CS 473), they predominately implement and deploy their software. During both courses, students are required to choose and follow standard software engineering processes.Syllabus
Survey of advanced techniques for specifying and designing large software systems. System verification. Reliability and project management.
CS 370, CS 672, and CS 660, or consent of instructor.
The purpose of this course is to give students an introduction to modern software engineering. Notably, in modern software engineering, we often want to gain an accurate model or representation of human behavior under some conditions. For example, we might want to know how competing procedures impact a company's bottom line or the design of a programming language impacts professionals or students. Students will focus on learning empirical and statistical procedures for reliably analyzing software development in practice.Syllabus