CS 101 Introduction to computer science and software engineering using objected-oriented programming...

25
CS 101 Introduction to computer science and software engineering using objected-oriented programming and JWD © 2002 McGraw-Hill, Inc.

Transcript of CS 101 Introduction to computer science and software engineering using objected-oriented programming...

Page 1: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

CS 101

Introduction to computer science and software engineering using objected-oriented programming

JPC and JWD © 2002 McGraw-Hill, Inc.

Page 2: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Instructors

James P. Cohoon Office: 216 Olsson Hall Office hours: MW 11-

Noon and by appointment

Personal email [email protected]

u Course electronic mail

[email protected] Better response

Thomas Horton Office: 228E Olsson

Hall Office hours: M-R 2-3

and by appointment Personal email

[email protected]

Course electronic mail [email protected]

Better response

Page 3: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Coordinator

Professor: Jane Prey Office: Olsson 228D E-mail: [email protected] Phone: 982-2215

Why you want to know about her Handles problems

Page 4: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Teaching Assistants

Section 3 Thursday 8:30-10:20AM Jennifer MifflinSection 4 Thursday 10:30-12:20PM Jennifer MifflinSection 5 Thursday 12:30-2:20PM Tariq AssafSection 6 Thursday 2:30-4:20PM Tariq AssafSection 7 Thursday 4:30-6:20PM Sagnik BhattacharyaSection 8 Thursday 6:30-8:20PM Ram PoornalingamSection 9 Friday 2:00-3:50PM Christopher LutzSection 10 Thursday 8:30-10:20PM Ram PoornalingamSection 11 Friday 12:00-1:50PM Dana WortmanSection 12 Friday 4:00-5:50PM Christopher LutzSection 13 Friday 10:00-11:50AM Dana Wortman

Page 5: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Class Web Site

Location http://www.cs.virginia.edu/cs101

You are responsible for knowing the material that is there

Assignments, corrections and updates are posted there

Page 6: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.
Page 7: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Adding This Course

Priority to those who require the course See me immediately after class Lab section choices must be from available sections If you want to take an unnecessary chance, instead

see Professor Jane Prey, Olsson 228-D this week. Must choose from whatever sections are still

available. Teaching assistants cannot sign forms or grant

permission

Labs start Thursday and you must be in lab this week.

Page 8: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Lectures

Organization Two lectures per week A copy of the slides is available in the CS 101

Workbook The slides are also viewable electronically

http://www.cs.virginia.edu/cs101Major topics

Computing Basics Libraries ArraysC++ fundamentals Functions VectorsControl constructs Classes InheritanceAbstract Data Types

Page 9: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

LaboratoryMeets once per week in Olsson 001There is lab this week

You must attend this week to save your slot You must attend the lab you for which you are

registeredLaboratory attendance is very important

You must be punctual You must attend the proper section There may be pop quizzes in the labs

Page 10: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

LaboratoryLab attendance rule

You are allowed at most two misses for entire semester These two allowances cover illness, weddings,

funerals, and all other emergencies Perfect lab attendance will get you extra credit Each additonal miss after the second costs a letter

grade Lab makeups on Monday nights allow you to capture

knowledge, but do not change the attendance rule

Page 11: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Homework

All assignments are pledged unless indicated otherwise You may receive assistance on the programming assignments from the instructor, teaching assistants, or laboratory assistantsComputer failure or lack of availability of a computer are not valid excuses for late assignmentsThere will be no general extensions for assignmentsSignificant homework assignments will be submitted electronically

Page 12: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Homework

A printed copy of your homework solution must be turned in at the beginning of your laboratory sectionNo late homework assignments will be acceptedSave the electronic versions of your homework until after you receive your final grade

Page 13: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Homework

Unless specified otherwise, programming assignments may be done in teams of twoYour partner must be from the same laboratory section

The first programs are solo efforts The last program is a solo effort The middle programs can be teams of two

ALL HOMEWORKS ARE PLEDGED!All homeworks define what resources may be utilized

Page 14: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Homework

Homework facilities Stacks computer laboratory (Thornton A233)

Top floor of Thornton Hall Microsoft Visual C++ 6.0 Windows NT or Windows 2000

Teaching assistant office hours in Catlin Lab, 7-10 p.m.

Page 15: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Tests

All tests are pledgedThis course should be your highest priority so make-ups should not be necessaryAny scheduling problems need to be resolved at least one week prior to the test or exam in question

Talk to Jane Prey in person at Olsson 228D

Page 16: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Tests

Exam schedule -- plan now for these dates Test 1 – Wednesday, February 21 at 7-9 PM

Test 2 – Wednesday, April 4 at 7-9 PM

Final Exam – Wednesday, May 9, 2001 at 7-10 PM

Page 17: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Grading

Laboratory and class participation will be worth 10 percentProgramming assignments will be worth 30 percentThe two tests and all lab quizzes will be worth 30 percentThe final will be worth 30 percentThese percentages may be adjustedMedian course grade will be a B-

Historically, curving has never been necessary to achieve this median grade

Page 18: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Class participation

Everybody is expected to do the readings, come to lecture

Students will be randomly selected from class roster to participate in lecture

Students might be randomly selected from class roster to pose questions regarding the readings

Page 19: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Course Materials

C++ Program Design: an introduction to programming and object-oriented design, Cohoon and Davidson,McGraw-Hill/WCB, 1999

C++ Program Design: Lab Manual, Cohoon and Davidson,McGraw-Hill/WCB, 1999

Three 3.5-inch floppies The floppies should be double-sided, high-density

ITC's home directory service

Page 20: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Assignments

Go to lab this week

Read chapter 1 before Monday’s lecture

Read chapter 2 before next Wednesday’s lecture

Page 21: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Questions

Questions before we begin?

Page 22: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

A C++ Program

// Canonical first program

// Dana Wahoo, January 17, 2001, version 1

#include <iostream>

#include <string>

using namespace std;

int main() {

cout << “Hello world! “ << endl;

return 0;

}

Page 23: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Software Crisis

Common software systems behavior Do not provide required functionality Are over budget with respect to time and money and

computer resource usage Not adaptable to changing user needs

Why User needs are ill-specified Complexity of interactions grows multiplicatively Human cooperation limits Programming is difficult

Page 24: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

Software Engineering

Goal Ease the development of reliable, flexible,

economical softwareTechniques

Group management Complexity management Measuring software quality

Caveat Throwing more people at a problem isn’t always the

best way to fix it

Page 25: CS 101 Introduction to computer science and software engineering using objected-oriented programming JPC and JWD © 2002 McGraw-Hill, Inc.

C++

Designer Stroustrup

Purpose To implement software tools more quickly, reliably,

and economicallyPrincipal features

Supports object-oriented programming Reusable software components that have both

values and behavior — object