1 / 35

ECE 297 Communication & Design

Slides are up on the Web. ECE 297 Communication & Design. Hans-Arno Jacobsen & Ken Tallman Course syllabus: http://ece297.msrg.utoronto.ca/. http://ece297.msrg.utoronto.ca/. 2011 Edition!. Assignment 1 is posted Labs & Tutorials are starting this week! Team selection by Jan 15 th.

ginn
Download Presentation

ECE 297 Communication & Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Slides are up on the Web ECE 297Communication & Design Hans-Arno Jacobsen & Ken Tallman Course syllabus: http://ece297.msrg.utoronto.ca/

  2. http://ece297.msrg.utoronto.ca/ 2011 Edition! ECE 297

  3. Assignment 1 is posted Labs & Tutorials are starting this week! Team selection by Jan 15th Slides are up on the Web ECE 297Communication & Design Hans-Arno Jacobsen & Ken Tallman Course syllabus: http://ece297.msrg.utoronto.ca/

  4. Dr. Ken Tallman k.tallman@utoronto.ca • Engineering Communication Program, University of Toronto • ECE 297, 496 • MSE 290, 390, 490 • Tutoring Centre • Specific research interests • Team teaching • Service learning • Reflective learning • Argument in engineering design • Office Hours (SF B670) • Tue. 2-3pm • Thurs. 10am-12pm

  5. Arno Jacobsen MIDDLEWARE SYSTEMS RESEARCH GROUP http://www.eecg.toronto.edu/~jacobsen • Research interests: Distributed systems & middleware • Middleware Systems Research Group @ msrg.org • Specific research projects • PADRES: Event Processing Platform • http://padres.msrg.org • eQoSystem: Declarative Distributed Applications • http://eQoSystem.msrg.org • AspeCtC • http://www.AspeCtC.net • R&D efforts, industry collaborations and experience • IBM Visiting Scientist • Principal Research Scientist at Yahoo! • Collaborations with Bell, CA, IBM, Sun … Office hours: After lecture or when door open (BA 4116). ECE 297 5

  6. APS 105 & 244 background for 297 • Programming in C • Basic expressions, condition. loop statements • Arrays, strings, pointer variables • Dynamic memory allocation (malloc() and free()) • Searching and sorting algorithms • Binary search, insertion sort, selection sort, bubble sort, quick sort • Linked lists, (binary) trees, hash tables ECE 297

  7. Lectures Labs + Tech Talks Tutorials News Group Best Effort ECE 297

  8. Today’s agenda • Course objectives and high-level messages • Administrative remarks (marks, textbook, …) • The project and its milestones ECE 297

  9. Objectives & messages 2011 Edition! ECE 297

  10. Course objectives • Prepare your for real-world systems design career • Gain experience with working in teams • Improve communication skills • Learn by doing and gather development experience • Practice writing software (i.e., design documents, code, documentation, and test cases) • Perfect C systems programming skills • Gain experience with standard development tools ECE 297 10

  11. Learn the tools of the trade • Writing good software takes lots of practice • You learn by doing and from experience • Getting it wrong and figuring out how things work is part of the experience • You need to learn to help yourself (man pages …) • Know your tools • Compiler, build environment, debugger, … • Building good software is an art • The Art of Unix Programming! ECE 297 11

  12. Good communication skills are quintessential • Good communication is critical to success • Courses, degrees, promotion, entrepreneurship etc. • Learn to differentiate between the important and the unimportant • Focus & prioritize - divide & conquer • Use our online Course Reader • But note, you can’t know (read) everything ECE 297 12

  13. Relevance of communication Skills • Summer job, PEY, … Masters, Ph.D., … • Reports, thesis, research papers, presentations, … • Project or product manager • Budgets, road maps, team meetings, demos • Engineer (hardware & software) • Patents, product specs., (code) documentation, memos, convince others about design (email) • Wikis, (micro) blogs, web pages, YouTube Channel • … and so much more … ECE 297 13

  14. CE or EE? ECE 297

  15. Even Hardware Design Requires Coding Circuit schematic for the serialization circuit FPGAs are one option to implement hardware. Above is Altera’s Cyclone II.

  16. Administrativa 2011 Edition! ECE 297

  17. Course organization I • Lectures • Tutorials (=meetings) with project managers • Labs are on T & W, 3-6 in GB243, GB251, SF2102 • Ad hoc technical talks by TAs during some lab hours • TA Lab & Tech talk schedule: http://ece297.msrg.utoronto.ca/T2012s/TeachingAssistants • Most work happens outside labs • Use labs for getting help & interaction with TAs • TAs are in labs during most scheduled lab sessions • The bulletin board runs as a best-effort resource by TAs via Blackboard (it does not replace the lab!) ECE 297 17

  18. Course organization II • One project, four milestones and ten deadlines • Milestone also known as assignment • Two deadlines per milestone • Design document • Revised design document and code • Two exams (requiring preparation and deliverables) • 15 minute software demonstration midterm in lab • 30 minute final presentation • For exact dates, see the online course syllabus • ALL dates are already set! ECE 297 18

  19. Mark composition • Assignments 40% • Design documents, memos, and code • Midterm 20% • Software demonstration • Final 35% • Presentation • Tutorial 5% • Marks are not per group but per individual! • Assignments are indirectly reflected in exams } Lecture, tutorial & lab content is covered in exam Q/A! ECE 297 19

  20. Online Course Reader • Recommended online resources • Use them selectively (on a by need basis) • Keyed on needs identified in each assignment • Lectures will draw some material from: • “The Art of UNIX Programming” • Covers principles & anecdotes • Freely available online • Many concepts in the book apply in a non-UNIX world as well ECE 297 20

  21. Recommended reference for C I like the book because it is concise and to the point. Kernighan, Brian W.; Dennis M. Ritchie; The C Programming Language. Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Or simply use the various online resources on C linked from our Course Reader. In your coding work with ANSI C. gcc is much more forgiving! Bonus marks in Assignment 2 require a tool that only processes ANSI C. ECE 297

  22. Project & milestones 2011 Edition! ECE 297

  23. The complete storage server After successful completion of Milestone 4 Application Client get(…) transaction{get(…), …, set(…)} S Config. Table Table set(…) Client … Network Table Table auth(…) Storage server Client query(…) Disk

  24. You don’t have to start from scratch. The skeleton code Required reading! Application Client S Config. Client … Network Storage server Client 24

  25. Storage server Milestone 1 Limited API Application Client get(…), set(…), … S Config. Table Table auth(…) Network Table Table One client at a time Storage server Tables are memory resident only Data schema is strings only “TorontoOntario-7.0“

  26. Storage server Milestone 2 Limited API Application Client get(…), set(…), … S Config. Table Table auth(…) PKI Network Table Table One client at a time Data schema is strings only Storage server Disk (file I/O) Unit testing!

  27. Storage server Milestone 3 Pieces likely effected by extensions Complete API Application Client get(…) S Config. Table Table set(…) Network Table Table One client at a time Storage server query(…) Extend with further data types (int, float, string) Disk

  28. Storage server Milestone 4 Application Client get(…) Transaction {get(…), …, set(…) } S Config. Table Table set(…) Client … Network Table Table Storage server Client query(…) Disk

  29. ECE 297 survival skills • Design is organizing and planning • Time spent on design is time well spent • Dual deadline model per milestone • Plans change • New requirements supersede prior design decisions • Learn to plan for and anticipate change • Plan for change • See & read: The Software Project page • Divide assignments into sub-tasks, conquer the project as a team ECE 297 30

  30. More ECE 297 survival skills • Systems building is about understanding and managing trade-offs • You can’t get it right for every eventuality • What’s the common case? • Test, test, test and automate these tests • K.I.S.S.: Keep it simple stupid • Do not over-engineer or gold-plate your system ECE 297

  31. Team selection Ken Tallman

  32. ECE 297

  33. The ECE 297 experience • Gather experience through learning by doing • Effective team work (collaboration in teams of 3) • Engineering design (research, problem solving) • Engineering communication (writing, presenting) • Software development (implementation, testing) • System evaluation (measurement, analysis) • Learn about and learn to use tools effectively • Versioning and concurrent development (svn) • Coding (gcc, acc, gdb, make etc.) • Unit testing (check) • Code documenting (doxygen) • Parsing (lex, yacc) • Data transformation (awk, sed) • Data graphing (gnu plot) ECE 297

More Related