19
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Embed Size (px)

Citation preview

Page 1: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

CSCI 51Introduction to Computer Science

Dr. Joshua StoughJanuary 20, 2009

Page 2: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

About CSCI 51• Learn how to develop algorithms to solve

problems:– Computers do not solve problems, they implement

solutions [that YOU come up with].

• Learn the basic components of computer programming– can be applied to any programming language (Java,

C++, etc.)

• Requirements / prerequisites– no programming knowledge assumed– Math, algebra

Page 3: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

6 Fundamental Concepts of Programming

• Variables, and Assignment (data storage)

• Expressions, and Data Retrieval

• Conditional statements (making choices)

• Loops (repetition)

• Structured data, arrays (data abstraction)

• Functions (procedural abstraction)

Page 4: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Is CSCI 51 Right for You?• Do you have web programming experience with Java,

perl, php?• Experience with “classes” in C++?• Some experience with Matlab, Mathematica?• Do you know what is meant by Object, method,

member variable, recursion, array, sorting algorithms?

• If yes to some, you may be ready for CSCI 62 instead.

Page 5: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Course Web Pages

• Sakai system login:– https://sakai.claremont.edu

• www.joshuastough.com

• Course Documents and Schedule• Assignments

Page 6: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Lecture Format

• Review previous material– questions

• Present new material

• In-class exercises

• Lecture notes are posted, but may be modified shortly before/after lecture.

Page 7: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Office Hours and Tutors

• M 4PM, W 3PM-on, F 3PM. All 2nd Adams.– Door open: available, door closed: not

available.

• Please come to office hours.

Page 8: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Software

• Java SDK.• eclipse

– on public lab machines• http://www.claremontmckenna.edu/its/

StudentGuide/Labs/default.php• you can install on your machine• After-hours access

– See Homework 0 on the website.

Page 9: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Grades

• Assignments 40%– both programs and book

• Midterms 20%• Final 30%• Attendance and

Participation 10%_____________________• Total 100%

Page 10: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Assignments

• Please submit electronic copies by 11:59PM on the due date. – turn in using Sakai assignment submission

• Homework assignments– practice for exams

• Programming assignments– budget 10-12 hours per program

• design, code, debugging

– start early!

Page 11: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Submitting Assignments• All assignments will be submitted through

Sakai assignments.

• Submission Errors– I will email you and give a deadline for re-

submitting

– not checking your email is not an excuse for missing the deadline

Page 12: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Late Policy• Late Assignments lose 10, 15, 25, 25, 25% for each

additional day late (no credit on the fifth day).  This scale may be delayed given the severity of your circumstances and my being informed of them in a timely manner.

• I will defer to the Counseling Center (see http://www.cuc.claremont.edu/counseling).

• If you have an athletic event and will not be able to make a deadline, you should tell me within a day of an assignment being posted.

Page 13: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Approaching an assignment• Before you open eclipse and start

coding (and asking for help):– read the assignment– think about what the assignment is asking

for– review lectures and examples on the topic– write (yes, on paper) your plan for

completing the assignment (i.e., your algorithm)

• talk to/email me if you’re having trouble at this point

Page 14: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Backup Your Work!

• Backup your work!

• You will lose something at some point– you might have to learn the hard way

• Use your U: drive (network folder). See Homework 0 if you do not have a network folder.

• 607-0911 ITS helpdesk

Page 15: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Collaborating

• You should– Struggle with the material before

seeking help.– Come to office hours, email me.– Make sure you understand the

solutions you receive help on, whether from fellow students or me.

Page 16: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Sending Email to me

• Put CSCI 51 in subject line

• For example:– CSCI 51, I’m lost– CSCI 51, This course is too easy

Page 17: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Eclipse and Java

• http://www.eclipse.org/downloads/– Eclipse IDE for Java Developers (85 MB) – Or download from the course schedule.

• http://www.java.com/en/download/

• See Homework 0 on the course schedule at www.joshuastough.com

Page 18: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

Hello World example.

class Hello {

// main: generate some simple outputpublic static void main (String[] args) {

System.out.println (“Hello.");}

}

Page 19: CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009

6 Fundamental Concepts of Programming

• Variables, and Assignment (data storage)

• Expressions, and Data Retrieval

• Conditional statements (making choices)

• Loops (repetition)

• Structured data, arrays (data abstraction)

• Functions (procedural abstraction)