csc 107 – programming for science
DESCRIPTION
Prof. Matthew Hertz SH 1029F / 888-2436 [email protected]. 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 - PowerPoint PPT PresentationTRANSCRIPT
CSC 107 – PROGRAMMING FOR SCIENCE
Prof. Matthew HertzSH 1029F / 888-2436 [email protected]
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
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
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
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
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
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
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
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
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
Reasoning more important than actual answer Rarely re-asked question within class or
afterward Even if correct, lucky guesses 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 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
Adult Learning
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 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 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 provides a 1 day extension on
assignment Can use both on 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
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
Grading Philosophy
Doctor Who Cures You
Doctor Who Works Hard
Would you rather have:
Course Grading
Midterm 26%Final 30%
Projects 24%Weekly
Assignments 11%Daily Activities 9%
Grades available via Angel Midterms given on Oct. 5th and
Nov. 12th
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
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
Weekly Assignments
Posted on CloudCoder – new experimental system
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
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 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…
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
STEP AWAY FROM COMPUTER then talk code
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
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
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!
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 easier to 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?
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 easier to 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?
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 easier to 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?