1 / 19

Administrative Items

Stay updated on team assignments and milestone 1 coding tutorial sessions for ECE 297. Learn about API performance optimization, memory management, and coding tips for clean code. Get insights into team formation stages and characteristics of high-performing teams.

caitlina
Download Presentation

Administrative Items

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. Administrative Items ECE 297

  2. Teams & Tutorials • Team: CI + meeting room, TA + lab room • See Team_ta_ci_and_room • No team? • Dr. Tallman will assign in tutorial next week • Mon., Jan 21,1-3 pm, BA B025 • Mon., Jan 21,4-6 pm, OI 8220 • Tues., Jan 22, 10 - noon, GB 405 • Random: usually better to pick your teammates • Optional milestone 1 coding tutorial • In 2nd hour only of tutorial • Mon., Jan 21, 2-3 pm, MY 360 • Mon., Jan 21, 5-6 pm, BA 1220 • Tues., Jan 22, 11 am - noon, GB 405

  3. Milestone 1 Overview & APIs Continued

  4. API Performance • Most functions tested for • Correct results • Performance • How to set performance target? • Low-level API: don’t know / can’t check what end user needs • STL-like approach: as fast as possible! • Required performance • load_map can be O(N) or slightly higher • Other calls must use data structure/algorithm that leads to minimum or near minimum O() • ece297exercise tests it is no more than 3X slower than our (fairly good) implementation

  5. Performance Example std::vector<int> find_all_street_intersections(intstreet_id); • StreetsDatabaseAPI can • Return the number of StreetSegments • Return the intersections on each endof a StreetSegment • Tell you the street_id of a StreetSegment • Just call these: O(NStreetSegments) find_all_street_intersections () • Fastest possible? • O(NumIntersectionsOnStreet) • Store data in load_map to enable!

  6. Clean Up main.cpp (made by unit tests) // Load anything you want here load_map (“toronto.bin”); intinter_id = find_closest_intersection (my_position); if (inter_id != 22333) { <your code failed the test, record it> } // lots more tests // clean up here; all memory should be de-allocated close_map(); ece297exercise runs valgrind on a load_map(), use, close_map() test Must free all memory or will lose marks

  7. Automatic Memory Checking • Memory checking: valgrind slowdown ~10x • Testing: want fast & thorough • Small test case: almost as thorough as big • St. Helena

  8. load_map How Do I Get Its Data? main.cpp (made by unit tests) // Load anything you want here load_map (“toronto.streets.bin”); intinter_id = find_closest_intersection (my_position); if (inter_id != 22333) { <your code failed the test, record it> } // lots more tests // clean up here; all memory should be de-allocated close_map(); ?  global variable

  9. But Aren’t Global Variables Bad? • Yes, if you overuse them • E.g. could pass argument but use global variable to avoid typing! • But almost all programs have some • Or something very similar • Limit their number • Group related data into classes (e.g. StreetGraph?)  organizes data and avoids lots of namespace pollution StreetGraph find_closest_intersection (my_position); load_map() close_map()

  10. Global Variable Pitfalls • Undisciplined use  hard to determine function inputs and outputs StreetGraph find_closest_intersection (my_position); find_ … Only read global variables here! load_map() close_map() Only change global variables in load & close More coding / milestone 1 tips in 2nd hour of tutorial this week

  11. Team Formation & Performance ECE 297

  12. Four Stages of a Team • By Bruce Tuckman, Psychology Professor • Forming • Picking team, getting to know each other • Storming • Figuring out who does what & how, often contentious • Norming • Members understand and accountable for their roles • Performing • Only high-performance teams reach this stage; continuous improvement, open discussion, high trust You are here! Want to get here (or beyond)

  13. Social Norms of Effective Teams • NY Times: Google Research on Teams • Equal speaking • Over day, members speak roughly equally • All engaged, all feel valued 2. On average, high social sensitivity • Can read emotions of other team members • Can tell when someone feeling left out, …

  14. What Makes an Effective Team • What are your top 3 characteristics? • Same goal • Team members feel valued • Clear roles • Proper organization, how things will be done (accountability) • Effective communication & problem solving • How do you interpret the Google study? • Why equal speaking in good teams?

  15. My Top 4 for High-Performing Teams • Open discussion • Tell it like it is! • Don’t let things fester • But be constructive • Accountability • Take responsibility for your part of the project • Own your mistakes, delays, etc. and find a solution • Transparency • If you’re behind or some of your code doesn’t work, say so clearly • Don’t hide or evade • Trust • Helped by all the above • Plus spend time working together (in person!)

  16. Team Status Meeting • Two per week: 1 with CI & 1 with TA • Typical industry practice: weekly team meeting • With written status (usually wiki) • Good meetings help make good teams • Show transparency and accountability • Concise statement of what is done and not done • Clear (single person) ownership of various tasks • With a target completion date • Leverage the CI & TA’s expertise • Mentors are valuable  ask questions

  17. Team wiki • Team’s memory and to-do list • Key data • What’s next, with target date & owner for each • What’s done, and what was reassigned / delayed • Can have lots of detailed data • If so, add a summary for weekly CI & TA meeting • Should have received email with initial password • Change it! • Your wiki: for your team, TA and CI • Wiki Quick Start Guide

  18. Sample Wiki • Comments?

  19. Wiki: Try #2 • Measurable milestones, with owners & target dates

More Related