1 / 19

Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi

CS 101E. Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi. Welcome! Today’s Goals. Today’s Goals What is CS101E all about? Differences between 101 and 101E Why Java? In-Class Survey Course logistics

yestin
Télécharger la présentation

Introduction to Computer Science Spring 2009 Sudhanva Gurumurthi

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. CS 101E Introduction to Computer ScienceSpring 2009Sudhanva Gurumurthi

  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

  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.

  4. 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 • ...

  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.

  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

  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.

  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

  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!

  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.

  11. Honor Policy • Read BOCM carefully! • We regularly have problems in this course. • We catch them. • We deal with them. • Do the right thing.

  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!

  13. Introduction to Programming and Java

  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

  15. Languages • Machine languages. Tedious and error-prone. • Natural languages. Ambiguous and hard for computer to parse. • High-level programming languages. Acceptable tradeoff. 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. [ real newspaper headlines, compiled by Rich Pattis ]

  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 Gosling http://java.net/jag $100 billion,5 million developers

  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, …

  18. Next Class – Our First Java Program /******************************************* * Prints "Hello, World" * Everyone's first Java program. *******************************************/ publicclass HelloWorld { publicstaticvoid main(String[] args) { System.out.println("Hello, World"); } } HelloWorld.java

  19. Survey

More Related