Pinned Repositories
HashTable
Building to a given specification (the Application Programmer Interface, or API) and verifying correctness of the implementation are important concerns in software engineering. APIs establish a sort of contract between the creators and users of a software library about its expected behavior and functionality. The interface also allows developers to separate the concerns of design and implementation of large projects. Early on, design can proceed without distraction from the details of implementation by instead producing a specification of required components and their interfaces. Later, the implementation of each module can proceed more independently from the design of the project as a whole.
3DRendering
This MATLAB script implements the geometry transformations and lighting calculations to render a 2-D image of scene consisting of a single 3-D object. This script is using a left-handed coordinate system
VLSI
Advanced digital design issues in the context of VLSI systems. Introduction to a design methodology that encompasses the range from architectural models to circuit simulation.
DormRover
web-based remote control rover robot
YingXao
GTAV_SDC
Self driving cars in GTA V based on pure CV
AlgoCf
This project implement and analyze two different code segments for initializing an [NxN] matrix (indexed as A[0][0] to A[N-1][N-1]). Table 1 illustrates the result of this initialization for N=5. Compare the actual running times for matrices of various sizes, starting with 10x10 and increasing in multiple steps to 5000x5000. (If your system cannot handle a matrix that large, you may need to stop at a smaller size.)
CMOSInverterSim
We want to design a CMOS logic circuit of 100 million inverters (i.e. 200million devices) with a circuit failure probability (pcirc) of 0.001. Further, we want to design each inverter to obtain a delay of 10ps.
DE2Bot
The project demo area is the space in the lab adjacent to the whiteboard, TV, and desk. It will contain seven sonar reflectors in random positions within the green area shown in Figure 1, but with their centers spaced at least 3’ apart to allow for the DE2Bot to maneuver between them. The seven squares in Figure 1 represent sonar reflectors in an example distribution, with the red circles indicating the minimum spacing. The goal of the project is to have the DE2Bot find and circle as many of the reflectors as possible within two minutes.
OverlapArea
This program compute a measure of overlap between two rectangles R1 and R2, called intersection over union.
savage12138's Repositories
savage12138/WhenHarryMetSally
This program explores the use of basic conditional execution, nested iteration, and memory accesses to analyze time/space data such as information collected by GPS-enabled applications In particular, this program will analyzes two timelines, each of which gives a history of major cities in which a person has lived in chronological order. This program will determine the earliest year in which both people lived in the same city.
savage12138/qmk_firmware
Open-source keyboard firmware for Atmel AVR and Arm USB families
savage12138/YingXao
savage12138/VLSI
Advanced digital design issues in the context of VLSI systems. Introduction to a design methodology that encompasses the range from architectural models to circuit simulation.
savage12138/3DRendering
This MATLAB script implements the geometry transformations and lighting calculations to render a 2-D image of scene consisting of a single 3-D object. This script is using a left-handed coordinate system
savage12138/SkeeBallProb
Probabilistic algorithms and/or stochastic simulation are often used to estimate values or predict the likelihood of specific events, particularly if direct calculation is algorithmically complex or involves interactions that are difficult to formally characterize, but easy to simulate computationally.
savage12138/PRNG
While hardware modules exist that use physical phenomena to generate truly random numbers, most computing systems use either hardware or software pseudo-random number generators (PRNGs) that produce sequences of values that appear to be random. PRNGs can be initialized to a specific value, allowing the same sequence of (seemingly) random values to be generated repeatedly, which is helpful in program debugging. Most programming languages and operating systems provide a built-in function to generate random numbers uniformly distributed in the range (0, 1); these values then can be either (a) appropriately scaled to yield a desired continuous random function or (b) divided into proportionallysized ranges for discrete random functions.
savage12138/AlgoCf
This project implement and analyze two different code segments for initializing an [NxN] matrix (indexed as A[0][0] to A[N-1][N-1]). Table 1 illustrates the result of this initialization for N=5. Compare the actual running times for matrices of various sizes, starting with 10x10 and increasing in multiple steps to 5000x5000. (If your system cannot handle a matrix that large, you may need to stop at a smaller size.)
savage12138/RobotSwarm
In this project I will be creating a C++ class, and an object of that class. Classes can be used to represent anything: cars, gradebooks, students, professors, or in this case, robots. For this project, I will create the class Robot. However, one robot by itself is not very interesting so I will also create a class called RobotSwarm that will manage a group of Robot objects, letting them move around within a grid without colliding with one another. As a final piece, I will also maintain a record of each Robot object’s “history” – the locations it touched on the grid and the number of times it touched the points on the grid. I will write this history out to a file for each Robot.
savage12138/CMOSInverterSim
We want to design a CMOS logic circuit of 100 million inverters (i.e. 200million devices) with a circuit failure probability (pcirc) of 0.001. Further, we want to design each inverter to obtain a delay of 10ps.
savage12138/DE2Bot
The project demo area is the space in the lab adjacent to the whiteboard, TV, and desk. It will contain seven sonar reflectors in random positions within the green area shown in Figure 1, but with their centers spaced at least 3’ apart to allow for the DE2Bot to maneuver between them. The seven squares in Figure 1 represent sonar reflectors in an example distribution, with the red circles indicating the minimum spacing. The goal of the project is to have the DE2Bot find and circle as many of the reflectors as possible within two minutes.
savage12138/HashTable
Building to a given specification (the Application Programmer Interface, or API) and verifying correctness of the implementation are important concerns in software engineering. APIs establish a sort of contract between the creators and users of a software library about its expected behavior and functionality. The interface also allows developers to separate the concerns of design and implementation of large projects. Early on, design can proceed without distraction from the details of implementation by instead producing a specification of required components and their interfaces. Later, the implementation of each module can proceed more independently from the design of the project as a whole.
savage12138/OverlapArea
This program compute a measure of overlap between two rectangles R1 and R2, called intersection over union.
savage12138/TopOfPile
This project explores a programming problem that arises in many different robotics applications. In a manufacturing setting, a robotic arm may need to pick up parts from a pile and use them to assemble something such as an automobile. To plan the robotic arm’s movements, an overhead camera may be positioned over a pile of parts. In this project, we will focus on determining which color part is on top of the pile. (This may be important in finding a particular component and uncovering it so it can be used.) We would like this task to be performed in real-time, so the computational and storage requirements must be kept to a minimum. We are also concerned with the functional correctness of the algorithms used (i.e., getting the correct answer), since picking the wrong top part could lead to extra work for the robot or worse a malfunction if the pieces get tangled.