1 / 30

CSC 313 – Advanced Programming Topics

Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu. CSC 313 – Advanced Programming Topics. What I Saw During Break. Quick Show of Hands. Used code that someone else wrote. Quick Show of Hands. Used code that someone else wrote and enjoyed the experience ?. Quick Show of Hands.

keaira
Télécharger la présentation

CSC 313 – Advanced Programming Topics

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 313 – Advanced Programming Topics

  2. What I Saw During Break

  3. Quick Show of Hands • Used code that someone else wrote

  4. Quick Show of Hands • Used code that someone else wrote and enjoyed the experience?

  5. Quick Show of Hands • Used code that someone else wrote and enjoyed the experience? • Had someone else use your code

  6. Quick Show of Hands • Used code that someone else wrote and enjoyed the experience? • Had someone else use your code and not cast aspersions on your intelligence?

  7. Quick Show of Hands • Used code that someone else wrote and enjoyed the experience? • Had someone else use your code and not cast aspersions on your intelligence? • Looked at code you wrote 6 months ago

  8. Quick Show of Hands • Used code that someone else wrote and enjoyed the experience? • Had someone else use your code and not cast aspersions on your intelligence? • Looked at code you wrote 6 months ago without thinking,“What was I smoking?”

  9. Quick Show of Hands • Used code that someone else wrote and enjoyed the experience? • Had someone else use your code and not cast aspersions on your intelligence? • Looked at code you wrote 6 months ago without thinking, “What was I smoking?” • Written code you know is really optimized?

  10. High-level Objectives • Learn to write code that doesn'tsuck • Bug-free (within reason) • Even after 6 months, can be modified & updated • Less likely to be hunted & killed by colleagues • Have programs complete before next ice age • Have fun

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

  12. Why Most Classes Suck

  13. Teaching Style • Reasoning more important than answer • Once answered, rarely see question again • Lucky guesses are not meaningful • Explaining how & whydemonstrates mastery • Class participation is vital • Need to understand problem to adjust approach

  14. Adult Learning • Students read material before class • (Short) lecture explains key ideas • Provides 2nd opportunity to see material • Limits long, boring droning • Students work in teamsto solve problems • Make sure you actually understand material • Easy to correct when mistakes made early

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

  16. Important Policy • Class examines real-world problems • Not typical for most CSC courses • Requires everyone act like you are an adult • Assumption needed for labs to be reasonable • Keeps the problems small, but sufficient • Use simple meanings without arguing

  17. Important Policy • Class examines real-world problems • Not typical for most CSC courses • Requires everyone act like you are an adult • Assumption needed for labs to be reasonable • Keeps the problems small, but sufficient • Use simple meanings without arguing

  18. Course Grading • Grades available via Angel • Tests given on Mar. 12th & Apr. 19th • Receive one grade for both lab & lecture

  19. Grading Philosophy • Grades reflect student's demonstrated ability • Not a competition where grades are relative • Quite happily give "A" to all who earn it • Remain fair for students past, present, & future • When in doubt, Iconsider what is most fair • Effort alone insufficient to raise a score • Important to reward working efficiently

  20. Grading Philosophy Would you rather have: Doctor Who Cures You Doctor Who Works Hard

  21. Course Grading Goals Build skills needed to write good code Provide opportunities to learn & improve Present material in variety of ways Spot problems early & correct them quickly

  22. Lab Programs • Develop skills needed for real world • When working on little projects, this is hard • Better when you care about project you are using • If you have a project you want to work on… • … please use it if it can be fit into a lab • Will also provide hum-drum problem with lab • Not all topics fit in every project • Only use techniques when they really apply

  23. 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

  24. Collaboration • Work you submit must be done by you • When discussing lab projects for this course • 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

  25. Course Website • 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!

  26. Textbook • Head First Design Patterns, Eric Freeman and Elisabeth Freeman, O’Reilly Media, 2004. • Additional readings linked from Angel pages • Available at local bookstores & amazon.com • Covering most of this textbook

  27. Read me that page, Daddy! -Shoshanna Hertz (at age 3)

  28. Design Patterns • Grady Booch called them:One of greatest advances in past fifteen years • Booch popularized object-oriented design in 80’s • In last fifteen years, co-created UML in 1997 • Agile Alliance founder (along with others) • Abstracts programs to go far beyond code • Popular for object-oriented systems: C#, C++, Java • PHP, Perl, ECMAscript use; commonly used on web • Drives modern scripted languages: Ruby, Groovy

  29. Grady’s Words [C]ode is the ultimate truth, but not all the truth. There is […] a loss of information […] from vision to construction[…] Even though I may stare at some code, I do not have access to the rationale or the patterns that sweep across the […] code

  30. For Next Lecture • Read pages 1 – 14 in the book • For next lecture: Describe 2 great & 2 lousy tools • What makes them great/bad? • Who were they made for? • How do they accomplish the job? • There is lab Friday • Only time you must attend the actual lab

More Related