Following are the papers, documents, essays, and articles I wrote. Feel free to use the information but I request that you please cite the source. Papers can be downloaded using the hyperlink in the title.
Using Autonomous Drones to Perform An Inspection of A Building Structure
A constrained goal of the project for CS-701, is to create a simulated environment to demonstrate a drone (or a swarm of drones) with a depth camera, a front-facing camera, and a LiDAR, controlled by a mission execution script, that will find a cylindrical object in the vicinity using proximity sensing using LiDAR and circling around the object in spiral form taking pictures after a couple of feet of travel across the object's surface.
Linux Filesystem - A Comparative Study
Awaiting for the paper to be submitted for peer review. The original work was started in CS-571 under Dr. Yue Cheng's guidance but additional research and analysis work was performed afterwards. (link on arXiv)
Risk of Water Damage to American Homes
American homeowners spend $13 billion annually in restorations due to damage caused by water to their homes and insurance claims cost $2.5 billion to insurance companies. According to some estimates, 14,000 Americans experience water damage at home or work. On average the insurance claim for water damage is about $10K, and 98% of homes with basements experience water damage in their lifetime.Â
This paper is looking into these reasons, their risk probabilities, consequences, mitigations, and further analyzing what to do about these mitigations which are anywhere from no-action/no-cost to maximum possible mitigations. The paper was submitted as my final project for SWE 659 - System Engineering coursework in my master's program at George Mason University, I explored and used the Partitioned Multi-Objective Risk Method (PMRM) to determine the risk to the homeowners. Please note that the paper is structured based on the final project assignment outline requirements.
Risk of Large Earthquakes in California, specifically in and around Los Angeles
Due to fault lines, there is a high probability of earthquakes in California. This paper, as one of the homework assignments for SWE 659 for my master's program, explores and determined the probabilities of earthquakes of different severities in California in general and specifically in and around Los Angeles. The geological survey data used for this analysis was provided by Dr. Weiland. In addition, I analyzed the probabilities of the earthquakes in and around Los Angeles within 10 miles radius.
Damage to Homes by High Winds on the East Coast
East Coast of the United States increasingly gets several named Hurricanes every year in addition to smaller ones causing severe damage to homes on the Eastern coastline of the United States. This paper, submitted as the final exam for SWE 659 for my master's program at George Mason, explored and analyzed probabilities of damage due to high winds to the homes on the East Coast using a hypothetical scenario of a builder planning to build high-end luxury homes and wants to understand the risks to his business endeavor.
Abstracting Hardware in Software Development
This paper analyzed three proposed approaches to software development that include user-interface development where the software has an explicit or implicit dependency on the hardware. The approaches analyzed and presented in the paper are 1) phidget, 2) integrated prototyping, and 3) simulated hardware. All three approaches are viable and can be used effectively in particular situations and free the end-user application programmers from acquiring an in-depth knowledge of the hardware before using it. This paper was submitted as an extra credit assignment for SWE 632 - User Interface Design & Development course for my master's program at George Mason University.
An Implementation of Cigarette-Smokers Problem using Java Language
In this report, I present an implementation of a process synchronization problem in Computer Science known as Cigarette-Smokers problem in the Java programming language. The goal of this Java implementation is to learn and demonstrate process management and synchronization techniques, use of shared memory space with consistent and coherent data, deadlock avoidance between processes, and prevention of starvation conditions using Java-provided programming constructs. Instead of processes, I used Java threads which are easy to create, manage and provide clearer process synchronization mechanisms, such as monitors, in comparison with the CIC++ language. However, Java's lack of named condition variables associated with monitors makes this implementation rather tricky since each java monitor has a single nameless anonymous condition variable on which a thread can wait or signal one blocked thread or more than one thread. Consequently, Java monitors do not allow a particular thread to be unblocked which is determined randomly by the JVM implementation. However, this limitation in the Java language does not cause any significant problem in this implementation considering the benefit of using it such as cross-platform compatibility (write-once-run-anywhere)!
CRAY Y-MP EL 90 is a cost-effective, general-purpose entry-level computer system that includes one to four central processing units, central memory, input/output subsystem, and disk/tape storage units that are all contained in one cabinet. One or more optional peripheral cabinets may contain additional IOSs and optional peripheral devices. CRAY EL90 is source-level compatible with CRAY Y-MP and CRAY C90 and applications developed on EL90 can scale easily to run on larger CRAY Y-MP and CRAY C90. I conducted the research and wrote this paper for my CS-365 course in 1996 at George Mason University.
PAXI compiler consists of a lexical scanner, a parser, and a symbol table manager. The scanner is written using lex on Linux to generate tokens whenever requested by the parser. The parser is written using yacc employing grammar for the PAXI language to provide syntax checking. The compilation process is controlled by the parser which requests tokens from the scanner. The scanner reads source file one character at a time and returns tokens to the parser which uses them for syntax analysis. This project documentation was submitted for CS-440 - Compiler Design course for my bachelor's program at George Mason University in the late 90s.