Welcome!
Welcome to the CSE 308 Web site. If you are enrolled in the course, be sure to periodically check the course schedule for all materials and changes as the semester moves along. Note that all grades will be posted to Blackboard. It is important to note that the information posted on this section of the site is only relevant to Section 01 of the course, which is being taught by Richard McKenna, so please be careful to recognize which section you are registered for. Section 02 is being taught by Rob Kelly and will be run separately, with a different set of rules and a different project.
Projects
There will be two types of projects for this section of the course. A game development project, and a Web development project:
- Game Dev. Project: Students working on the game dev. project must have taken CSE 380 and would typically be on track for the Game Programming Specialization. The game dev. project will follow the rules of Microsoft's Imagine Cup and will involve using the XNA platform via Visual Studio 2010 and XNA Game Studio along with the C# Programming Language.
- Web Dev. Project: Students working on this project should have U4 standing, and thus have some experience in 300-level classwork. These students will build an interactive Web application. The Web app will work as described in lecture the first 2 weeks of the semester. This project will be done using Java's Enterprise Edition (Java EE) and any number of related technologies at the discretion of the team.
Roles
Project responsibilities will be carefully divided such that all students are making contributions and the project benefits as a whole. Students may be assigned the following roles:
- Lead Programmer - These CSE students will both supervise and contribute to the implementation stages of the project. Each team will have one lead programmer. These students will have their hands full because in addition to their own coding responsibilities, they will need to have a general understanding of all the technologies being used and all the implementation work being done at any time. Note that it is not assumed that lead programmers come into the semester being fully schooled in Java EE or Database technolgies, but it is assumed that they can pickup and understanding of how these components will work and fit together. Note that the lead programmer will be responsible for directing group decision making regarding any technical aspects of the project, including which technologies to use, how to divide the system into modules, and how to assign project/module reponsibilities to team members.
- Software Engineer - These are the rest of the CSE students in the group. They will be given responsibilities for specific technologies and modules for which they will become experts. It is recommended that each package in the project's design be given an owner, who is responsible for its design, development, documentation, and testing. For example, it would wise for each Web dev. team to select a single student to work on the database aspect of the project, and so own all the jdbc-manipulating classes.
- Project Manager - These are the ISE students. Each Web Dev. team will have one. Project Managers will drive the project, which means working with the lead programmer to drive the meetings (i.e. make the meeting agenda, assign action items, follow up on action items, take meeting minutes), develop the Project Specifications, help divide project responsibilities, develop Gantt and Pert Charts for managing work measurement, forecasting, task breakdown, taks assignment, and task dependencies. Note that Project Managers will only be used with the Web Dev. projects.
- Artists - These students will not be enrolled in CSE or ISE 308, but will be part of the Game Dev. teams nevertheless. They will be responsible for creating content for the games, providing the vision for the general look of all creative content. In addition, in order to help them feel more part of the team and invested in the project, artists will be involved in the game design process and should make contributions accordingly.
Rules
Before starting the semester, there are a few rules of note that everyone must understand.
- Self-Learning is Key: Look at the syllabus for this course and under course topics, you will not find technology-specific items like Java Server Faces, the Java Persistence API, or XNA Studio. This course is about teaching the processes used in Software Engineering projects. So, teams will be charged with the responsibility of learning lots of new technologies on their own, which of course is common in the real world. Some support will be given through TA-hosted tutorials on specific topics, but for the most part, teammates will be teaching each other how to use new tools and libraries. Becoming skilled at self-learning is not easy, but is one of the best way to avoid career obsolecence.
- Mutiny Clause: Should a project manager or lead programmer be unable to perform in their assigned role, the team may make a change via a majority vote. Note that any team member may bring this decision to a vote during a team meeting. Reasons for making a change must be professional and legitimate and not personal in nature. Note that should a lead programmer be changed, that person may then take on the role of software engineer on the team. For a project manager, should mutiny occur, the student will have to either make a case for how other contributions could be made, and thus find a role, or leave the team entirely.
- The Apprentice Clause: Should a team member consistently fail to make required contributions to the project, the team may decide to take a vote and then collectively say You're Fired!. Note that this is not something to be taken lightly. Teams must present a case to the instructor as to why a student is failing the team, and so deserves to be cut. Students who are cut from a team should drop the course, but if that is not an option, would be required to complete the assignment on their own, which is not a position any student should like to find themselves in.
- Software Engineer to be named later Clause: Should personal differences arise on a team and create problems for the project, teams may consult with other teams to try and work out a student-for-student trade. Note that only one-for-one trades will be allowed, and that in order for trades to go through, all parties must agree. This means a unanimous vote on both teams (including the students being traded). Note again, only single-student for single-student trades are allowed, so there will be no 2-for-1 deals or students being traded for cash or code or themselves. We don't want any Harry Chitis. Note that trades may only be made within the first four weeks of the semester. This means Friday, 2/17, is our official Trade Deadline.
- Well Defined Contributions: We wil be using project management software like Microsoft Project this semester for managing all aspects of the development process, and part of this will involve carefully defining each student's responsibilities and contributions. All students are expected to make significant contributions to the team and these contributions should be clearly defined and documented for review by the instructor. Students who fail to make expected contributions may receive a project grade lower than their teammates.
Team Programming
One of the principles that will be emphasized this semester is team programming, which involves multiple programmers working collaboratively on the same task. This is an efffective technique for preventing stalls in the development process. Students will be encouraged to do all programming using this technique and in addition, for all project responsibilities, teams will designate backup developers who will aid in the completion of a task when needed and will take over a task when a developer is overloaded.
Teams
Section 01 development teams, with roles, are listed below. Note that should any changes to a team occur, the instructor must immediately be informed, as this is the only official teams list. Note that each team should select a name for itself, but choose wisely, you may be stuck with it for the rest of your life. Also note that each team should start by developing a simple Web site with your team (i.e. company) name and team members with their roles. More will be added to the site as the semester progresses. Note that we will not post anything to the site that will make the application concepts or technologies developed public, we'll keep our trade secrets to ourselves.
| Eminent Sage Productions | |||
![]() Justin Dale (Lead Programmer) |
![]() Edgardo Linero (Software Engineer) |
![]() Eddie O'Hagan (Software Engineer) |
![]() Candy Wong (Artist) |
| Colonel Panic | |||
![]() Dan End (Lead Programmer) |
![]() Josh Belanich (Software Engineer) |
![]() Sammy Mohamed (Software Engineer) |
![]() Chang Shu (Artist) |
| Inscriptor | |||
![]() Nick Trombetta (Lead Programmer) |
![]() Saveliy Baranov (Software Engineer) |
![]() Nick Lucchesi (Software Engineer) |
![]() Monica Feng (Artist) |
| JMOCC | ||||
![]() Joe Jenco (Project Manager) |
![]() Charlie Monzillo (Lead Programmer) |
![]() Saikit Chan (Software Engineer) |
![]() Yu Shing Chan (Software Engineer) |
![]() Carlos Ortega (Software Engineer) |
| Hands Free | ||||
![]() Christopher Kerekes (Project Manager) |
![]() Kevin Sullivan (Lead Programmer) |
![]() Louie Huang (Software Engineer) |
![]() Jimmy Li (Software Engineer) |
![]() Jiayin Peng (Software Engineer) |
| JEpic | ||||
![]() Paola Fernandez (Project Manager) |
![]() Izzy Oji (Lead Programmer) |
![]() James Bouker (Software Engineer) |
![]() Edwin He (Software Engineer) |
![]() Cody Moore (Software Engineer) |
| sourceBrew | |||||
![]() Quick (Project Manager) |
![]() Aman Mukker (Lead Programmer) |
![]() Victor Angueira (Software Engineer) |
![]() William Fischer (Software Engineer) |
![]() Charles Valentino (Software Engineer) |
![]() Z (Software Engineer) |
| Umbrella Corp. | |||||
![]() Ming Yi (Project Manager) |
![]() Kyle Woodworth (Lead Programmer) |
![]() William Cheng (Software Engineer) |
![]() Dong Joo Ko (Software Engineer) |
![]() Taejun Lee (Software Engineer) |
![]() Waseem Mir (Software Engineer) |






































