1 introduction to computer science spring 2009 sudhanva gurumurthi cs 101e

19
1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

Upload: evan-thornton

Post on 27-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

1

Introduction to Computer ScienceSpring 2009

Sudhanva Gurumurthi

CS 101E

Page 2: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

2

Welcome! Today’s Goals

Today’s Goals What is CS101E all about? Differences between 101 and 101E Why Java? In-Class Survey Course logistics

– Beginning of Course Memo has all the details (posted on the UVa Collab Website)

– Course website will have many more details

Page 3: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

3

Overview

Goals. Learn fundamental concepts in computation and how to use

them to solve important problems in engineering, science, and beyond.

Understand how designing and understanding programs can be creative, challenging, empowering, intellectually deep, and fun.

Page 4: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

Specific Course Outcomes

Understand fundamentals of programming such as variables, conditional and iterative execution, methods, etc.

Understand fundamentals of object-oriented programming, including defining classes, invoking methods, using class libraries, etc.

Gain exposure to the important topics and principles of software development.

Have the ability to write computer programs to solve specified problems.

Be able to use a software development environment to create, debug, and run programs.

Additional Special Topics on Computing (Not Tested in the Exams)– The Google Search Engine– Multicore Processors– ...

4

Page 5: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

5

The Usual Stuff

Lectures. CS101E: MW, 2:00-3:15

Teaching Assistants. TA office hours in Thornton Stacks TA office hours will be posted on the Collab site

Contacting us Instructor Office Hours

– Tuesday & Thursday, 10-12, Olsson 236D Online: http://collab.itc.virginia.edu then choose “CS101 and

CS101E” tab at the top of the page– Forums for discussing assignments– All TAs read the forums, so this is vastly better than e-mail.

Page 6: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

6

Survival Guide

Keep up with the course material. Attend lectures. Lecture slides will be posted on the course website. Prof. Horton’s CS 101 slides and screencasts will also be

available via the website. Budget lots of time. Do not underestimate. Visit course home page regularly.

Ask for help when you need it! Post at the course web site!

– We monitor the forums constantly. Office hours (schedule on web page)

– TA office hours in Thorton Stacks– Instructor office hours in Olsson

Page 7: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

7

Grades

•Course grades. No preset curve or quota.

•At Most 6 individual programming assignments. 40%•At Most 5 individual “lab” programming quizzes. 10%

•There is no “lab” per se for CS 101E.•3 in-class exams

•Closed-book, closed-notes•Exam 1 (Feb. 18, regular class hour). 15%•Exam 2 (Apr. 1, regular class hour). 15%•Exam 3 (Sat., May 2, 7 PM) for all sections. 20%.

•Exam 3 will be partially cumulative•Extra credit and staff discretion. Adjust borderline cases.•Students with special circumstances (athletics, disabilities, etc.) must let me know this week.

Page 8: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

8

Course Materials

Course website. [http://collab.itc.virginia.edu] Submit assignments, check grades. Interact with course staff. View programming assignments. Lecture notes.

Required readings. Sedgewick and Wayne. Intro to Programming in Java: An Interdisciplinary Approach.

Condensed textbook available online at http://www.cs.princeton.edu/introcs

Additional online-only chapters may also be required

Page 9: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

9

Individual Programming Assignments

Desiderata. Address an important scientific or commercial problem. Illustrate the importance of a fundamental CS concept.

Possible Examples. N-body simulation. Digital signal processing. DNA sequence alignment. Estimate Avogadro's number. Markov model of natural language.

Due. Every other Wednesday night. You have two weeks for each.Submissions are done on-line. NO LATE SUBMISSIONS!

Computing equipment. Your own computer. [OS X, Windows, Linux, … ] Public ITC computer. [Thornton Stacks (Windows)]

you solve scientificproblems from scratch!

Page 10: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

10

Programming Quizzes

Desiderata. Test practical programming skills. Will reflect the topics of the previous week’s group work.

Due. Submissions will be handled via an online system.

Logistics. Work done individually.

Page 11: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

Honor Policy

Read BOCM carefully!

We regularly have problems in this course.We catch them.We deal with them.

Do the right thing.

11

Page 12: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

12

Are You In the Right Class?

CS101E Assumes at least one semester of prior programming

experience– Variables, types, assignment statements, if statements, and

while/for statements. Meets MW

CS101 Assumes no programming experience Meets MWF Scheduled, timed labs separate from lecture. Lab quizzes are

done in the labs.

Lecture materials are the same!Assignments are the same!Exams are the same!CS 101 and 101E students don’t compete for grades!

Page 13: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

Introduction to Computer Science • Sedgewick and Wayne • Copyright © 2007 • http://www.cs.Princeton.EDU/IntroCS

Introduction to Programming and Java

13

Page 14: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

14

Why Programming?

Idealized computer. "Please simulate the motion of a system of N heavenly bodies, subject to Newton's laws of motion and gravity."

Computer programming. Art of making a computer do what you want.

Ada Lovelace Analytic Engine

Page 15: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

15

Languages

Machine languages. Tedious and error-prone.

Natural languages. Ambiguous and hard for computer to parse.

High-level programming languages. Acceptable tradeoff.

[ real newspaper headlines, compiled by Rich Pattis ]

Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. - Donald Knuth

Kids Make Nutritious Snacks.Red Tape Holds Up New Bridge.Police Squad Helps Dog Bite Victim.Local High School Dropouts Cut in Half.

Page 16: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

16

Why Java?

Java features. Widely used. Widely available. Embraces full set of modern abstractions. Variety of automatic checks for mistakes in programs.

Java economy. Mars rover. Cell phones. Blu-ray Disc. Web servers. Medical devices. Supercomputing. …

James Goslinghttp://java.net/jag

$100 billion,5 million developers

Page 17: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

17

Why Java?

Java features. Widely used. Widely available. Embraces full set of modern abstractions. Variety of automatic checks for mistakes in programs.

Caveat. No perfect language.

Our approach. Minimal subset of Java. Develop general programming skills that are applicable to:

C, C++, C#, Perl, Python, Ruby, Matlab, Fortran, …

Page 18: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

18

Next Class – Our First Java Program

HelloWorld.java

/******************************************* * Prints "Hello, World" * Everyone's first Java program. *******************************************/

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); }}

Page 19: 1 Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi CS 101E

Introduction to Computer Science • Sedgewick and Wayne • Copyright © 2007 • http://www.cs.Princeton.EDU/IntroCS

Survey

19