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 iterative and recursive 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 Master basic tools needed for all future work Have fun
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 Reasoning more important than answer Rarely asked question over-and-over again Lucky guesses are not meaningful Explaining how & why demonstrates mastery Class participation is vital Need to understand problem to adjust approach
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 Limits long, boring droning Students work in teams to solve problems Make sure you actually understand material Easy to correct when mistakes made early
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 1 assignment Late work not accepted without extension If you know you cannot make a deadline, talk to me Earlier we talk, the better we can find a solution
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 automatically given to highest score in class Remain fair for students past, present, & future When in doubt, I consider what would be most fair Hard work alone insufficient to raise a score Working efficiently important life skill to be rewarded
Course Grading Midterms34% Final27% Projects18% Weekly Assignments6% Daily Activities7% Program Portfolio8% Grades available via Angel Midterms given on Sept. 28 th & Oct. 28 th 3 programming projects during semester
Course Grading Goals Build skills used by “real” programmers Lots of opportunities to learn & improve Present material in variety of ways Develop understanding needed for later classes Catch and correct problems early
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 Course webpage contains 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 slide handout & take notes on the side Write down what the steps shown in animations 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, 4 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 Anderson & Franceschi, Java 6 Illuminated, Jones & Bartlett, AF Readings from book listed as " AF " in schedule Textbook from CSC111 over last several Springs Using it to review concepts early But also introduce new Java concepts as we go Useful as
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!
For Next Lecture Mourn summer’s end & start of homework There is reading for Wednesday Reading is from book used in CSC111 Chapters listed on Angel & in syllabus