Presentation is loading. Please wait.

Presentation is loading. Please wait.

Prof. Matthew Hertz WTC 207D / 888-2436

Similar presentations


Presentation on theme: "Prof. Matthew Hertz WTC 207D / 888-2436"— Presentation transcript:

1 Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

2 Quick Show of Hands  Used code that someone else wrote?  Had someone else use your code?  Looked at code you wrote 6 months ago?  Written code you know is really optimized?

3 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

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

5 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

6 Adult Learning  Students read material before class  (Short) lecture explains key ideas  Provides 2 nd 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

7 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

8 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

9  Grades available via Angel  Tests given on Mar. 2 nd & Apr. 23 rd  Receive one grade for both lab & lecture Course Grading Tests 22% Final 28% Lab Projects 25% Activities 7% Pattern Report 18%

10 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

11 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

12 Lab Programs

13 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

14 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

15 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!

16 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

17 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

18 For Next Lecture  Readings on Web about how programs compiled  How does compiler consider variables?  Is there technique used in every modern compiler?  How can I work bad S&M jokes into a lecture?  Do you really understand what your code means?  There is lab Friday & important to be on time  Unlike remaining labs, will use different format


Download ppt "Prof. Matthew Hertz WTC 207D / 888-2436"

Similar presentations


Ads by Google