Wash U DARPA PCES PI Meeting Report

advertisement
CSE 436—Intro Lecture
Ron K. Cytron
http://www.cs.wustl.edu/~cytron/cse436/
12 September 2005
Who am I?
• Ron K. Cytron
– Professor, Computer Science and Engineering
– Director of DOC group
• Rice University: B.S.E.E, 1980
• University of Illinois:
– M.S., Computer Science, 1982
– Ph.D., Computer Science, 1984
• IBM Research
– Research Staff Member, 1984—1991
– Adjunct Professor, NYU and Columbia
• Washington University
– Visiting Adjunct, 1991—1993
– Associate Professor, 1993
– [Full] Professor, 2002
CSE 436 Software Engineering Workshop
Why Software Engineering?
• IBM Research (Yorktown Heights, New York)
– PTRAN project: researchprototypingproduct
– Software reviews and evaluations of projects
– Customer interactions within IBM and outside
• Texas Instruments (Dallas)
– Cross compiler and simulator support
– “Freeze and thaw” environment capture was my
enduring contribution
• Ultradata (St Louis company)
– Embedded application with offline desktop support
– Noisy data, rigorous testing required
– Memory space very tight—I was originally called in to
help them with “compression”
CSE 436 Software Engineering Workshop
More recently
•
DSSIExegy
– Start up in St Louis, started with IP work by myself and 3 other profs (Indeck,
Chamberlain, Franklin)
– 8 people in CWE to 20 at I-44 and I-270
•
Hardware and software company
– FPGA-based algorithmic development
– Softare for
• Prototyping
• User interfaces, reports
• Language interfaces
• Controls for hardware
•
Many lessons learned and still learning
– Lunch is important, talk about it early and often
– Always “both”
– Success depends on talent, shared vision and appreciation of goals, team
players
– Things you learn at Wash U are relevant and they matter greatly
•
Our field requires life-long learning
– Professional development
– Giving as well as getting
CSE 436 Software Engineering Workshop
My current status
• On semi-sabbatical
–
–
–
–
–
Two days a week at Exegy (Tuesdays and Thursdays)
Two days a week at WU (Mondays and Fridays)
Wednesday is a swing day
Teaching this semester, but not next
Then back to full-time WU
• Why am I teaching this course?
– Commitment to quality software
– Love of computer science, programming
• a human-human activity more so than a humanmachine activity
– Engineering as art + science
CSE 436 Software Engineering Workshop
Software Engineering
• Unusual field
– Consistent messages, discrepant terminology
• Important field
– Considered pivotal to addressing the “software
crisis”
• Diverse field
– Theory—formal requirements, specification
languages
– Practice—testing, software development models,
processes, project management
CSE 436 Software Engineering Workshop
Course Overview
This is a capstone course, meaning that you will draw from all your
experiences in other courses to complete the work in this course.
• Design skills, to arrive at a clean, effective design for your project.
• Coding skills, to implement your project in the best way possible.
• Programming language skills, as all projects will involve Java, C++,
and JNI to connect the pieces.
• Debugging skills, to find and fix bugs.
• Testing skills, to search for the presence of bugs.
• Theory skills, to prove the absence of bugs.
• Writing skills, to develop clean, effective prose describing
requirements and project activities.
• Presentation skills, to communicate the important aspects of your
project at different levels (management, customer, team)
CSE 436 Software Engineering Workshop
How might this semester differ from previous
ones?
• Implementation and Documentation
– Documentation required
– But implementation is equally important
• Testing
– Methodologies in lecture
– Teams practice testing at all levels
• Unit testing
• Application testing, white- and black-box
• Regression testing
• Emphasis on presentations
– Everybody presents
– Everybody critiques
– Everybody improves
• Study of software failures
• Final exam planned on lecture material
CSE 436 Software Engineering Workshop
How else?
• Outside speakers from industry will talk about
Software Engineering from their perspective
• Mock interviews
• Field trip possible
CSE 436 Software Engineering Workshop
Course particulars
• Take a look at the web space for course:
– http://www.cs.wustl.edu/~cytron/cse436/
CSE 436 Software Engineering Workshop
Projects
• Disco dance floor
– IEEE students building LED matrix
– Hardware patterned after project at MIT
• Tour-o-matic
– Give directions to people taking WU tour
• How to get from A to B (Dijkstra)
• Account for universal access (stairways might have infinite cost)
• Show sites along the way
– Play clips talking about things they experience
– Hook up with other people taking tour with similar background
(Yente)
• Juke box
–
–
–
–
CD ripping
CDDG (freedb) to get track/album info
Album covers
LCD display + monitor
CSE 436 Software Engineering Workshop
Team Formation
• Q/A on projects
• Team formation
– Social aspects
– Logistics: must be able to meet me as a team between 9—11 on
Fridays
– Interest in project
• I’d like to have each project covered
– Could drop Juke Box if needed
– Wouldn’t mind having two teams do same project
• Looking for 4 teams of 5-6 people each
• Form teams
• Each team works on questions now
– No team meetings Friday
CSE 436 Software Engineering Workshop
Download