Computer Science 10: Introduction to Computer Science Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp
How I teach • Teaching is my favorite thing! • Your involvement is important • Lots of questions • In-class activities • Not graded, as long as you participate • In class we will be writing code, and I will post it after class • My philosophy on my job: It is your job to learn, and it is my job to help you do that.
Who are you? • What’s your major? Year? • Why are you taking this class? • Do you have any programming experience? • Something else about yourself
Take this course if you… • … like solving tricky problems • … like building things • … (will) work with large data sets • … are curious about how Facebook, Google, etc work • … have never written a computer program before • … are shopping around for a major
Course Challenges • Prerequisites? • Math11 • …Really, no experience required! • Aptitude? • Most people can learn basic programming • Interest? • CS is creative and rewarding, but it can also be time-consuming • Time? • You can't expect to learn complex skills by listening to lectures • This class will probably have the heaviest workload of any of your classes this term • Study habits? • Your brain needs time to learn. Don't try to do all work the night of the due date • You need time to get stuck, ask for help, get unstuck, get stuck again…
Jobs before graduation • English: 23.5% • Healthcare: 28.7%
Starting salaries Source: Summer 2011 Salary Survey, National Association of Colleges and Employers. Data are for Bachelor's Degree candidates.
Diverse opportunities • Software shops (Microsoft, Amazon, Google, Facebook…) • Hard sciences (computational biology…) • Engineering (simulations…) • Healthcare (data management…) • Education (math…) • International development (data gathering…)
Course goals • Be able to apply your understanding • Computer Science is different! • Programming is a skill • By the end of the course, you will: • write medium-scale programs to solve real problems • know some of the kinds of problems computers can solve • recognize beautiful code • recognize ugly hacks
What is programming? • program: A set of instructionsto be carried out by a computer. • program execution: The act ofcarrying out the instructions contained in a program. • programming language: A systematic set of rules used to describe computations in a format that is editable by humans.
Write me a program for making a peanut butter and jelly sandwich • program: A set of instructionsto be carried out by a computer. • program execution: The act ofcarrying out the instructions contained in a program. • programming language: A systematic set of rules used to describe computations in a format that is editable by humans.
Compiling/running a program • Write it. • code or source code: The set of instructions in a program. • Compile it. • compile: Translate a program from one language to another. • Run (execute) it. • output: The messages printed to the user by a program.
Your responsibilities • Come to every class meeting • There will be activities, done in pairs • Spend two hours out of class for every scheduled hour in class • That means 6 1/2 hours per week outside class • Ask questions right away when you are stuck
Ask Questions • You will be stuck. A lot. • I am too – all the time! • You MUST ask questions • Come to office hours! • You are learning to do something • There is no way to fake your way through this class.
Homework • Due every Wed. • Except HW0 • One will be posted by our next class • Start early! • One paper • CS and Society • Grade: 25% HW, 25% each midterm, 25% final • Exams: Jan 28, Feb 15, Mar 22 • You MUST be able to attend these dates