csc 213 – large scale programming prof. matthew hertz wtc 207d / 888-2436 [email protected]

26
CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 [email protected]

Upload: amy-thompson

Post on 13-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

CSC 213 –Large Scale

Programming

Prof. Matthew Hertz

WTC 207D / 888-2436

[email protected]

Page 2: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Objectives Met in CSC213 Design computational solutions

Specify, design, implement, and test a program of at least 1000 lines Design and implement a simple GUI Decompose a problem into logically grouped subprograms Develop and analyze algorithms

Program well Work independently Code in a high-level language Debug a program Document a program Write and use a test plan Write recursive algorithms, greedy algorithms, & divide-and-conquer algorithms

Organize data for effective use Use fundamental data structures Implement data structures Understand file structures, storage, and indexes

Understand the role of computing and the computer professional Present or explain ideas Weigh different solutions and explain or argue why one was preferable Work in teams

Page 3: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

High-level Objectives

Have fun Become an effective programmer via better

understanding of the development process Continue developing “toolbox” of solutions

Page 4: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Expectations of Me

Lectures are prepared and organized Give interesting, thoughtful, & fun problems Be (reasonably) available to answer questions Be honest and forthright

Page 5: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Teaching Style

Reasoning more important than answer Will not face the same question again Answer meaningless if just a lucky guess Mastery means explaining how & why

Class participation is vital Cannot modify approach until I know what the

problem is

Page 6: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Adult Learning

Students read material before class Begin class with opportunity to ask questions (Short) lecture explains key topics & ideas

Provides 2nd opportunity to see material Prevents long, boring lectures

Students work in teams solving problems Make sure you actually understand material (Nearly) Penalty-free chance to make mistakes

Page 7: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Expectations of You

Work hard Come to class prepared Be a good teammate Ask for help early and often

Let me know what you are thinking

Page 8: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Attendance & Deadlines

Attendance is mandatory If you must miss a class, talk to me ahead of time You are responsible for every class Best way to earn a poor grade: skip class

Work must be submitted by time it is due Late work will not be accepted Talk to me as soon as you know you cannot make

a deadline

Page 9: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu
Page 10: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Attack of Real Life

When life happens… May need to get a note from the Dean Be prepared to show documentation Talk to me when you can

We will find fair & workable solution

Page 11: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Course Grading

Midterm 21%

Final 32%

Projects 24%

Daily Activities 5%

Programmer’s Notebook 3%

Reading Quizzes 3%

Program Portfolio 12%

Grade spreadsheet available on course web page Midterm given on Mar. 26th

Final covers entire semester 6 programming projects during semester

Page 12: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Goals for Other Graded Items

CSC212/213 have almost too much material Do not want to burn everyone out But really important to learn… …and equally important to learn well

Build skills used by “real” programmers Often have references nearby to look things up Write Cliff’s Notes of most important details

Page 13: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Programmer’s Notebook

Take notes on readings’ most important details for each lecture Template for notes on course webpage Written in manner that makes most sense to you (Don’t care where you get information from)

Will collect notebooks twice during term Grade will be on how complete notes are

Used on midterm & final along with book Not allowed to include my slides in notebook

Page 14: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu
Page 15: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu
Page 16: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Reading Quizzes

Classes may begin with quiz on day’s reading Limited to details on notebook template… …and will be open notebook

Unless asked, will not cover material on template in detail Leaving time to focus on more complex issues

Gets rid of need for weekly assignments (I hope)

Notebook also useful reference in future classes

Page 17: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Program Portfolio

Opportunity to show off programming skills You must submit all 6 assignments as normal Choose 3 best for further scrutiny Will be due on last day of the term

Document entire programming process Shows how you arrived at the final product Must include drafts program went through

Gives you chance to perfect a program Grading tougher than normal assignments But also get much longer to complete

Page 18: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Grading Rubric

“A” Know material Few small mistakes

“B” Good understanding of topic Miss a few “boundary cases”

“C” Know idea, fuzzy on details Miss large number of

boundary cases -or- Solution is close, but not

quite correct

“D” Vague on idea, details are a

blur Only solves general case -or- Solution usually incorrect -or- Solution rarely crashes

“F” Started day before its due Solution rarely correct -or- Crashes regularly -or- Code cannot compile

Page 19: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Learning Styles

People have different ways in which they best take in and process information

Important for each student to discover what is best for them

Will try presenting material visually, verbally, written, and kinetically Let me know what works for you Let me know what DOESN’T work for you

Page 20: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Collaboration

Fellow students are a great resource Different styles of learning yields multiple levels of

understanding Get together, discuss material, and study Answer lingering questions you have Clarify what a problem is asking (Most of you) take many classes together, may as

well start interacting

Page 21: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Collaboration

Work you submit must be done by you When discussing homework or projects

Leave conversation with memories only Wait >15 minutes before starting on your own Never seen 2 people submit similar solutions

when they actually wait Should not be reviewing work once its started When in doubt, ask me

Page 22: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Coding Help

New policy for CSC111, CSC212, CSC213 Minimum requirements for debugging help

Course includes focus on testing/debugging To get debugging help in CSC213:

Method(s) must be javadoc’d Must have test cases for method(s) Must have performed some trace looking for bug

Trace can either be on paper or via System.err

Page 23: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Textbook

Michael Goodrich and Roberto Tamassia:Data Structures and Algorithms in Java, 4th edition, Wiley, 2006.

Not available at bookstore, but is on web Will cover about 50% of the textbook

CSC212 looks at linear data structures CSC213 looks at other concepts: trees and

graphs

Page 24: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Course Website

http://cs.canisius.edu/~hertzm/csc213s07

Contains slides, announcements, other important information

Does not replace actually attending class

Page 25: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

Personal Information SheetName: Matthew HertzYear: 2nd yearMajor: Computer SciencePrevious Computer Experience:

A in CS2 at MBHSI am in this course because:

Enjoy helping novice coders and seeing them develop and growMy goals for this semester are…

•Include better tests for IM project•Develop better problems•Beat my wife at darts

Page 26: CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D / 888-2436 hertzm@canisius.edu

For Next Lecture

Think about what you think differentiates a good programmer from a great programmer 1st item for Programmer’s Notebook: Write 2 – 3

paragraphs convincing me of your opinion