Principles of design, implementation, validation, and management of computer software; emphasis on reading and discussing papers from relevant journals and proceedings; term project required.
Archive for the ‘School’ Category
682 – Computer Animation

Spacehogs
Spacehogs was an Xbox 360 XNA School Project for my CSE 682 Procedural Animations Class at The Ohio State University, in 2007. The class was a survey of computer animation algorithms and techniques; interpolation, path following, quaternions, object deformations, forward/inverse kinematics, rigid body dynamics, particle systems flocking, autonomous behavior, and L-systems. I was on a team of 5 people total, my responsibilities were: Player Control and Movement, Enemy Monsters, Weapons (Laser and Tractor Beam), and Boss Monster.
Full Source Download Here: Spacehogs!
Procedural Aspects:

Spherical Linear Interpolation
For the player ship orientation in our game, it was represented as a Quaternion matrix, and we used Spherical Linear Interpolation to animate our ship tilting left and right and up and down. Using XNA’s built in Quaternion objects and SLERP we were able to accomplish our goal of procedurally animating the player spaceship for moving. I was responsible for implementing the player controls, movement, and making sure they “felt” good.
An Example Video: http://j1n.org/classes/682/quaternion.wmv

Monster AI

Boss Monster AI
The Monster AI is a simple follow prey-predator algorithm that uses the player’s position and simply allows the enemies to follow the player. The regular enemies were programmed to try and crash “kamikaze” style into the player ship causing damage, while the boss monster shoots homing fireballs at the player. I was responsible for implementing the Enemy AI for the game.
Example Video http://j1n.org/classes/682/monsterchase.wmv

Laser Beam

Tractor Beam
The Laser and Tractor beam were some of the weapons we created for our XNA game. We fired a ray into 3d space and used spherical collision to detect if the ray fired from the position of the player intersects with a target object. I was responsible for the implementation of the Laser and Tractor beam. The Laser would destroy objects such as asteroids/enemies, while the Tractor beam could push/pull objects towards the player.
Example Video: http://j1n.org/classes/682/lastertractorbeams.wmv
680 – Introduction to Analysis of Algorithms and Data Structures
Performance analysis considerations in design of algorithms and data structures; asymptotic analysis, recurrence relations, probabilistic analysis, divide and conquer; searching, sorting, and graph processing algorithms.
Program Lab Samples:
The Six Degrees of Kevin Bacon – Breadth First Search Algorithm:
Language: Java
Concept of Six Degrees of Kevin Bacon : http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon
-Any actor can be linked to Kevin Bacon by 6 or less matches where an actor and another actor who star in the same movie is a link.
677 – Introduction to Computer Networking
Data communications, network architectures, communication protocols, data link control, medium access control; introduction to local area networks, metropolitan area networks, and wide area networks; introduction to Internet and TCP/IP.
675 – Introduction to Computer Architecture
Computer system components, instruction set design, hardwired control units, arithmetic algorithms/circuits, floating-point operations, introduction to memory and I/O interfaces.
670 – Introduction to Database Systems
Database systems use; query languages-SQL and relational algebra; logical database design; entity-relationship model, database normalization; introduction to transaction processing; database design project.
Language: SQL
Programming Lab Samples
I had also made an online bookstore a long time ago but lost the files
660 – Introduction to Operating Systems
Operating system concepts: memory management, process management, and file management; sample operating systems.
Language: C++
Progam Lab Samples:
655 – Introduction to the Principles of Programming Languages
Programming language concepts such as grammars and parse trees; interpretation versus compilation, binding, and scope rules; and language constructs for control and data abstraction.
Language: C#
4 Credit Hours
Progam Lab Samples:
630 – Survey of Artificial Intelligence I: Basic Techniques
A survey of the basic concepts and techniques, problem solving, and knowledge representation, including an introduction to expert systems.
Language: C++
3 Credit Hours
Homework:
Homework #1
Homework #2
Homework #3
Homework #4
Homework #5
Homework #6
625 – Introduction to Automata and Formal Languages
Machine based and formal grammar based models of computation: finite automata; regular languages, context free languages, pushdown automata, and Turing machines; Church-Turing thesis; introduction to the halting problem.
3 Credit Hours