Introduction to Computers and Programming Lecture 1

Computer Science 1
V22.0101 section 4
Lecture 1:
administrative details
Professor: Evan Korth
New York University
1
Road Map for Today
Welcome to Introduction to Computer
Science I!
 Course Description

– What material will we cover?
– What am I getting myself into?

Administrative Issues
– Course Web Page, Text Book, Exams, Office
Hours, Homework, Grading, Cheating Policy,
etc.
Syllabus
 Reading: chapter 1

2
Course Prerequisites

Prerequisite:
– V22.0002 or departmental permission.
– Math placement at Calculus I level or higher.

Who should be taking this course:
– computer science majors or minors
– other science students
– students who know the basics of some programming
language.

Who should NOT be taking this course
– Students that know Java well (should either go
straight to 102 or take this class with honors)
– Students that do not know any programming language

You must get a c or better in this class to take
further computer science classes.
3
Course Description
Official Description: Students learn how to
design algorithms to solve problems and
how to translate these algorithms into
working computer programs. Experience is
acquired through programming projects in
a high level programming language.
V22.0101 is intended as a first course for
computer science majors, and for students
of other scientific disciplines.
Programming assignments.
4
What the class is really about
There are three main goals of this course:
I.
Foundations of Java
a)
We will focus on Java’s object orientated
concepts.
II. Foundations Algorithm Development
III. Foundations of Software Development
5
1. Foundations of Java
Programming
Java is a popular programming language, widely
used in industry.
 We will learn all the specifics of how to program
in Java.
 This includes all the rules that are specific to
Java.
 First we will review (and cover Java’s
implementation of) the fundamentals: Variables,
Arithmetic, If / Else, For Loops, While Loops,
Methods, Arrays, etc.
 Then will then cover new material including
object orientated concepts.

6
2. Algorithm development

We will look at problem solving methods
that involve analyzing the problem and
designing an algorithm before we start to
write code.
7
Learn the Principles of Software
Development



Building high quality software is very difficult.
The course presents the syntax and concepts of
programming, and also presents strategies for
building real software that addresses real
problems.
I will also try to bring my real-world industry
experience to class.
8
Administrative Matters
9
Course Web Site
Course web site is available at:
http://cs.nyu.edu/courses/spring12/CSCI-UA.0101004/index.html
Web site contains the following information:

–
–
–
–
–
–
–
Administrative information
Course Syllabus
Homework assignments
Class notes
Class programs
Sample exams
Link to the class mailing list
10
Class mailing list
First assignment is to join it. Do it today!
 Go to:
http://www.cs.nyu.edu/mailman/listinfo/CSCI_UA
_0101_004_sp12
and follow the instructions
 All assignments and news will be sent to the
class list
 Homework questions should be sent to the list
and answered by students when possible.

11
Course Text Book





Introduction to Java
Programming (8th
Edition) Brief Version
Available at the NYU
Bookstore
Book includes a CDROM with Java
programs and other
supplemental materials.
Lecture notes will follow
the book.
Please keep up with the
reading!
12
Software

For the course, you may use any IDE you are
comfortable using. I will use one or more of the
following in the classroom:
–
–
–
–



Eclipse
JCreator (Note: this IDE has no debugger)
Netbeans
I will also use the command line
All these products can be downloaded from the
web for free.
The class website has links to the downloading
sites for these programs. Please download the
compiler as soon as possible.
If you do not have your own computer, the
computer labs on campus have the software.
13
Grading

Your grade will be determined as follows:
–
–
–
–

Midterm (25%)
Homework (and quizzes) (30%)
Group project (5%)
Final Exam (40%)
Class participation will help your grade!
14
homework
If you do not do the homework programs, you cannot pass the
course.
If home work is late, 25% is deducted.
After one week of lateness, home work will not be accepted.
Style counts from the beginning of this class.
Submit the program via email to the e-tutor (more on this later)
Back-up your files: For you own good you must save all
programs in several places (make back-up copies!!). Computer
crashes or lost programs are not valid excuses for not handing in
an assignment.
15
A Word About Cheating

For the purposes of this class, cheating is
defined as by the CS Department’s
academic integrity policy
– Discussing homework concepts is fine, but
you must submit your own work.

If you are caught cheating, you will
receive an immediate FAILURE for the
course.
16
Student Civility

In an effort to make this class enjoyable
for everybody…
– Please be on time to class!
– Please do not talk to your friends and
neighbors in class! It disturbs everyone, and
makes it hard to concentrate. If you have a
question, just ask me!
– Please turn your pagers and cell-phones off!
17
Getting Help


Help is always available!
Option 1: Come to my Office Hours
– Monday 3:30-4:30; Wednesday
9:00pm-10:00pm (I may change the
time of my office hours)




– Location: Room 319 Warren Weaver Hall
– I get bored when nobody visits!
– If you cannot make my office hours, I will be
happy to make an appointment with you.
Please try to give me advance warning when
you need an appointment.
Option 2: Write to the class mailing list. Please do
not send homework code to the list.
Option 3: Our TA.
Option 4: Our e-tutor.
Option 5: CAS Learning Center
18
syllabus















Chapter 1, Introduction to Java
Chapter 2, Primitive Data Types
Chapter 3, Selection Statements
Chapter 4, Loops
Chapter 5, Methods
Chapter 6, Arrays
---------------------------------------Chapter 7, Objects and Classes
Chapter 8, Strings
Chapter 9, Inheritance and Polymorphism
Chapter 10, Abstract Classes and Interfaces
Chapter 11 Object Orientated Design
Chapter 16, Applets
Chapter 19, Recursion
Chapters 12, 15, 16, 17, 18: GUI Programming
19
Object Orientated Programming

Objects
– Reusable software components that model items in the
real world
– Meaningful software units


Date objects, time objects, paycheck objects, invoice objects,
audio objects, video objects, file objects, record objects, etc.
Any noun can be represented as an object
– Very reusable
– More understandable, better organized, and easier to
maintain than procedural programming
– Favor modularity
20
 2000 Prentice Hall, Inc. All rights reserved.
History of Java
A group of 13 Sun employees including
James Gosling started the “Green Project”
in 1991 with the intention of planning for
the next wave in computing.
 They designed the *7 which was “an
interactive, handheld homeentertainment device controller
with an animated touchscreen
user interface”
 Gosling’s contribution to the project was
an entirely new processor independent
language call “Oak”.

21
History of Java (continued)





To make a long story short, people at Sun
decided to use this new language for the web.
At the Sun World conference in May 1995, Marc
Andreessen of Netscape announced an agreement
to integrate Java into its browser – in a nutshell webpages were no longer going to be static.
Over the next few years, java became very
popular for writing applets (small programs
included on webpages)
Today in addition to writing applets, Java is used
for writing large applications as well as
applications for mobile devices
For more on the history of Java, check out:
http://java.sun.com/features/1998/05/birthday.html
22
Basics of a Typical Java
Environment

Java programs normally undergo five phases
– Edit

Programmer writes program (and stores program on disk)
– Compile

Compiler creates bytecodes from program
– Load

Class loader stores bytecodes in memory
– Verify

Verifier ensures bytecodes do not violate security
requirements
– Execute

Interpreter translates bytecodes into machine language
23
 2003 Prentice Hall, Inc. All rights reserved.
Phase 1
Editor
Disk
Program is created in
an editor and stored
on disk in a file ending
with .java.
Phase 2
Compiler
Disk
Compiler creates
bytecodes and stores
them on disk in a file
ending with .class.
Primary
Memory
Phase 3
Class Loader
Disk
Phase 4
Bytecode
Verifier
. ..
..
.
Class loader reads
.class files
containing
bytecodes from
disk and puts
those bytecodes
in memory.
Primary
Memory
Bytecode verifier
confirms that all
bytecodes are valid
and do not violate
Java’s security
restrictions.
Typical Java
environment
. ..
..
.
Primary
Memory
Phase 5
Interpreter
. ..
..
.
Interpreter reads
bytecodes and
translates them into
a language that the
computer can
understand,
possibly storing
data values as the
program executes.
24
 2003 Prentice Hall, Inc. All rights reserved.