

Ray Tracing (Digital Image Model Simulation)
The above image was created using a Ray-Tracing method, where a virtual
model of the world is created - viewer, the display surface, and everything
behind it . . . including lighting sources, objects, and their properties (Shadows,
Specular/Diffuse/Ambient Lighting/Reflection Properties, Color, etc.). The way
light rays hits the eyes is simulated almost exactly. This project was one of
the more Math and Physics heavy programming assignments I've ever encountered,
but also one of the most rewarding. Nowhere did we use a fancy API like OpenGL
. . . just C++, where we wrote to a .PPM file, pixel by pixel. (See
Larger Image) Please E-Mail me if you are interested in the .PPM file or
otherwise.
Project/Team Coordinator (Semester Long Project)
Pre-Algebra Equation Game For 6th Graders At Walnut Creek Elementary
I took a course in Software Engineering, for which we were put in groups
of five and had to undertake a real project for a real client. The project we
ended up with was a Pre-Algebra Equation Tool for the Young Scientists Program
at Walnut Creek Elementary School. We designed a fast-paced, fun game for these
children to learn the various math concepts. I was in charge of maintaining
a webpage for our group, assembling and writing various parts of documentation
(Project Bid, Project Plan, Software Requirements Specification, Software Design
Specification, Activity Reports, Client Meeting Reports, etc.), designing and
coding problem generation algorithms in ActionScript, and much more. Our project
was very successful, and this was a very rewarding experience, as well. The
project and all documentation for this project is still viewable at the following
URL: http://www.cs.utexas.edu/users/s2s/latest/prealgebra1.
AVL Trees (Continually Balanced Binary Search Trees)
I needed to make my own version of the abstract data type, AVL Trees, and it
needed to be far more efficient than traditional versions that kept a height
variable as a private member of a node in the tree. We used two boolean
values instead effectively increasing both time and space efficiency by a great
deal. Bookeeping of these boolean values to be efficient and trail the
recursion of the trees as opposed to recursively setting them afterwards was
quite a challenge. We also learned many points of efficiency in all forms
. . . code reuse, time, memory, etc.
Language Conversion
We designed a translator that would take a program written in Scheme
(dialect of LISP) and output the same program in C++ and Pascal source
code. This was challenging because I had no prior knowledge of C++ at the
time . . . this was done to show us that the only difference between languages
in computer science was syntax, and one could learn a new one relatively
easily. It's the fundamental concepts that are more important.
C++ High Resolution Timer For Both Linux
AND UNIX (Solaris)
I needed to have a way to measure time accurately, to the microsecond, in order
to guage our efficiency of our algorithms. It needed to be a timer that I
could start and stop and reveal the time it took for an excerpt of code to
execute. Most of my class had done this wrong, and the T.A. posted my
solution as the model solution for the course: SnapShot
of the Post.
Below is an example of an Arithmetic Logic Unit designed using the Bit Slice method for increased efficiency. I designed and created the below from scratch, a blank screen. I apologize for the low quality image, and I can send you the full circuit if you are interested or curious. I created this in the middle of Spring, 2002.

The below example of my work was my solution to the following question posed on an assignment in my Computer Organization and Programming (CS 310) Class, Early Spring 2001. "Design and simulate a 2's complement 4-bit ripple carry adder. The first operand is always positive, and the second operand can be positive or negative. A signal X will denote whether the second operand is positive or negative. If X = 0 ==> +ive; If X = 1 ==> -ive. Use a 4008 Chip, XOR's, and any other gates of your choice. Your circuit should check for an overflow."

*I used Circuit Maker 2000 to design, create, and run the digital simulations on the above two circuits.
The next example of my work involves the extensive use of recursion, graphics, and good program organization. We were to recursively draw a number of designs (Sierpinski Triangles, Binary Trees at Different Angles, Snowflakes, etc.) with x number of recursions . . . in the end, to go the extra mile . . . I put them all together at different coordinates on the screen and created the below picture. This was during my Foundations of Computer Science (CS 307) course (Early Fall '99) in the language, Scheme, a dialect of LISP.

I eventually made the decision to pursue a graduate education in business, and below is a sample of a letter of recommendation I received along with a writing sample for a submitted essay.
Previous Letter of Recommendation to Graduate School I Received: April, 2005
Writing Sample - Essay Detailing My Motivations to Attend
Grad. School
.DOC Version, .PDF Version
- (April, 2005)
If you have any questions or comments, I would love to hear from you. Likewise, if there are any errors with my page (spelling, grammar, dead links, etc.) . . . please send me an E-Mail by clicking here.
To return or visit a previous page, please click on the following link: Lil' Viv.com, Professional Page
This page is updated often, so please come back. This page was last updated on December 25, 2005.
© Vivek K. G., 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006.
Assignment examples and material on here were originally created by Vivek G. with no external help, and they may not be used towards anything academically dishonest invlolving those taking the classes he has completed and posted past work from. Academic dishonesty will be reported and pursued to the fullest extent possible. Nothing on this page may be used for anything besides perusal and viewing of Vivek's qualifications without his written consent.