Information Technology Projects
Spring 2000

Introduction

Description

Information Technology Projects (Projects) offers students real-world experience understanding and solving Information Technology software and system problems. The course involves a set of projects at clients such as local corporations and other institutions. We organize students in teams of about four. Each team undertakes one IT project that lasts the semester.

In the classroom we study IT project management and software engineering. The project issues include project specification, consulting project management, technology planning and training, and communicating to management. The software engineering issues include the software maturity model, the software life cycle, software standardization, and technology trends.

Course Particulars

Professor: Arthur Goldberg
Course home page: http://www.cs.nyu.edu/artg/itp/S2000/index.html
Update history: 1/10/2000
Time: Most Thursdays, 5:00 to 8:00 PM, plus about one day a week at your client
Place: Warren Weaver Hall: Room 402,: 2/10, 2/17, and 2/24; Room 313: 3/2, 3/23, 3/30, 4/13, 4/27
Number: G22.3812-001
Email beacon: To be determined
Credits: 3

Professor Particulars

Email: artg@cs.nyu.edu
Office: 715 Broadway, Room 711
Home page: www.cs.nyu.edu/artg/
Office hour:  Tuesday, 12:00 to 1:00, or by appointment

Projects

Introduction

We recruit local corporations and other institutions to provide interesting projects. We will select projects that teach students about technologically important systems. We seek problems that involve widely used technologies of growing influence. These technologies include the Internet, the World Wide Web, Intranets, Java, and databases. We will consider projects involving other important technical areas of mutual interest to students and clients. To increase the resources available to students, we also try to obtain projects that use technologies that are available in our campus computing environment.

We divide the course into two sections, requirements gathering and analysis, and prototype implementation and documentation.Prof. Goldberg and the team meets with the client at the beginning of the project, after the analysis phase, and at the end of the project.During the requirements gathering and analysis phase each team studies the client's business goals for our project and selects an appropriate software and hardware strategy for efficiently meeting the goals.In the post-analysis meeting the team presents their findings and a plan and schedule for prototyping the best design.During the prototype implementation and documentation phase team members build a prototype that they can present at the demo show at the end of the semester.

Clients for Spring 2000 include:

agency.com
Bristol-Myers Squibb Company
Deutsche Bank: Fixed Income Department
Deutsche Bank: Securities Settlement System
USWeb/CKS Corporation

In the past we've worked with the following clients and completed the following projects.

1999, fall:

1999, Spring

1998, Fall

1998, Spring

1997, Fall

1997, Summer

1997, Spring

1996

1995

ComputerWorld quoted a student and Prof. Goldberg discussing this course in the Fall 96 Campus edition, saying:

"It was very easy getting used to work. I knew it would be," says Sandhya Gabbur, a New York University Business school graduate who started working in the IS field as part of a college course. Gabbur is now an assistant Java programmer at ILX Systems, Inc. in New York, the financial services firm where she worked during college. She develops Java-based charging applets for calculating market data.
...
Arthur Goldberg, a professor at NYU's Stern School of Business, agrees. "My experience has been that workers in corporations work mostly on projects with teams under certain deadlines and students needed to get those experiences in school" to limit stress once in the workforce, he says.

Client Role

In exchange for our assistance, our clients are required to provide adequate resources for students to learn and to succeed on the project. A client technical manager will spend one half to one a day a week supervising students. The client is also required to provide facilities, such as computers, software and office space for students to make significant progress during the course.

Interactions with clients may provide opportunities for full-time employment following the course. Many students have obtained jobs during the last 4 years.

Some clients will be paying significant money to NYU in recognition of the accomplishments we achieve in the course.

Team Composition

Students will participate in teams composed of CS and "MS in IS" students. At the first class meeting each student will rank each proposed project's desirability on a scale from 1 to 10. Prof. Goldberg will assign students to teams by the second class. He will try to maximize the class's total satisfaction, assign students to projects for which they're skilled, and allocate some CS and some MS in IS students to each team. Each expertise and talent will support the other, so CS students with relatively modest management and/or English experience can feel comfortable, as should MS in IS students with less technical experience.

We encourage clients to break projects into 1 and 2 person tasks so team members can progress fairly independently.

Student Admission

In the Spring of 2000, the Projects course can accommodate at most 16 students in 4 projects.

Skills

To be productive on a project a student must possess sufficient technical and/or managerial skills. These skills can be obtained by academic training and/or experience.

As the set of skills cannot be precisely specified, interested students should contact Prof. Arthur Goldberg (artg@cs.nyu.edu) for permission to register. Email a resume or short biography.

Registration Logistics

Admitted students will be emailed a 4-digit access code. Register for the course as "Advanced Laboratory in Information Systems" (G22.3812). Stern-based MSIS students should follow through with their usual registration procedures for Courant courses; Courant-based students may call TorchTone (995-4747) and register.

Potential Conflict-of-Interest

Students who work must consider whether participating in a project--and interning for a Projects course client--will involve a conflict-of-interest with their employer. Prof. Goldberg has checked, and none of our clients consider it a conflict if a student intern works elsewhere, as long as the employer does not compete with the client. Students should obtain their employer's approval to intern, if they feel it is necessary.

Non-disclosure

At some clients, students will access proprietary information protected as trade secrets. Student interns at these clients may be asked to sign a legal document called a non-disclosure which promises that they will not communicate trade secrets learned at work outside the client. If you indicate interest in a particular project, we assume that you're willing to sign a non-disclosure for that client. Prof. Goldberg will sign the non-disclosure too. Students who work should obtain their employer's authorization to sign the non-disclosure, if they feel permission is necessary.

Schedule

Projects, like all graduate CS courses at NYU, demand significant effort. Doing a good job requires about 10 hours of participation a week; doing a great job requires more.

Weekly schedule

We meet as a class about 9 out of 14 weeks. The tentative semester schedule is below. Class attendance is mandatory, as class meetings include technical and operational lectures by both students and Prof. Goldberg.

Most clients are corporations which work "regular business hours". Projects involve coordination among students, and between students and the client. Students and clients are strongly urged to arrange a mutually convenient weekday on which students will meet and intern weekly at the client site. Some clients may work weekends and/or evenings, and may be able to schedule the regular meeting outside of business hours.

Students who are full-time employees

Some students who work full-time want to take Projects. They may do so.

Students unable to spend time at client sites during "regular business hours" should apply for projects whose regular meetings occur outside of business hours or at NYU. Prof. Goldberg will attempt to assign them accordingly. However, no student can be guaranteed assignment to a project that is scheduled outside regular business hours.

Resources for running special individual projects are not available.

Semester project schedule

To complete the projects during our 14 week semester, Projects is scheduled tightly. The Spring 2000 schedule follows:

Through January 20: Prof. Goldberg enrolls a selected group of students.

By January 20: Prospective clients submit project proposals. Proposals will be published on NYU's Web to advertise the course to students.

January 20: At the first class, students learn about all projects.

January 22: Students rank projects.  The projects which really excite the students get staffed. In past years, Prof. Goldberg's been able to assign 95% of students to projects that they rank 9 or 10 out of 10.

January 24: Students assigned to projects.  Students notified by email.  Winning and losing clients are notified.

January 24 through January 27:  Liaisons schedule kickoff meetings at clients.  One student, designated the liaison, is responsible for scheduling the kickoff meeting and for scheduling a mutually convenient weekly time at which the client's project manager(s) and the student team can meet and work together at the client's site. The meeting should be scheduled as early as possible.

January 26 through February 3:  We hold a 3 hour kickoff meeting at each client. The student team and Prof. Goldberg meet the client's authorizing and project manager(s). The client explains the set of projects we will pursue in much greater detail than the proposal. Together, we select a mutually satisfactory subset of projects to pursue.  Each student leaves with the beginnings of a clear understanding of the project they will work on.  Prof. Goldberg assigns each student a software topic to talk about at their technical lecture.

January 31 through May 4: Each team interns for about 12 weeks with their client. Students meet weekly with their project manager. Prof. Goldberg supervises and teaches the class at a weekly meeting at NYU. We study software engineering, technology, project management and presentation skills.

Week of March 6: We hold a 2 hour post analysis meeting at which we transition from an analysis and planning phase to a prototyping phase at each client.  The student team and Prof. Goldberg meet with the client's project manager(s). We evaluate the project's progress and set clear goals for the rest of the work.Students present an analysis and prototyping plan.Example plans will be made available by professor Goldberg.

May 4, 5 - 7 PM: At our "DemoShow" at NYU all teams present their results to all clients, interested faculty and other students.

May 4 through May 10: At a 2 hour wrap-up meeting at the end of the semester the team and Prof. Goldberg meet with the client's authorizing and project manager(s) at the client. Students present their results and hand-off their results to clients.

Class Meeting Schedule

Both students and Prof. Goldberg will speak in class.
 

Week

Date

Topic

Description

1

20-Jan

Professor: Information Technology Projects: Introduction and Logistics 

Course goals: Software project planning and execution: business analysis and requirements gathering; development planning and scheduling: software lifecycle.  Description of all projects and clients, review course description, handout student questionnaire and project selection form.  Course grading. 

2

27-Jan

Professor: Personal Businesses Processes 

Team assignments, kickoff goals and agenda progress report, liaison and webmaster responsibilities; How to deliver a technical lecture; Example technical lecture.  Teamwork and problem solving skills.

3

3-Feb

Kickoff week - No Class

 

4

10-Feb

Students: Technical Lecture 

Each student lectures to the entire class about a software system or tool likely to be used in their project. Each lecture lasts 15 minutes.

5

17-Feb

Students: Technical Lecture 

Ditto.

6

24-Feb

No Class

 

7

2-Mar

TBD; Perhaps Interface design, definition and implementation.

 

8

9-Mar

Mid-course corrections week - No Class

 

 

16-Mar

NYU Vacation: No Class

 

9

23-Mar

Handout code inspection readings and example code for students to inspect.

Discuss code inspection process. 

10

30-Mar

Student Presentations: Client description; Professor: Programming Principles Applied to Reviewing Code 

Describe the client.  Include client size, business goals, and strategy, but concentrate on intangible qualities like work atmosphere, career growth opportunity, current management and employee skill levels, and other characteristics that one up can learn about an organization only after being there a while.

 

Professor: Demonstrate a code inspection on my code.

11

6-Apr

No Class; prepare for code inspections.

Producers distribute code to class, and deliver architecture and functionality overview.  Reviewers take home code and look for errors.  Reviewers feedback error forms to me by April 10.

12

13-Apr

Students: Code Review

Review student code in class.

13

20-Apr

No Class

 

14

27-Apr

"Demo Show" planning and preparation

Demoshow presentation: content - demo, poster, handout; preparation and resource needs, invitees, presentation style.

15

4-May

"Demo Show" 5 - 7 PM

 

16

11-May

WrapUp meeting week

 

Texts

Required

Watts S. Humphrey, Managing the Software Process, 494 pages (May 1989), Addison-Wesley Pub Co; ISBN: 0201180952

Steve C McConnell, Rapid Development: Taming Wild Software Schedules, 647 pages (July 1996), Microsoft Press; ISBN: 1556159005

Recommended

Steve C. McConnell, Steve M. McConnell, Software Project Survival Guide, 250 pages (November 1997), Microsoft Press; ISBN: 1572316217

Steve C McConnell, Code Complete: A Practical Handbook of Software Construction,857 pages (May 1993), Microsoft Press; ISBN: 1556154844

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch (Designer), Design Patterns: Elements of Reusable Object-Oriented Software, 395 pages 1 edition (October 1995), Addison-Wesley Pub Co; ISBN: 0201633612

Interesting

Watts S. Humphrey, A Discipline for Software Engineering (Sei Series in SoftwareEngineering), 789 pages (January 1995), Addison-Wesley Pub Co; ISBN: 0201546108

Student Responsibilities and Evaluation

Responsibilities

Each student is primarily responsible for working on their project, making progress towards its goal, and transferring their results to the client at the end of the semester.

Each student will make three presentations to the class: an overview of the technology involved in their project, a discussion of their client or code, and a final presentation of their accomplishments. These presentations serve several purposes: motivate you to become more skilled in the software you'll be using; give you practice delivering presentations; and teach the rest of the class.

Each student will describe their work orally and in a brief written summary which will be delivered at the DemoShow and to the client at the WrapUp meeting at the end of the semester.

Grading

Student evaluation is distributed as follows:
 

Three in-class presentations (technical lecture, Progress / Client description or code review, and Demo Show)

 20%

Constructive, active participation in 3 major meetings, Kick-off, end of analysis and wrapup

15%

Emailed progress reports

10%

Contribution to end of analysis meeting report

10%

Contribution to demo show handout or poster and final wrapup report

10%

Overall accomplishment in the project 

35%

Course Resources

Whenever possible, clients will provide computing resources. In addition, the CS department will try to provide computing when needed.  Please ask me if you need software, extra disk space, access to a computer, or another resouce.

Communications

Email and the email beacon

All students and client supervisors must read and respond to Internet email daily. All students should join the http://www.onelist.com/community/NYU_PROJECTS_S00 class mailing list.  Each project will form its own mailing list. Join that too.

Team Web Page

Each project will need a Web page.  The page will contain

One student, called the Project Webmaster, will have primary responsibility for maintaining the Web page.  Everyone else will be able to contribute to it.  We will make the page visible to students in the course and the client, but invisible to the rest of the world.

Team liaison

Each team needs a team liaison responsible for organizing interaction with the client. The liaison's job includes

If you want to be your team's liaison, please volunteer.

Progress report

Each student must send your team email beacon a weekly email progress report on Thursday before class. While this sounds bureaucratic and impersonal, but it's the only way I can efficiently track all the students in the course. Spend 5-15 minutes composing the progress report (so if you devote 8 hours per week to the class the report takes at most 3% of class time). Writing the report will help you evaluate how you're doing. The report contains:

Please email the report with a subject line of:
Projects; "client name"; "week number"
where weeks are numbered starting with January 20, 2000, so Prof. Goldberg's software can parse and organize reports.



This document and associated materials were authored or compiled by Arthur Goldberg. This compilation and supporting electronic teaching materials may be freely used for non-commercial use provided any electronic or print version includes this notice. All rights reserved. Copyright Arthur P. Goldberg, 1996 through 2000.