cse 436—intro lecture ron k. cytron cytron/cse436/ 11 september 2006

13
CSE 436—Intro Lecture Ron K. Cytron http://www.cs.wustl.edu/~cytron/cse436/ 11 September 2006

Upload: octavia-cooper

Post on 01-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436—Intro Lecture

Ron K. Cytron

http://www.cs.wustl.edu/~cytron/cse436/

11 September 2006

Page 2: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

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

Page 3: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

Why Software Engineering?

• IBM Research (Yorktown Heights, New York)– PTRAN project: researchprototypingproduct– 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”

Page 4: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

More recently

• DSSIExegy– 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

Page 5: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

My current status

• Back from sabbatical– At Exegy one day a week (½ Tuesday and ½

Thursday)– Otherwise at WU

• Why am I teaching this course?– Commitment to quality software– Love of computer science, programming

• a human-human activity more so than a human-machine activity

– Engineering as art + science

Page 6: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

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

Page 7: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

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)

Page 8: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

What to expect in “my” CSE 436

• 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

Page 9: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

How else?

• Outside speakers from industry will talk about Software Engineering from their perspective

• Mock interviews• Field trip possible

Page 10: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

Course particulars

• Take a look at the web space for course:– http://www.cs.wustl.edu/~cytron/cse436/

Page 11: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

Projects

• Project Exodus– Plan for large-scale evacuation– Emphasis on planning but also adaptation

• 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

– Hook up with other people taking tour with similar background (Yente)

• Declared-Strategy Voting– Instantiate an election

• Various election types/protocols– Conduct an election

Page 12: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

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– Really want Exodus– Wouldn’t mind having two teams do same project

• Looking for 4 teams of 4—5 people each• Form teams• Each team works on questions now

– No team meetings Friday

Page 13: CSE 436—Intro Lecture Ron K. Cytron cytron/cse436/ 11 September 2006

CSE 436 Software Engineering Workshop

Turn in before you leave

• Your name• Anything I should know about you

– What do you want to learn from this course?– Where do you intend to go from here?

• Teams you are thinking of joining/forming– Who else might be on that team?– Rank the projects I’ve proposed

• First choice, second, third– Propose a project that interests you