Coursework

The following is a sampling of courses I've taken for my Bachelor's in Computer Science at the University of Missouri - St. Louis.

Programming and Data Structures

Spring 2016

Course Description: Discusses properties and implementation of abstract data types such as lists, trees, stacks and queues. Introduces procedural and class abstraction, basic program architecture, use of interfaces, modular programming, and file processing.

Featured Projects:

Object-Oriented Programming

Fall 2016

Course Description: Introduces object-oriented concepts, terminology, and notation (UML) using Java. Covers encapsulation, classes, objects, inheritance, and the use of class libraries. Additional topics may include graphical user interfaces, applets, and related tools and technologies.

Featured Projects:

System Programming and Tools

Spring 2017

Course Description: Covers systems programming, scripting, libraries, utilities, and development tools. Additional programming topics include piping, binary files, exception handling, command-line arguments and symbolic debugging. This course also explores tools available in the Unix/Linux environments.

Featured Projects:

Web Programming

Spring 2017

Course Description: Provides a survey of current Web technologies including markup languages (such as HTML, CSS, XML), client side languages (such as JavaScript), server side languages (such as PHP), and Web protocols. Client-server computing projects are a course requirement.

Featured Projects:

Design and Analysis of Algorithms

Spring 2017

Course Description: Addresses the design and analysis of fundamental algorithms in computer science. Studies basic sorting algorithms, priority queues, order statistics, search trees, and hash tables. Analysis techniques may involve time and space complexity analysis of both iterative and recursive algorithms, analysis of algorithm correctness, and amortized complexity analysis.

Featured Projects:

Mobile And Ubiquitous Computing

Spring 2017

Course Description: First course in wireless networking providing a comprehensive treatment of wireless data and telecommunication networks. Topics include recent trends in wireless and mobile networking, wireless coding and modulation, wireless signal propagation, IEEE 802.11a/b/g/n/ac wireless local area networks, 60 GHz millimeter wave gigabit wireless networks, vehicular wireless networks, white spaces, IEEE 802.22 regional area networks, Bluetooth and Bluetooth Smart, wireless personal area networks, wireless protocols for Internet of Things, ZigBee, cellular networks: 1G/2G/3G, LTE, LTE-Advanced, and 5G.

Featured Projects:

Operating Systems

Fall 2017

Course Description: This course covers the structure of a generic operating system, considering in detail the algorithms for interprocess communication, process scheduling, resource management, memory management, file systems, and device management. It presents examples from contemporary operating systems and requires practical projects implemented within a modern operating system or simulator environment.

Featured Projects:

Introduction to Computer Graphics

Fall 2017

Course Description: This course covers the theoretical foundation and algorithms for computer graphics. Students learn the basics of graphics programming for modeling, rendering, and animation of 2D and 3D objects, using standard graphics API. A brief discussion of special graphics hardware, such as GPU, may be included.

Featured Projects:

Individual Studies

Fall 2017

Course Description: This course allows a student to pursue individual studies under the supervision of a faculty member. It may include development of a software project.

Featured Projects:

Program Translation (Compilers)

Spring 2018

Course Description: This course focuses on methods, techniques, and mechanisms used to create the abstraction from high level programming to machine level execution and also requires an individual semester long project.

Featured Projects:

Introduction to the Software Profession

Spring 2018

Course Description: This course focuses on software development and on the skills required for success in the software profession. Topics related to software development may include software process, models and views, software architectures, documentation, and testing strategies. Topics related to the profession may include ethics, licensing, copyright, trademarks, and professional conduct. Individual and group projects, research, and presentations may be required in this capstone course.

Featured Projects:

Introduction to Artificial Intelligence

Spring 2018

Course Description: This course provides an introduction to artificial intelligence. The list of topics may include search, planning, knowledge-based reasoning, probabilistic inference, machine learning, natural language processing, and practical applications.

Featured Projects:

Introduction to Data Mining

Spring 2018

Course Description: This course provides an introduction to data mining principles, algorithms and applications. Topics may include data preprocessing, data transformation, similarity and dissimilarity measures, data representation, classification techniques, association analysis, cluster analysis, regression, dimension reduction, and anomaly detection.

Featured Projects: