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:
- Assigning
- Operating
- Sequencing
- Selecting
- Iterating
- Packaging, both functions and objects
- Reusing, packages created by others
... in the context of building the three main parts of a virtual world:
- Terrain
- Buildings & Interiors, and
- 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
Books:
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
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? |
1 8/24 8/26 | Creative Programming in C#, Part 1-Vars,Formulas,If's |
C# Reference SDK | HW 1 | |
2 8/31 9/ 2 | Creative Programming in C#, Part 2-Loops,Functions |
C# Reference SDK | HW 2 | HW 1 |
3 9/ 7 9/ 9 | Creative Programming in C#, Part 3-Functions |
C# Reference SDK | HW 3 | HW 2 |
4 9/14 9/16 | Creative Programming in C#, Part 4-Classes & Objects |
C# Reference SDK | HW 4 | HW 3 |
5 9/21 9/23 | Creative Programming in C#, Part 5-Class Libraries |
.NET Framework Class Library | | HW 4 |
6 9/28 9/30 | 3D Modeling: Terrains XNA: Displaying 3D Models |
Flor Tutorial 1: Terrains | HW 5 | |
7 10/ 5 10/ 7 | 3D Modeling: Buildings XNA: Moving the Camera |
Flor Tutorial 2: Buildings | HW 6 | HW 5 |
8 10/12 10/14 | 3D Modeling: Interiors XNA: Lighting |
Flor Tutorial 3: Interiors | HW 7 | HW 6 |
9 10/19 10/21 | 3D Modeling: Characters XNA: Networking |
Flor Tutorial 4: Characters | HW 8 | HW 7 |
10 10/26 10/28 | 3D Animation: Rigging XNA: Animated Models |
Flor Tutorial 5: Rigging & Animation | HW 9 + Final-Project | |
11 11/ 2 11/ 4 | Databases, Part 1-Database / Table Design |
DB Visual Tutorial | HW10 + Proto Robot | HW 8 |
12 11/ 9 11/11 | Databases, Part 2-SQL |
SQL Visual Tutorial | HW11 | HW 9 |
13 11/16 11/18 | Databases, Part 3- Code Integration |
Microsoft OLE DB | HW12 | HW 10 |
14 11/23 11/25 | Advanced Modeling: Faces |
Flor Tutorial 6: Modeling Faces | HW13 | HW 11 |
15 11/30 12/ 2 | Advanced Modeling: Unwrapping & Texture Mapping |
Flor Tutorial 7: Texture Mapping | HW14 | HW 12 |
16 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