1 / 35

CSC 107 – Programming For SCIENCE

Prof. Matthew Hertz SH 1029F / 888-2436 hertzm@canisius.edu. CSC 107 – Programming For SCIENCE. Objectives Met in CSC107. Develop solution over entire software lifecycle Implement & test computational solutions Know foundations of computers Perform Boolean logic

twila
Download Presentation

CSC 107 – Programming For SCIENCE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prof. Matthew HertzSH 1029F / 888-2436 hertzm@canisius.edu CSC 107 – Programming For SCIENCE

  2. Objectives Met in CSC107 • Develop solution over entire software lifecycle • Implement & test computational solutions • Know foundations of computers • Perform Boolean logic • Trace and analyze algorithms

  3. High-level Objectives • Learn how we solve problems using a computer • For this course, focus on scientific problems • Logical, methodical process used to write algorithms • Learn to master basics of software development • C/C++ concepts used by most programs • Skills needed to find & fix errors in code

  4. High-level Objectives • Learn how we solve problems using a computer • For this course, focus on scientific problems • Logical, methodical process used to write algorithms • Learn to master basics of software development • C/C++ concepts used by most programs • Skills needed to find & fix errors in code

  5. High-level Objectives • Learn how we solve problems using a computer • For this course, focus on scientific problems • Logical, methodical process used to write algorithms • Learn to master basics of software development • C/C++ concepts used by most programs • Skills needed to find & fix errors in code • Have fun

  6. High-level Objectives • Learn how we solve problems using a computer • For this course, focus on scientific problems • Logical, methodical process used to write algorithms • Learn to master basics of software development • C/C++ concepts used by most programs • Skills needed to find & fix errors in code • Have fun

  7. High-level Objectives • Learn how we solve problems using a computer • For this course, focus on scientific problems • Logical, methodical process used to write algorithms • Learn to master basics of software development • C/C++ concepts used by most programs • Skills needed to find & fix errors in code • Have fun

  8. High-level Objectives • Learn how we solve problems using a computer • For this course, focus on scientific problems • Logical, methodical process used to write algorithms • Learn to master basics of software development • C/C++ concepts used by most programs • Skills needed to find & fix errors in code • Have fun

  9. High-level Objectives • Learn how we solve problems using a computer • For this course, focus on scientific problems • Logical, methodical process used to write algorithms • Learn to master basics of software development • C/C++ concepts used by most programs • Skills needed to find & fix errors in code • Have fun

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

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

  12. Why Most Classes Suck

  13. Teaching Style • Reasoning more important than actual answer • Rarely re-asked question within class or afterward • Even if correct, lucky guesses not meaningful • Explaining how & whydemonstrates mastery • Class participation is vital • Need to understand problem to adjust approach

  14. Adult Learning • Studentsread material before class • Answer initial questions at start of 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

  15. Adult Learning

  16. 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

  17. Attendance • Attendance is mandatory • Can miss up to 6 classes without penalty • From final grade 2 points lost for each add’l absence • If you know you will miss class, talk to me ASAP • You are responsiblefor every class • Missing class is never acceptable excuse • Best way to earn a poor grade: skip class

  18. Deadlines • Have 2 virtual “extensions” • Each provides a 1 day extension on assignment • Can use bothon 1 assignment for 48-hour extension • 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

  19. 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

  20. Grading Philosophy • Would you rather have: Doctor Who Cures You Doctor Who Works Hard

  21. Course Grading • Grades available via Angel • Midterms given on Oct. 5th and Nov. 12th • 3 programming projects during semester

  22. 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

  23. 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 • I am mean & like watching students suffer

  24. Weekly Assignments • Posted on CloudCoder– new experimental system • Usually due by 5PM following Tuesday • Virtual extensions okay to useon 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

  25. 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

  26. Students During Lecture

  27. 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 • Will suck as actual notes • Print slide handout & take notes on the side • Write down what the steps shown in animations • Slides (with notes) actually useful on tests, labs, class…

  28. 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

  29. 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 • STEP AWAY FROM COMPUTER then talk code

  30. 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 • STEP AWAY FROM COMPUTER then talk code • When in doubt, ask me

  31. Textbook • Albert & Breedlove, C++: An Active Learning Approach, Jones & Bartlett, 2009. • Areas of C++ overlapping C will be course focus • Will go through most of the textbook • Hit all key concepts you will need for future work • Book also excellent resource to look back on

  32. Angel Pages • 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. For Next Lecture • Mourn summer’s end & start of homework • For many, celebrate start of college life • Consider getting flash drive to hold coursework • Makes life much easierto have all your work to review • Read sections 3.1 – 3.7 for Wed. • Why is main so important for a C program? • What are comments & how do we write them?

  34. For Next Lecture • Mourn summer’s end & start of homework • For many, celebrate start of college life • Consider getting flash drive for next week • Makes life much easierto have all your work to review • Read sections 3.1 – 3.7 for Wed. • Why is main so important for a C program? • What are comments & how do we write them?

  35. For Next Lecture • Mourn summer’s end & start of homework • For many, celebrate start of college life • Consider getting flash drive for next week • Makes life much easierto have all your work to review • Read sections 3.1 – 3.7 for Wed. • Why is main so important for a C program? • What are comments & how do we write them?

More Related