Top Banner
CSC 313 – ADVANCED PROGRAMMING TOPICS Prof. Matthew Hertz WTC 207D / 888-2436 [email protected]
30
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

CSC 313 – ADVANCED PROGRAMMING TOPICS

Prof. Matthew HertzWTC 207D / 888-2436 [email protected]

Page 2: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

What I Saw During Break

Page 3: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Quick Show of Hands

Used code that someone else wrote

Page 4: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Page 5: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Had someone else use your code

Page 6: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Had someone else use your codeand not cast aspersions on your intelligence?

Page 7: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Had someone else use your codeand not cast aspersions on your intelligence?

Looked at code you wrote 6 months ago

Page 8: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Had someone else use your codeand not cast aspersions on your intelligence?

Looked at code you wrote 6 months agowithout thinking, “What was I smoking?”

Page 9: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Had someone else use your codeand not cast aspersions on your intelligence?

Looked at code you wrote 6 months agowithout thinking, “What was I smoking?”

Written code you know is really optimized?

Page 10: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 11: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Expectations of Me

Lectures prepared and organized Give interesting, thoughtful, fun

problems Be (reasonably) available to answer

questions Be honest and forthright

Page 12: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Why Most Classes Suck

Page 13: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 14: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 15: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 16: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 17: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 18: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Grades available via Angel Tests given on Mar. 12th & Apr. 19th

Receive one grade for both lab & lecture

Course Grading

Tests 26%

Final 30%

Lab Projects 25%

Activities 7%

Pattern Report 12%

Page 19: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 20: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Grading Philosophy

Doctor Who Cures You

Doctor Who Works Hard

Would you rather have:

Page 21: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 22: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 23: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 24: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 25: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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!

Page 26: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 27: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

Read me that page, Daddy! -Shoshanna Hertz (at

age 3)

Page 28: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 29: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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

Page 30: Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu.

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