Introduction to Computers and Programming Lecture 1 ...

concepcionsockΛογισμικό & κατασκευή λογ/κού

15 Αυγ 2012 (πριν από 4 χρόνια και 11 μήνες)

308 εμφανίσεις

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

7

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.


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.0101
-
004/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 CD
-
ROM 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

19

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

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



2000 Prentice Hall, Inc. All rights reserved.

20

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 home
-
entertainment device controller
with an animated touchscreen
user interface”


Gosling’s contribution to the project was
an entirely new processor independent
language call “Oak”.

21

22

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

23

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



2003 Prentice Hall, Inc. All rights reserved.

24

Typical Java
environment

Primary

Memory

.

.

.

.

.

.

Disk

Disk

Disk

Editor

Compiler

Class Loader

Program is created in
an editor and stored
on disk in a file ending
with
.java
.

Compiler creates
bytecodes and stores
them on disk in a file
ending with
.class
.

Class loader reads
.class

files
containing
bytecodes from
disk and puts
those bytecodes
in memory.

Phase 1

Phase 2

Phase 3

Primary

Memory

.

.

.

.

.

.

Bytecode
Verifier

Bytecode verifier
confirms that all
bytecodes are valid
and do not violate
Java’s security
restrictions.

Phase 4

Primary

Memory

.

.

.

.

.

.

Interpreter

Interpreter reads
bytecodes and
translates them into
a language that the
computer can
understand,
possibly storing
data values as the
program executes.

Phase 5



2003 Prentice Hall, Inc. All rights reserved.