1 / 34

CSC 213 – Large Scale Programming

Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu. CSC 213 – Large Scale Programming. Objectives Met in CSC213. Develop solution over entire software lifecycle Specify & design computational solutions Implement & test computational solutions

fagan
Download Presentation

CSC 213 – Large Scale Programming

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. Prof. Matthew HertzWTC 207D / 888-2436 hertzm@canisius.edu CSC 213 – Large Scale Programming

  2. Objectives Met in CSC213 • Develop solution over entire software lifecycle • Specify & design computational solutions • Implement & test computational solutions • Describe which data structure to use & explain why • Describe execution of fundamental data structures • Know operational details of languages & systems • Understand file structures, storage, and indexes • Know theoretical foundations of computing • Trace & analyze algorithms

  3. High-level Objectives • Improve coding ability • Learn skills needed to develop larger systems • Master tricksused to solve common problems • Have fun

  4. Expectations of Me • Lectures prepared and organized • Give interesting, thoughtful, fun problems • Be (reasonably) available to answer questions • Be honest and forthright

  5. Why Most Classes Suck

  6. Teaching Style • Reasoning more important than answer • Since not reliable, lucky guesses are not meaningful • Explaining how & whydemonstrates mastery • Once answered, rarely see question again • Class participation is vital • Need to understand difficulty to adjust my approach

  7. Adult Learning • Students will need to read material before class • Answer initial questions at start of class • (Blissfully short) lecture explains key ideas • Provides 2nd opportunityto see material • Limits long, boring droning • Students work in teams to solve problems • Make sure you actually understand material • Easy to correct mistakes if caught early in learning

  8. Expectations of You • Work hard • Come to class prepared • Support & help all your teammates • Ask for help early and often • Let me know what you are thinking

  9. Attendance • Attendance is mandatory • Talk to me once you knowyou must miss class • You are responsible for every class • Missing class is never acceptable excuse • Best way to earn a poor grade: skip class

  10. Deadlines • Have 1 “virtual extension” • Only on programming projects will it be accepted • Use is automatic; no need to warn before submission • Extension on each weekly assignment possible • Given when good notes on reading submitted on-time • Must be used that week, but can be earned every week • Late work not accepted without extension • If you know you cannot make a deadline, talk to me • Earlier we talk, the better we can find a solution

  11. Grading Philosophy • Grades reflect student's demonstrated ability • Not a competition where grades are relative • Quite happily give "A" to all who earn it • "A" not automatic because score is highest in class • Remain fair for students past, present, & future • When in doubt, I consider what is most fair • Hard work alone insufficient to raise a score • Good life skill I want to reward: working efficiently

  12. Course Grading • Grades available via Angel • Midterms given onMar. 2nd& Apr. 11th • 3 programming projects during semester

  13. Course Grading Goals • Build skills used by “real” programmers • Lots of opportunities to learn & improve • Present material in variety of ways • Develop understanding needed for later classes • Catch and correct problems early

  14. Weekly Assignments • Posted on web/Angel each week • Normally due by 5PM following Tuesday • Can earn virtual extension for all of these assignments • Should get 100% on all; ask me questions you still have • Several goals for these assignments • Provide additional programming opportunities • Reinforce material from each lecture • Questions should seem easy & take under 10 min. • Means you are doing well

  15. Quizzes • Show you understand material from class • Short (20 min?) quiz completed individually at start • Followed by group quiz to help you learn material • Encourage you to stay up on material & reading • Work much less stressfulif you stay up to date • If only working right before tests, stress may be high • Covers lectures & reading, so slides alone may not help

  16. Programmer’s Notebook • Take notes on readings’ important details • Course webpage contains helpful templates to use • Notes written by you so easy to understand • (Don’t care where you get information from) • Use notebooks during labs & tests • Without notebook, no answers to related questions • Can also use book, but book less useful than own notes

  17. Workings of My Slides • Slides contain many pictures, little text • Lectures interesting & fun (or at least better) • Provides you with good way to reinforce lessons • Increasingly suckas actual notes • Print handout & take notes on the side as we go • Make sure to write down steps shown in animations • Slides (with notes) usableon tests, labs, class… • Win-win proposition • (Except for the lazy ones of you…)

  18. Collaboration • Fellow students are a great resource • Provides multiple viewpoints & understandings • Get together, discuss material, and study • Can have them answer lingering questions • Clarify assignment and what it requires • Learn and practice some basic social skills

  19. Collaboration • Work you submit must be done by you • When discussing homework or projects • Leave conversation with memories only • Wait 15+ minutes before starting on your own • Solutions always unique after waiting • Step away from computer when discussing code • When in doubt, ask me

  20. Coding Help • Will work on testing & debugging skills • To get debugging help in CSC213 • Method(s) must be commented (when appropriate) • Must use a trace or similar to look for bug • Students find own solution once they start doing this • If problem not fixed, gives us starting point to work • Learn to fix your own errors & not rely on the Professor

  21. Textbooks • Goodrich & Tamassia , Data Structures and Algorithms in Java, 5th Edition, Wiley, 2010. • Same as we used last term • Nothing to buy this term! • Save money for really nice bribe • Covering remainderof the textbook

  22. Angel Site for Class • Pages for course found on Angel • Handouts, slides, assignments posted before class • Can also find solutions after work is due • May not include everything said in class • Better than nothing, but worse than being here!

  23. Why Do Models Matter? • Client has 2 programmers with different styles Bob Joe

  24. More about Bob & Joe… Bob codes likeJoe paid attention & like he did in collegedoes it correctly

  25. Starting the Project • Both look at notes from project executive • Bob then writes test cases & starts coding • Joe determines client’s needs in meetings

  26. Project Getting Going • Bob duplicates code, but with minor tweaks • Slows progress & requires expensive reworking • Design minimizing code created by Joe • Client’s requirements examined; bugs found & fixed

  27. Passing the Halfway Point • Bob works from scratch & does not reuse code • Lacks plan to incorporate existing code • Joe uses design to write comments & outlines • Finds majority of errors during this process • When possible, merges classes & simplifies design

  28. Project Nearing Completion • Bob’s code is project-specific& cannot be reused • Getting concerned as project starts falling behind • Joe writes test cases from his system design

  29. Final Rush to the Deadline • Bob cannot describe system to get extra help • Completing system takes lots of all-nighters • Joe’s coding is easy with well-defined tests • Code could be written by (cheap) trained monkeys Bob Joe

  30. Final Accounting

  31. What’s The End Result? • Bob barely finishes • Occasionally crashes • Close to original goal • Joe is tanned & rested • Reliable & robust • Follows design perfectly

  32. Why These Phases Matter

  33. For Next Lecture • There is reading for Friday • Reading available as link on Angel • Start talking about how large programs created • Must bring in 1st part of weekly assignment: • Write 5 page paper on what YOU think makes programmer good • Cannot be longer than 2 sentences • Be creative

More Related