190 likes | 272 Views
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
E N D
CS 101E Introduction to Computer ScienceSpring 2009Sudhanva 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 • Beginning of Course Memo has all the details (posted on the UVa Collab Website) • Course website will have many more details
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.
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 • ...
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.
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
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.
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
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!
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.
Honor Policy • Read BOCM carefully! • We regularly have problems in this course. • We catch them. • We deal with them. • Do the right thing.
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!
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
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 ]
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
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, …
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