Slides

advertisement
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
 Used code that someone else wrote
and enjoyed the experience?
 Had someone else use your code
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?
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
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?”
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?
High-level Objectives
 Learn to write code that doesn't suck
 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
Expectations of Me
 Lectures prepared and organized
 Give interesting, thoughtful, fun problems
 Be (reasonably) available to answer questions
 Be honest and forthright
Why Most Classes Suck
Teaching Style
 Reasoning more important than answer
 Once answered, rarely see question again
 Lucky guesses are not meaningful
 Explaining how & why demonstrates mastery
 Class participation is vital
 Need to understand problem to adjust approach
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 teams to solve problems
 Make sure you actually understand material
 Easy to correct when mistakes made early
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
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
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
Course Grading
Tests
Final
Lab Projects
Activities
Pattern Report
26%
30%
25%
7%
12%
 Grades available via Angel
 Tests given on Mar. 12th & Apr. 19th
 Receive one grade for both lab & lecture
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, I consider what is most fair
 Effort alone insufficient to raise a score
 Important to reward working efficiently
Grading Philosophy
Would you rather have:
Doctor Who Cures You
Doctor Who Works Hard
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
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
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
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
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!
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
Read me that page, Daddy!
-Shoshanna Hertz (at age 3)
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
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
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
Download