Prof. Matthew Hertz WTC 207D / 888-2436

Slides:



Advertisements
Similar presentations
Intro to CIT 594
Advertisements

Prof. Matthew Hertz WTC 207D /
Intro to CIT 594
Intro to CIT 594
CSC 395 – Software Engineering Prof. Matthew Hertz WTC 207D /
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
Using MyMathLab Features You must already be registered or enrolled in a current MyMathLab class in order to use MyMathLab. If you are not registered or.
Mr. VanAntwerp Algebra 1. Materials Needed Daily Notebook Pencil Text Book.
PLEASE HELP US OUT WITH THIS: When you go to the open lab next door in 203, please make sure you sign in on the log sheet and enter your instructor’s.
Test Preparation Strategies
Intro to CIT 594
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
CS 450: COMPUTER GRAPHICS COURSE AND SYLLABUS OVERVIEW SPRING 2015 DR. MICHAEL J. REALE.
Welcome to CompSci 100! As You Arrive… Make sure you grab a syllabus packet. Read through it. I will be covering the most essential points in my talk,
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 1 1.
CSC 107 – Programming For Science. Science Means Solving Problems  Physics – How does an atom work?
Study Tips for COP 4531 Ashok Srinivasan Computer Science, Florida State University Aim: To suggest learning techniques that will help you do well in this.
Strategies for Success
CSC 212 – DATA STRUCTURES Prof. Matthew Hertz WTC 207D /
Prof. Matthew Hertz WTC 207D /
Spring 2008 Mark Fontenot CSE Honors Principles of Computer Science I Note Set 1 1.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
MyMathLab How to Study Hints from Professor of Mathematics Jon Odell.
Prof. Matthew Hertz WTC 207D /
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
Prof. Matthew Hertz WTC 207D /
COMP Introduction to Programming Yi Hong May 13, 2015.
Prof. Matthew Hertz SH 1029F /
MGS 351 Introduction to Management Information Systems
CSC 107 – Programming For Science. Announcements  Tutors available MTWR in WTC206/WTC208  Special lab (with Macs) & not in the Tutoring Center  Can.
Please initial the appropriate attendance roster near the door. If you are on the Wait List you will find your name at the bottom. If you are not on the.
Prof. Matthew Hertz SH 1029F /
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
Prof. Matthew Hertz WTC 207D /
Announcements  If you need more review of Java…  I have lots of good resources – talk to me  Use “Additional Help” link on webpage.
CSC 110 – Intro. to Computing Prof. Matthew Hertz WTC 207D /
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Problem of the Day  Why are manhole covers round?
1 Principles of Computer Science I Note Set 1 CSE 1341.
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
Problem of the Day  Why are manhole covers round?
Welcome to the Seminar Professor Fred Bittner.  Review Key Terms  Introduce Yourself to your classmates  Read Chapters 1 and 2 in Criminal Investigation.
PHY 107 – Programming For Science. Announcements  Slides, activities, & solutions always posted to D2L  Note-taking versions before class, for those.
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
Question of the Day You overhear a boy & his mother talking: Mom:What is ? Boy: That's easy, 33. Mom: Good. What's ? Boy:Simple. It's 40. Mom:Excellent!
Matter and Interactions 1 Fall 2006 Matter & Interactions I Physics Professor & Lecturer: Dr. Reinhard Schumacher Teaching Assistants: Ms. Elisa.
Prof. Matthew Hertz WTC 207D /
CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D /
A compilation of Suggestions on How to Study Jeff Fineberg.
Please CLOSE YOUR LAPTOPS, and turn off and put away your cell phones, and get out your note- taking materials.
Please initial the attendance roster near the door. If you are on the Wait List you will find your name at the bottom. If you are not on the roster, please.
Welcome to PHY2049 Physics for Engineers and Scientists II Dr. Bindell.
CSC 213 – Large Scale Programming Prof. Matthew Hertz WTC 207D /
1 CS 101 Today’s class will begin about 5 minutes late We will discuss the lab scheduling problems once class starts.
CSC 107 – Programming For Science. Science Means Solving Problems  Physics – How does an atom work?
Welcome to Astronomy 113 “ It would seem that you have no useful skill or talent whatsoever, he said.
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Data Structures and Algorithms in Java AlaaEddin 2012.
1. PLEASE HELP US OUT WITH THIS: When you go to the open lab next door in 203, please make sure you sign in on the log sheet and enter your instructor’s.
Please initial the attendance roster near the door. If you are on the Wait List you will find your name at the bottom. If you are not on the roster, please.
WELCOME TO MICRO ECONOMICS AB 224 Discussion of Syllabus and Expectations in the Class.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Engineering Design Capstone Research Project: Part 1 Copyright © Texas Education Agency, All rights reserved. 1.
Problem of the Day  Why are manhole covers round?
IST256 : Applications Programming for Information Systems
CSE 116/504 – Intro. to Computer Science For Majors II
Computer Science 102 Data Structures CSCI-UA
CS a-spring-midterm2-survey
Presentation transcript:

Prof. Matthew Hertz WTC 207D /

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

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

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

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

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

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

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

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

Why Most Classes Suck

Teaching Style

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

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

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

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

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

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

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

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”

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

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

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

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

Students During Lecture

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…)

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

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

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

Textbooks  Goodrich & Tamassia, Data Structures and Algorithms in Java, 5 th Edition, Wiley, 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

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

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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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); } }

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++

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