Thursday, February 23, 2012

Archive for the ‘School’ Category

757 – Software Engineering

Posted by Jason On September - 28 - 2009

Principles of design, implementation, validation, and management of computer software; emphasis on reading and discussing papers from relevant journals and proceedings; term project required.

682 – Computer Animation

Posted by Jason On September - 28 - 2009
Spacehogs

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

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

Monster AI

Boss 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

Laser Beam

Tractor 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

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

Posted by Jason On September - 28 - 2009

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.

Group Project: Dijkstra’s algorithm

675 – Introduction to Computer Architecture

Posted by Jason On September - 28 - 2009

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

Posted by Jason On September - 28 - 2009

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

Lab 3 SQL

Lab 8 Java and SQL

I had also made an online bookstore a long time ago but lost the files

660 – Introduction to Operating Systems

Posted by Jason On September - 28 - 2009

Operating system concepts: memory management, process management, and file management; sample operating systems.

Language: C++

Progam Lab Samples:

Lab 1: File Systems

Lab 2: Processes, Sleep/Wait

Lab 3: Semaphores

655 – Introduction to the Principles of Programming Languages

Posted by Jason On September - 28 - 2009

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:

Fake language “parser” project

630 – Survey of Artificial Intelligence I: Basic Techniques

Posted by Jason On September - 28 - 2009

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

Posted by Jason On September - 28 - 2009

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