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 Objectives Met in CSC212  Develop solution over entire software lifecycle  Implement & test computational solutions  Describe which data structure to use & explain why  Describe execution of fundamental data structures  Know theoretical foundations of computing  Trace & analyze algorithms  Identify & describe limits of computational power

3 High-level Objectives  Become programmers, not just “code monkeys”  Working on your own, develop solutions from scratch  Explain your decisions and why they were best choice  Learn common real-world development techniques

4 High-level Objectives  Become programmers, not just “code monkeys”  Working on your own, develop solutions from scratch  Explain your decisions and why they were best choice  Learn common real-world development techniques

5 High-level Objectives  Become programmers, not just “code monkeys”  Working on your own, develop solutions from scratch  Explain your decisions and why they were best choice  Learn common real-world development techniques  Master basic tools needed for all future work  Will cover topics from about 50% of GRE subject test  “Data structures are critical for good performance”  Have fun

6 High-level Objectives  Become programmers, not just “code monkeys”  Working on your own, develop solutions from scratch  Explain your decisions and why they were best choice  Learn common real-world development techniques  Master basic tools needed for all future work  Will cover topics from about 50% of GRE subject test  “Data structures are critical for good performance”  Have fun

7 High-level Objectives  Become programmers, not just “code monkeys”  Working on your own, develop solutions from scratch  Explain your decisions and why they were best choice  Learn common real-world development techniques  Master basic tools needed for all future work  Will cover topics from about 50% of GRE subject test  “Data structures are critical for good performance”  Have fun

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

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

10 Why Most Classes Suck

11 Teaching Style

12 Adult Learning  Students read material before class  Answer initial questions at start of class  (Short) lecture explains key ideas  Provides 2 nd opportunity to see material  Also will limit long, boring droning  Students work in teams to solve problems  Make sure you actually understand material  Easy to correct mistakes if caught at the start

13 Expectations of You  Work hard  Come to class prepared  Support & help all your teammates  Ask for help early and often  Let me know what you are thinking

14 Attendance  Attendance is mandatory  Talk to me when you know you must miss class  You are responsible for every class  Missing class is never acceptable excuse  Best way to earn a poor grade: skip class

15 Deadlines  Have 2 virtual “extensions”  Each used to get 1 day extension on assignment  Can use both on single assignment for 48-hour delay  Late work not accepted without extension  If you know you cannot make a deadline, talk to me  Earlier we talk, the better the chance solution possible

16 Grading Philosophy  Grades reflect student's demonstrated ability  Not a competition where grades are relative  I will quite happily give A to entire class, if all earn it  A not automatic just because score is highest in class  Remain fair for students past, present, & future  When in doubt, I consider what most equitable  Hard work alone insufficient to raise a score  Working efficiently important life skill to be rewarded

17 Grading Philosophy Doctor Who Cures YouDoctor Who Works Hard Would you rather have:

18 Course Grading Midterms24% Final25% Quizzes10% Projects18% Weekly Assignments11% Daily Activities6% Program Portfolio6%  Grades available via Angel  Midterms given on Oct. 3 rd & Oct. 31 st  3 programming projects during semester

19 Course Grading Goals  Learn & build skills used by “real” programmers  Develop understanding needed for future work  Catch and correct problems early  Many ways presenting material during the term  Increases chances that all students can “get it”

20 Course Grading Goals  Learn & build skills used by “real” programmers  Develop understanding needed for future work  Catch and correct problems early  Vary way presenting material to help others  I am mean & like watching students suffer

21 Weekly Assignments  Posted on web/Angel each week  Usually due by 5PM following Tuesday  Virtual extensions okay to use on all but first one  Before submitting, ask me questions you still have  Several goals for these assignments  Provide additional programming opportunities  Reinforce material from each lecture  Questions should seem easy & take under 10 min.  Means you are doing well

22 Programmer’s Notebook  Take notes on readings’ important details  Main Angel page links to helpful templates to use  Notes written by you so easy to understand  (Don’t care where you get information from)  Use notebooks during labs & tests  Without notebook, no answers to related questions  Can also use book, but book less useful than own notes

23

24 PowerPoint Slides  Students need to take notes on their own  Writing increases odds of remembering ideas  Really, really bad idea to not take notes  Trapped me into specific way of lecturing  Limited opportunities to use clever memory tools  Lectures often resembled

25 Students During Lecture

26 Workings of My Slides  Slides contain many pictures, little text  Lectures interesting & fun (or at least better)  Provides you with good way to reinforce lessons suck  Will suck as actual notes  Print handout & take notes on the side  Write down what the steps animated on the slide  Slides (with notes) usable on tests, labs, class…  Win-win proposition  (Except for the lazy ones of you…)

27 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

28 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  Solutions always unique after waiting  Once started, each student should work alone  When in doubt, ask me

29 Coding Help  Will work on testing & debugging skills  To get debugging help in CSC212  Method(s) must be commented (javadoc)  Must use a trace or similar to look for bug  Students find own solution once they start doing this  If problem not fixed, gives us starting point to work  Learn to fix your own errors & not rely on the Professor

30 Textbooks  Goodrich & Tamassia, Data Structures and Algorithms in Java, 5 th Edition, Wiley, 2010. GT  Readings from book listed as " GT " in schedule  Available at bookstore & online (Amazon, etc.)  Will cover about 50% of the textbook  CSC213 looks at other half of the book  Only new textbook for the year

31 Textbooks Horstmann  Readings listed as “ Horstmann " in schedule  Textbook from CSC111 last Spring  Early in term used to review CSC111 concepts  Few Java concepts introduced as we go along, also  But this is your choice, new concepts also in textbook

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

33 Ever Have A Bug?  At some point, everyone must fix bug in code  What should you do first after discovering the bug?

34 Ever Have A Bug?  At some point, everyone must fix bug in code  What should you do first after discovering the bug?

35 Ever Have A Bug?  At some point, everyone must fix bug in code  What should you do first after discovering the bug?

36 Ever Have A Bug?  At some point, everyone must fix bug in code  What should you do first after discovering the bug?

37 Ever Have A Bug?  At some point, everyone must fix bug in code  What should you do first second after discovering it?

38 Fixing Bugs  Three common ways students fix bugs:  Guess where error is and make random change  Use Eclipse debugger to run program & find source  Get out your pencil & paper and draw a memory trace

39 Normal Method of Debugging  Also called "debugging-via-drunken-walk" SMALL  Can work for SMALL programs with limited choices  Guessing for millions of lines of code harder  Not at all effective at actually fixing errors  Entire point is to avoid understanding bug's cause  "Fix" may cause other errors later on in program  Cannot prevent future errors using this approach

40 Better Method of Debugging  Could use Eclipse debugger to find and fix bug  Set breakpoints to stop program where bug likely  Use step filters to walk through the program bit by bit  Spend a few hours learning how to make it work  Can get to root of problem once it is executed  But requires executing entire program to trigger bug  Cannot work backward to try and understand why

41 Best Method of Debugging  Generating memory trace has many benefits  Could check algorithm – don’t need any code to try  Can make up situations and just trace a method  Look back through trace to see root cause of bug  Trace code by running it like you were computer  DON’T SKIP STEPS  DON’T SKIP STEPS – easy to (wrongly) assume things  As you go along update variables’ values  GIGO effects limit tracing’s effectiveness

42 Best Method of Debugging  Generating memory trace has many benefits  Could check algorithm – don’t need any code to try  Can make up situations and just trace a method  Look back through trace to see root cause of bug  Trace code by running it like you were computer  DON’T SKIP STEPS  DON’T SKIP STEPS – easy to (wrongly) assume things  As you go along update variables’ values  GIGO effects limit tracing’s effectiveness

43 Benefits of Heap Traces  Draw what actually occurs in memory  Pictures used to debug rather than bare text  Much easier to understand what a method does  Excellent way to learn new programming topics  Past studies found improves student grades  Debugging time decreased greatly at same time  Greater support for these traces in Eclipse  Drawing of static trace integrated with debugger  Over this term should see tools improve

44 Starting a Heap Trace  Paper holds 3 areas separated by vertical lines  Program stack drawn on left part of page  Right side of page holds the program heap  Program output shown outside the stack & heap  Objects allocated during run drawn in the heap  Will discuss how this is done next week  Draw frame on top of stack each method call  Fancy name for box labeled with method name  Each parameter & local variable needs space in box

45 Data Types  8+1 primitive data types  Examples: boolean, byte, char, int, double, String *  Only types that work with Java operators  Operators include: +, -, %, &&, ||, >=, <, !  Primitives used natively by computers  Means using them is very quick  Implies greater support within the language

46 Primitive Types  Primitive variables are simple to use  Each variable is “xerox” holding a value  Assignment copies value  Update assigned variable only; changes not reflected

47 Starting a Heap Trace public static void main(String[] args) { String s = “”; for (int i = 0; i < 5; i+=2) { s = s + i; System.out.println(s); } }

48 Announcements  Interested in joining programming team?  Register for CSC299 (0-credit course) & learn more!  Relaxed & ungraded “class” meets Wed. 4:30 – 5:30  CSC tutoring center starting to ramp up  Starting next week (or so) tutors available in WTC 206  May have limited openings if you know HTML or C++

49 For Next Lecture  Mourn summer’s end & start of homework  Weekly assignment problems start today  For 1 st week of classes, will be due before each lecture  Help you review your Java and get rust out of system  There is reading for Wednesday  From Horstmann text (book used in CSC111)  Chapters listed on Angel & in syllabus


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

Similar presentations


Ads by Google