Information Technology Projects
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
software maturity model, the software life cycle, software
standardization, and technology trends.
Professor: Arthur Goldberg
Course home page: http://www.cs.nyu.edu/artg/itp/Fall2004/index.html
Update history in 2004: 8/23
Time: Most Thursdays, 5:00 to 8:00 PM (with advanced notice you
may leave for a 7 PM class), plus about 8 hours per week interning for
Place: WWH 402
Email beacon: G22_3812_001_fa04@cs.nyu.edu
Office: WWH, 251 Mercer, Room 409
Home page: www.cs.nyu.edu/artg
Office hours: 3 PM to 4
PM on Wednesdays and Thursdays or by appointment--please schedule
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
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 transition meeting the team presents their findings and a plan
and schedule for prototyping the best design. During the
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 Fall 2004
In exchange for our assistance, clients provide adequate resources for
students to learn and to succeed on the project. Typically, the
facilities, such as computers, software and office space for students
make significant progress during the course. Sometimes, NYU
provides such resources. A client technical project manager will
spend about one half a day a week supervising students.
Interactions with clients may provide opportunities for full-time
employment following the course. Many students have obtained jobs
the last 6 years.
Some clients will be paying significant money to NYU in recognition of
the accomplishments we achieve in the course.
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
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
feel comfortable, as should MS in IS students with less technical
Sometimes clients break projects into 2 person tasks so team members
can progress fairly independently.
In the Fall of 2004, the Projects course can accommodate 16 to 20
in 4 to 5 projects.
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 (firstname.lastname@example.org) for permission
register. Email a resume or short biography.
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.
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
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.
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
indicate interest in a particular project, we assume that you're
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
Projects, like all graduate CS courses at NYU, demands significant
effort. Doing a good job requires about 10 hours of participation a
week; doing a great job probably requires more.
We meet as a class about 8 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.
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
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
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
business hours or at NYU. Prof. Goldberg will attempt to
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 Fall 2004 schedule follows:
By Sept. 8: Prospective clients submit project proposals. Proposals
will be published on the course's web site to advertise the course to
Sept. 9: At the first class, students learn about the course and all
available projects. If the course has space for MSCS students,
they are admitted on a first come first serve basis.
Sept. 13, noon: Students rank projects. The projects which
really excite the students get staffed. In past years, Prof. Goldberg
has been able to assign 95% of students to projects that they rank 9 or
10 out of 10. A copy of the sheet is at http://www.cs.nyu.edu/artg/itp/Fall2004/ranking.html
Sept. 16: Students assigned to projects by Prof.
Goldberg. Students notified by email. Staffed and
clients are notified.
Sept. 16 to Sept. 20: Liaisons schedule 3 hour kickoff
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 intern together at the client's site. The
meeting should be scheduled as early as possible.
Sept. 20 to Oct. 1: We hold a 3 hour kickoff meeting
client. The student team and Prof. Goldberg meet the client's
authorizing and project manager(s), and any other members of the
client's team who wish to participate. The client explains the
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 intern on. Prof. Goldberg
assigns each student a software topic to talk about at their technical
Project interning: Kickoff meeting through Dec. 14: 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.
Nov. 1 to Nov. 5: We hold a 3 hour transition
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 a Project Plan. Example plans will
made available by Professor Goldberg.
Dec. 14, 5 to 8 PM: At our "DemoShow" at NYU all teams
their results to all clients, interested faculty and other students.
Dec. 15 to Dec. 21: At a 2 hour wrap-up meeting at the end
the semester the team and Prof. Goldberg meet with the client's
authorizing and project manager(s) at the client. Students present
results and hand-off their results to clients.
Class Meeting Schedule
||Topic / Reading
|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.
|Understanding and describing business objectives: tactical
and strategic goals, ROI; collecting and analyzing requirements, good
questions to ask, individual research; use case analysis; UML; GDD.
Progress reports, kickoff meeting goals, agenda and preparation.
Team assignments, liaison responsibilities; Teamwork and problem
||No class: kickoff meeting week
||No class: kickoff meeting week
|Project Analysis Continued, Transition meeting
preparation / RD, chap 10, 14, SPSG, Chap 7, 8 [change or
|Business requirements gathering, Features and specifications,
Project management, Risk management
What to do with requirements: managing expectations;
Analysis to development transition meeting format and goals; review
sample project plan and outline
||System architecture and design, progress report / TBD,
Weinberg "programming teams"
Individual preparation /
|Individual preparation: tuning technical skills; testing
theories; risk-reward of guessing
What makes a good architecture? Interface design, specification,
definition and implementation;
Present sample progress report; democratic programming teams
||Student presentations: Project progress reports
||Half of students, some from each team, discuss project
Professor: Project problem-solving; communications, understanding roles
|No class: transition meeting week
||Large scale software
engineering, changing organizations / Humphrey, Weinberg
|CMM, Weinberg change model.
|| Writing correct code - Reviewing Code / Gries, the science
programming; extreme programming doctrine, Weinberg, McConnell and
Humphrey on code review, Capers Jones, example code
||What is 'correct' code? Approaches to making code
Good design; avoiding bugs; invariants; correctness proofs; the
individual psychology of programming--cognitive dissonance; testing:
unit test, JUnit, extreme programming, demonstrate a code inspection
||No class on Thanksgiving
|Student presentations: Code review
||Student presentations. Half of students, some from each
team, review code. (For code reviews, programmers distribute code
and architecture and functionality overview to class by 27-Nov.
Reviewers take home code and look for errors. Reviewers return
feedback error forms to Professor by 1-Dec).
Programmer presents code, team members and professor offer feedback.
||DemoShow planning and preparation
||Demoshow presentation: demo content, other communication
tools: poster, handout; preparation and resource needs, invitees,
||Dec. 14, Tuesday
||Demonstrate project accomplishments to the public.
[RD] Steve C McConnell, Rapid Development: Taming Wild Software
Schedules, 647 pages (July 1996), Microsoft Press; ISBN:
[CC] Steve C McConnell, Code Complete: A Practical Handbook of
Software Construction, 857 pages (May 1993), Microsoft Press;
[MTSP] Watts S. Humphrey, Managing the Software Process, 494
pages (May 1989), Addison-Wesley Pub Co; ISBN: 0201180952
[DP] 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
[SPSG] Steve M. McConnell, Software Project Survival Guide, 250
pages (November 1997), Microsoft Press; ISBN: 1572316217
Watts S. Humphrey, A Discipline for Software Engineering (SEI
Series in Software Engineering), 789 pages (January 1995),
Addison-Wesley Pub Co; ISBN: 0201546108
Student Responsibilities and Evaluation
Each student is primarily responsible for interning 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 a presentations to the class: either a project
progress report or a code review. Each student will summarize the
project at the DemoShow.
Students must attend the kick-off, transition and wrap-up
meetings. Students shall prepare for the meetings and participate
in these meetings.
Student evaluation, totaling 110 points, is distributed as
|Activity or component
presentations (Progress report or code review, and DemoShow)
||8 points each
meetings: Kick-off, transition and wrap-up (evaluated on preparation
progress reports (evaluated on participation)
to Project Plan report (evaluated on content, responsiveness to
to demo show preparation, handout and/or poster
|Contribution to final wrap-up report (evaluated on content)
|Code review participation
|Subjective overall effort in the
overall accomplishment in the project
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 resource.
Email and the email beacon
All students and client supervisors must read and respond to Internet
email daily. All students should join the G22_3812_001_fa04@cs.nyu.edu
class mailing list, by filling on the form
on the mailing list web page,
Each project will form its own email group. Join that too.
Each project 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.
- Schedule initial and final meetings
with team, client and Prof. Goldberg.
- Schedule first couple meetings between
client and team.
Each student must send your project email group a weekly email
progress report on Thursday before class. A progress report is the best
way for people who are involved in the project but do not participate
regular meetings (like me and the authorizing managers) to track the
project's progress. It is an excellent habit. Many of the
best run software organizations track team member progress with simple
reports like these.
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
Here is an example of a fine report:
- Description of the week's goal(s)
- Description of progress towards the
- Description of the next week's goal(s)
- Optionally, description of obstacle(s)
making progress difficult
- Optionally, list of ways, if any,
Prof. Goldberg could help progress
1. Description of the week's goal(s)
· Prepare the Transition Meeting Report in the following
a) Draft detailed designs
b) Development plan
c) Serious open issues
· Working on the mockups for the entire system
2. Description of progress towards the goal(s)
· Finalizing the Transition Meeting Report
· Finalizing the GUI mockups
3. Description of the next week's goal(s)
· Present the report on the Transition Meeting
· Demo the proposed GUI
4. Description of obstacle(s) making progress difficult
Confused about GUI design.
5. List of ways, if any, Prof. Goldberg could help
Recommend a GUI design book. Cancel the assignment :-)
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 2004.