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: 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” 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 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