Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE297 TA GUIDE Project supervision. Agenda M0 feedback Project overview M1 overview Project supervision.

Similar presentations


Presentation on theme: "ECE297 TA GUIDE Project supervision. Agenda M0 feedback Project overview M1 overview Project supervision."— Presentation transcript:

1 ECE297 TA GUIDE Project supervision

2 Agenda M0 feedback Project overview M1 overview Project supervision

3 M0 FEEDBACK

4 This Year’s Project Has nothing to do with last year! Server-client application wasn’t appealing to non-computer engineers More emphasis on design, less implementation details this year Complete overhaul Mapping application OSM = open street map From their website: “OpenStreetMap is a map of the world, created by people like you and free to use under an open license.” What you should know: 1. It’s an XML description of map 2. We parse it into a “.bin” and write an interface to it (StreetsDatabaseAPI.h) -- thanks Jeff We’ll go over the interface in detail 3. Students Build on that interface to create a google maps-like application

5 Project layers.osm OSM2BIN toronto.osm This is where students will be working

6 4 Milestones Milestone 1: Use The provided API (StreetsDatabaseAPI.h) to implement various functions. E.g. find_street_street_segments(..) Milestone 2: Graphics – use the provided API and m1 functions to visualize the map. Milestone 3: Pathfinding – find paths through the map between 2 intersections Milestone 4: Traveling Salesman – find a path that passes through n points on the map.

7 Project DEMO

8 TEAM DYNAMICS

9 A typical lab 5 teams per TA Twenty-four minutes per team Exist in the lab for the full 2 hours Meet every week: Students do most of the talking, you ask questions to fully understand their progress Wiki updates SVN commits Coding style Task division with teammates Grade milestones – demo portion (4x) Team 1Team 2Team 3Team 4 10 10.3011 12 11.30 E.g. takes only 10 minutes To get updates Help everyone for remaining time

10 Coding Style Readable/maintainable code High-level comments No long functions No magic numbers Proper Indentation Meaningful function/variable names

11 Wiki Status updates Assign 3% of course grade on team management and wiki updates at the very end Tell students that wiki is worth marks Should reflect their team management Team Work Concrete: What worked this week? What didn’t? Who did what last week? Who will do what next week? Students have “ownership” of parts of the project Want written tasks, with names & due dates

12 How to answer questions? “A manager is not a person who can do the work better than his men; he is a person who can get his men to do the work better than he can.” --Frederick W. Smith

13 I can’t get this function to pass the tests: vector find_adjacent_intersections(unsigned intersection_id); Bad response : You are returning duplicate intersection ids, if you make the returned ids are unique, it will work. Go check the tests and you’ll find the answer. You did the work for themYou did nothing Example student question?

14

15 Good response(s) : Which test cases is it failing in? What’s different about the test cases that fail? How do I know which test cases were failing? Where are these tests written – if you find out, you will find each test case? The unit tests are under the “tests/” directory in my project Student goes and finds the test that is failing I can see that my test output is different, but I don’t understand why the correct answer differs from mine (ie I still think mine is correct) You now know how to debug this, think about your assumptions for this function [some time later student comes back] I figured out what was wrong: I am returning duplicate ids in my vector. How do I fix that? If I have an array with duplicates in it, how do I get rid of the duplicates? Ask questions back Be a sounding board, Students bounce ideas off you Don’t give away answer Don’t dismiss questions It is not our job to tell them the solution It is not our job to tell them nothing and just grade them It is our job to guide them to the correct answer They come up with the answer, not us.

16 MILESTONE 1

17 Setting up the repo Group must be formed: must see cd-### when they run “groups” Repo: Same as before but must change permissions to be group writable as well. Try to ensure that students exclude useless files from commits Exclude folders called “private” and “dist” (Fig.12 in m1 handout) Otherwise they are changed at every commit – annoying and useless

18 Project layers.osm OSM2BIN toronto.osm This is where students will be working

19

20 StreetsDatabaseAPI.h

21

22

23 M1.h

24 M1.h cont. Go through the rest of the functions and ask me if you have any questions

25 M1 challenges Speed: E.g. Function to use in StreetsDatabaseAPI.h Easy solution: linear search over all intersections Fails speed test Smart solution: Hash map of intersection name->id Prepare hash map in load_map() function Pass speed test

26 Other Challenging Functions

27

28 Unit Tests Go through unit test tutorial They are asked to write a missing unit test Make sure their test catches intentionally broken code Code review Give students code from other teams They’ll write a 1-page code review document More on the logistics of this later

29 TA Grading Incomplete work loses marks Typical teams get ~70% (2/3) A team that did everything correctly Some things can be improved Only great Students get 100% Each mark you give is worth 1% (that’s a lot) Lab is for verbal updates and demos Review code details outside of the lab (at each milestone) Give feedback on student’s wiki on style etc Look at m1 rubric

30 QUESTIONS? EMAIL: mohamed@eecg.utoronto.camohamed@eecg.utoronto.ca OFFICE: Pratt 372


Download ppt "ECE297 TA GUIDE Project supervision. Agenda M0 feedback Project overview M1 overview Project supervision."

Similar presentations


Ads by Google