MGMT 330 : Fundamentals of (Virtual)
Business Programming
Fall 2009, MW 12:30-1:45, GSM 232
Professor Flor

Objectives — What You Will Learn

Tomorrow's business programmers will create 3D, database-driven interactive virtual environments as easily as today's business programmers create database-driven interactive web pages.

Over ten years ago, while the Web was still in its infancy, I pioneered the use of the Web for teaching students how to program (see Wired News article on my class). Today, 3D Interactive Virtual Worlds will combine with Web social networking technologies, with mobile devices, and with entertainment technologies, to collectively transform society--changing the ways people learn, the ways they interact with one another, and the ways they transact with businesses and other organizations.

This class prepares you to take advantage of this revolution, by teaching you how to program 3D interactive virtual worlds and 3D avatars. While the focus is learning how to program 3D worlds and avatars, you will still learn the basic skills needed to program any application. The School of Management at the Unviersity of New Mexico is the first major university in the world to teach programming fundamentals using 3D virtual worlds and avatars as a foundation.

Specifically, you will learn the seven fundamental programming skills:

  1. Assigning
  2. Operating
  3. Sequencing
  4. Selecting
  5. Iterating
  6. Packaging, both functions and objects
  7. Reusing, packages created by others
... in the context of building the three main parts of a virtual world:
  1. Terrain
  2. Buildings & Interiors, and
  3. Characters (including, rigging and animation)
... using the following technologies:
  • Microsoft XNA Studio: graphical integrated development environment (IDE)
  • C#: programming language
  • SQL Server Express: database
  • Autodesk Softimage Mod Tool: modeling and animation software

Method — How You Will Learn

In my experience there is only one way to learn how to program well, namely, by constantly doing it.

I call my teaching method "Drilling the Fundamentals", viz., learning by constantly doing.

What this means is that regardless of what kind of application we develop or what type of technology we happen to be covering on a given week, every class will consist of a little bit of lecture followed by constant drilling of the seven fundamental programming skills listed above.

Useful Software Downloads

Download the following software packages. The packages should be free, although some may require that you register your name and e-mail. Note: Visual C# should include an option for downloading SQL Server Express. For modeling and animation, Autodesk has a number of very good tutorials. To view them, first register at Autodesk Student Site, then check out the menu Learn / Tutorials

Course Materials


There's no required book for the class because there's no single book that covers all the technologies that I plan to teach you: C#, SQL Server, terrain modeling, building & interior modeling, rigging, and animation. However, there are a number of helpful online resources:

Class Rules

It states quite clearly that all offers shall become null and void if...and you can read it for yourself in this photostatic copy:

  • You must attend every class. Your grade goes down by 2% points for every class missed without a valid excuse. Medical excuses must be accompanied by a note from your physician. Having a job interview is not a valid excuse for missing class.
  • You must bring your laptop to every class so that you can do the in-class programming drills, which we will have every class.
  • No skipping class early. It's the same thing as not attending class (see penalty above).
  • You must download the readings and homeworks prior to the start of the week's class. Due to the dynamic nature of the topics, readings and homeworks are not fixed. On the first Monday of each week I will post the new readings, lectures notes, and homework assignments.
  • Homeworks are due before class. The due dates are printed on the assignments. The penalty for late homeworks is -2^(t+1)%, where t is the ceiling of the number of days late. For instance, if you're late by one day, the penalty is -4%. If you're 4 days late, the penalty is -32%. The penalty is in addition to any other points lost on your homework.
  • If you are a qualified person with disabilities who might need appropriate academic adjustments, please communicate with me as soon as possible so that we may make appropriate arrangements to meet your needs in a timely manner. Frequently, we will need to coordinate accommodating activities with other offices on campus. Course materials can be made available in alternative formats.
  • It is expected you will respect others by not using communication devices during the class period.
  • Any violation of the Student Code of Conduct will be taken very seriously and appropriate sanctions will be applied. Violations include: plagiarism, exam misconduct, etc. Please refer to the UNM Pathfinder for additional information
  • You have exactly 1 week after you receive your graded assignment or graded exam to address grading issues. You must submit to me both a detailed writeup (hardcopy, not electronic) of the grading issue, along with the original assignment or exam. I will not even consider regrading assignment or exams after this time period has elapsed.
  • IMPORTANT: I reserve the right to drop any student that misses 2 classes in the first week of the course.
  • IMPORTANT: All exams are closed book / closed notes. Retrieving any information created prior to the exam is considered cheating and a violation of the Student Code of Conduct.
  • IMPORTANT: All class-related networking traffic is subject to analysis for violations of the Student Code of Conduct.
I, the undersigned, shall forfeit all rights, priviledges, and licenses, herein and herein contained, etc. etc. fax mentis incendium gloria culpum, etc. etc. memo bis, punitor delicatum!

It's all there, black and white, clear as crystal!'


Grading is divided into three parts:
Homeworks: 60%
Semester Quiz:20%
Final Project:20% (Virtual World Level)

Syllabus Fall 2009

Week # Topic Optional Readings Assignment Due?
Creative Programming in C#, Part 1-Vars,Formulas,If's C# Reference SDK HW 1  
9/ 2
Creative Programming in C#, Part 2-Loops,Functions C# Reference SDK HW 2 HW 1
9/ 7
9/ 9
Creative Programming in C#, Part 3-Functions C# Reference SDK HW 3 HW 2
Creative Programming in C#, Part 4-Classes & Objects C# Reference SDK HW 4 HW 3
Creative Programming in C#, Part 5-Class Libraries .NET Framework Class Library HW 4
3D Modeling: Terrains
XNA: Displaying 3D Models
Flor Tutorial 1: Terrains HW 5
10/ 5
10/ 7
3D Modeling: Buildings
XNA: Moving the Camera
Flor Tutorial 2: Buildings HW 6 HW 5
3D Modeling: Interiors
XNA: Lighting
Flor Tutorial 3: Interiors HW 7 HW 6
3D Modeling: Characters
XNA: Networking
Flor Tutorial 4: Characters HW 8 HW 7
3D Animation: Rigging
XNA: Animated Models
Flor Tutorial 5: Rigging & Animation HW 9 +
11/ 2
11/ 4
Databases, Part 1-Database / Table Design DB Visual Tutorial HW10 +
Proto Robot
HW 8
11/ 9
Databases, Part 2-SQL SQL Visual Tutorial HW11 HW 9
Databases, Part 3- Code Integration Microsoft OLE DB HW12 HW 10
Advanced Modeling: Faces Flor Tutorial 6: Modeling Faces HW13 HW 11
12/ 2
Advanced Modeling: Unwrapping & Texture Mapping Flor Tutorial 7: Texture Mapping HW14 HW 12
12/ 7
12/ 9
Quiz Preparation / Semester Quiz   QUIZ HW 13 +
Final Project
*=Subject to change at any time at Professor Flor's discretion, and Professor Flor reserves the right to add homework assignments or exams as needed to help you learn or test your knowledge of a topic.
**=Optional homework assignment
Top 5 Student

Top 5 Student
[29 users]
[22 users]
[11 users]
[10 users]
[9 users]