30
CSC 313 – ADVANCED PROGRAMMING TOPICS Prof. Matthew Hertz WTC 207D / 888-2436 [email protected]

CSC 313 – Advanced Programming Topics

  • Upload
    keaira

  • View
    30

  • Download
    0

Embed Size (px)

DESCRIPTION

Prof. Matthew Hertz WTC 207D / 888-2436 [email protected]. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: CSC 313 –  Advanced Programming Topics

CSC 313 – ADVANCED PROGRAMMING TOPICS

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

Page 2: CSC 313 –  Advanced Programming Topics

What I Saw During Break

Page 3: CSC 313 –  Advanced Programming Topics

Quick Show of Hands

Used code that someone else wrote

Page 4: CSC 313 –  Advanced Programming Topics

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Page 5: CSC 313 –  Advanced Programming Topics

Quick Show of Hands

Used code that someone else wroteand enjoyed the experience?

Had someone else use your code

Page 6: CSC 313 –  Advanced Programming Topics

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

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

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

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

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

Expectations of Me

Lectures prepared and organized Give interesting, thoughtful, fun

problems Be (reasonably) available to answer

questions Be honest and forthright

Page 12: CSC 313 –  Advanced Programming Topics

Why Most Classes Suck

Page 13: CSC 313 –  Advanced Programming Topics

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

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

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

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

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

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

Receive one grade for both lab & lecture

Course GradingTests 26%Final 30%

Lab Projects 25%Activities 7%

Pattern Report 12%

Page 19: CSC 313 –  Advanced Programming Topics

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

Grading Philosophy

Doctor Who Cures You

Doctor Who Works Hard

Would you rather have:

Page 21: CSC 313 –  Advanced Programming Topics

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

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

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

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

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

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

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

age 3)

Page 28: CSC 313 –  Advanced Programming Topics

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

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

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