Slide 1Welcome! Today’s GoalsOverviewSpecific Course OutcomesThe Usual StuffSurvival GuideGradesCourse MaterialsIndividual Programming AssignmentsProgramming QuizzesHonor PolicyAre You In the Right Class?Introduction to Programming and JavaWhy Programming?LanguagesWhy Java?Slide 17Next Class – Our First Java ProgramSurvey1Introduction to Computer ScienceSpring 2009Sudhanva GurumurthiCS 101E2Welcome! Today’s GoalsToday’s GoalsWhat is CS101E all about?Differences between 101 and 101EWhy Java?In-Class SurveyCourse logistics–Beginning of Course Memo has all the details (posted on the UVa Collab Website)–Course website will have many more details3OverviewGoals.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 OutcomesUnderstand 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–...45The Usual StuffLectures. CS101E: MW, 2:00-3:15Teaching Assistants.TA office hours in Thornton StacksTA office hours will be posted on the Collab siteContacting usInstructor Office Hours–Tuesday & Thursday, 10-12, Olsson 236DOnline: 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.6Survival GuideKeep 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 Olsson7Grades•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.8Course MaterialsCourse 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/introcsAdditional online-only chapters may also be required9Individual Programming AssignmentsDesiderata.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!10Programming QuizzesDesiderata.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 PolicyRead BOCM carefully!We regularly have problems in this course.We catch them.We deal with them.Do the right thing.1112Are You In the Right Class?CS101EAssumes at least one semester of prior programming experience–Variables, types, assignment statements, if statements, and while/for statements.Meets MWCS101Assumes no programming experienceMeets MWFScheduled, 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!Introduction to Computer Science • Sedgewick and Wayne • Copyright © 2007 • http://www.cs.Princeton.EDU/IntroCSIntroduction to Programming and Java1314Why 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 LovelaceAnalytic Engine15LanguagesMachine 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.16Why 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 developers17Why 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
View Full Document