9/6/2016 TD TDDD63 63: Pro rojects cts Introductory Lectures / Quizzes: 2 HP Python Programming Project : 5 HP jonas.kvarnstrom@liu.se – 2016 jonkv@ida jonkv@ida Proje oject ct: : Why? 2 2 Why a programming project? Direct hands-on programming experience early in your education ▪ Don’t wait to learn everything and then apply it A chance to create something larger ▪ Not just a sequence of short lab exercises illustrating specific topics A chance to practice working independently ▪ Y ou are at the university now! ▪ Take personal responsibility for what you do and what you learn 1
9/6/2016 jonkv@ida jonkv@ida Proje oject ct: : Now? 3 3 We expect you to … Dive head first into the world of programming! Spend a great deal of time on your project: Work hard , write a lot of code Try different approaches, solve a lot of problems Make mistakes : There is much you haven’t learned yet Learn as much as possible from the mistakes, and show us what you learned! 2
9/6/2016 jonkv@ida jonkv@ida Project ect: : Prefer ferenc ences es 5 5 Five distinct project types P1 P2 P3 P4 P5 For each project type : Extensive instructions on the web One assistant taking care of day-to-day issues Names on the course web pages! One senior person making the ultimate decisions jonkv@ida jonkv@ida Project ect: : Prefer ferenc ences es 6 6 Tell us your preferred project usingWebReg We take your preferences into consideration, but no guarantees (group size limits!) 3
9/6/2016 jonkv@ida jonkv@ida Proje oject ct: : Group up Assignment ignment 7 7 We randomly generate project groups of 3 students Professionalism: P1 P2 P3 Work with the people you are assigned to #4 #4 #4 #1 #3 #1 #3 #1 #3 #6 #7 #6 #7 #6 #7 #2 #2 #2 #5 #5 #5 #8 #8 #8 #9 #9 #9 Game: e: Captur turethe Flag ag 4
9/6/2016 jonkv@ida jonkv@ida Captur ture the Flag ag: : Outdo doors ors 9 9 Capture the flag : Traditional outdoor sport Each team has a flag and a territory of its own Objective: Capture the other team’s flag ▪ Without being tagged/touched in the other team’s territory Image: Wikipedia jonkv@ida jonkv@ida Captur ture the Flag ag: : Electro troni nicall cally 10 10 Electronic versions exist since 1984 … 5
9/6/2016 jonkv@ida jonkv@ida Captur ture the Flag ag: : Proje oject ct 11 11 Project: Implement ”Capture the Flag” in Python Basic framework given ▪ Graphics, physics Image tiles given – focus on programming Mandatory or potential tasks : ▪ Implement part of the basic game ▪ Add sound effects ▪ Add destroyable and movable objects ▪ Implement an AI player (artificial intelligence) ▪ Add support for networking with multiple players ▪ Write a level editor allowing new levels to be easily defined ▪ … Game: e: XPilot lot-AI AI 6
9/6/2016 jonkv@ida jonkv@ida XPilot lot: : Intro roductio duction 13 13 XPilot : classical game Control a spaceship Rotating, thrusting, firing on the enemy Avoid other ships / obstacles jonkv@ida jonkv@ida XPilot lot-AI AI: : Artificial tificial Intelligence elligence 14 14 XPilot-AI : A programming game Write code to control the spaceship : An intelligent agent Find ways to: ▪ Navigate ▪ Avoid the enemy ▪ Shoot at targets ▪ Fly as an escort ▪ Learn the environment (you can only “see” a certain distance) ▪ … At the end: ▪ Maybe a tournament between project teams? 7
9/6/2016 Softwar ware: e: Mapping ping jonkv@ida jonkv@ida Mapping: ping: Introduct roduction on 16 16 Maps used to be on paper… …but now they tend to be electronic 8
9/6/2016 jonkv@ida jonkv@ida Mapping: ping: Usag age 17 17 Many popular uses for maps! Real-time navigation (in combination with GPS) Mashups overlaying interesting information Heatmap: Where are photos How do hummingbirds migrate? in Panoramio taken? jonkv@ida jonkv@ida Mapping: ping: Project oject 18 18 Project: Develop a web application ! Begin using the Google Maps API to display maps ▪ But Google does not provide direct access to roads, … Add freely available structured map data from OpenStreetMap ▪ Generate paths for navigation ▪ … 9
9/6/2016 Hardwar dware: e: Lego Mindstorms dstorms jonkv@ida jonkv@ida Lego Minds dstor torms ms EV3 20 20 10
9/6/2016 jonkv@ida jonkv@ida Mindstorms: dstorms: Robots ts 21 21 Can be used to build many kinds of robots… jonkv@ida jonkv@ida Mindstorms: dstorms: Project oject 22 22 Project : Build (and program) a guard dog! Patrol an area Fire balls at intruders Chase intruders away 11
9/6/2016 Hardwar dware: e: Robocop copHuma manoid noidSoccer er jonkv@ida jonkv@ida RoboCup Cup: : Introduct roduction on 24 24 Robocup: Robotic soccer competition, since 1997 AIBO dogs (up to ) Small Size League Simulation League Middle Size League 12
9/6/2016 jonkv@ida jonkv@ida RoboCup Cup: : Robots 25 25 We have: Six Nao robots Made by Aldebaran Robotics 57 cm, 4.5 kg jonkv@ida jonkv@ida RoboCup Cup: : Project oject 26 26 Project: Play soccer! Hello World ! Get started programming the robots Basic Skills Develop simple skills like walking a certain distance and turning the head searching for the ball Playing Soccer Track the ball, kick the ball, score a goal Cooperation Pass the ball 13
9/6/2016 jonkv@ida jonkv@ida Proje oject ct Timeline eline Overvi view: w: Startup rtup Phase se 28 28 160909 This lecture 160912 160913 160914 WebReg open for signing up 160915 160916 160919 160920 Deadline : Sign up, tell us your preferred project 160921 160922 160923 Preliminary group assignment sent out 160926 Mandatory meeting: Meet partners, learn about the project … 160927 160928 Deadline : T ell us by lunch if group members are missing! 160929 160930 Final group assignment sent out 161003 Full speed ahead ! 14
9/6/2016 jonkv@ida jonkv@ida Proje oject ct Timeline eline Overvi view: w: Phase ase 1 29 29 Week 37 Next week : Sign up Week 38 Preliminary notification Week 39 First meeting (LA1) potential group changes Week 40 Startup : Intro phase, relatively detailed instructions W 41, (42) LA2 LA3 LA4 LA5 LA6 LA7 Intro phase Intro phase Progress Intro phase Intro phase Progress report report Spend even more time outside these lab times – standard lab procedure! Week 42 Re-exam period – catch up with intro phase if not finished Week 43 Exam period jonkv@ida jonkv@ida Proje oject ct Timeline eline Overvi view: w: Phase ase 2 30 30 Week 44 Main phase Week 45 Investigate, explore, implement, write a lot of code! Week 46 Guidance and goals given in project-specific instructions , together with milestones to achieve Week 47 Use your creativity and imagination, Week 48 and expand the project as much as time allows Week 49 ≈ 4 hours 2-hour lab with Most 4-hour lab 4-hour lab progress reports of work weeks in (assistants (assistants from each group outside the main present present (not a question the phase for one hour) for one hour) session) schedule! Demonstrate the project for the assistant Deadline! Week 50 Final presentations in Visionen 15
9/6/2016 jonkv@ida jonkv@ida Working ngat Home me 31 31 For some projects, you may be able to work at home – bonus ! Example: Thinlinc ▪ https://www.ida.liu.se/local/tus/handbook/linux/thinlinc.sv.shtml ▪ https://www.ida.liu.se/~TDDD11/UPP_Course_Mtrl/tools/thinlinc/index.sv.shtml But be at the labs at well – maximize feedback! 16
9/6/2016 jonkv@ida jonkv@ida Proje oject ct: : Extent nt 33 33 How much must you implement? The time required to finish a milestone depends on: Whether your implementation is rudimentary or full-featured How often you run into unexpected trouble How many solutions you try before succeeding Do as much as you can! Achieving milestones is one way of showing progress; minimum requirements are project-specific Another is making mistakes and showing clearly what you tried, why it didn’t work, and what you learned Spend the time, try hard, learn, explain! jonkv@ida jonkv@ida Proje oject ct: : Extent nt – Clari arificatio fications ns 34 34 Remember: Around 14 hours per week and person ! Complete project 5 hp = 3.33 weeks = 133 hours First period 33h (14h scheduled, 19h on your own time ) Presentations 2h Second period 98h in 7 weeks = 14h per week That's 42 person hours per group and week If you spend this time but have difficulties completing a milestone: Fine (as long as you show what you have done): You're still learning If you can't demonstrate that you are working hard: Expect additional tasks, komplettering 17
9/6/2016 jonkv@ida jonkv@ida Proje oject ct: : Reading ing Instruct tructions ons 36 36 Engineers must know what the users want and need! Read and re-read the instructions and specifications – all of them Otherwise: ▪ Running as fast as possible – in the wrong direction? ▪ Y ou’ll miss important hints! 18
Recommend
More recommend