PAC I Professor Evan Korth Fall 2014 Road Map for Today Welcome to PAC I! Course Description – What material will we cover? – What am I getting myself.

Slides:



Advertisements
Similar presentations
CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself.
Advertisements

Computer Science 1 V section 3 Lecture 1: administrative details Professor: Evan Korth New York University 1.
5/19/2015CS 2011 CS 201 – Data Structures and Discrete Mathematics I Syllabus Spring 2014.
Computers and Society Lecture 1: administrative details and an introduction to the class Professor: Evan Korth New York University.
Visual and Internet Programming using JAVA
Computers in Principle & Practice I - V Deena Engel Computers in Principle and Practice I V , Sections 1 & 2 Fall, 2009 Deena Engel .
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Introduction to Computers and Programming Using Java -- Fall, 2006 Professor Deena Engel V : Section 3 Office hours: Mondays.
Introduction to Computers and Programming Using Java Professor Deena Engel V : Sections 1 and 4 Office hours: Tuesdays & Thursdays.
Welcome to Introduction to Computers and Programming Course! Course Introduction Professor: Sana` Odeh Office hours: Mondays / Wednesdays.
OBJECT ORIENTED PROGRAMMING I LECTURE 1 GEORGE KOUTSOGIANNAKIS
Introduction to Computers and Programming Lecture 1: administrative details and an introduction to computers Professor: Evan Korth New York University.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
Introduction to Computers and Programming Using Java Professor Deena Engel V : Section 1 Office hours: MW 12:00 - 1:00 in room.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Welcome! Computers in Principle and Practice I V , Section 2 Professor Evan Korth Computer Science Department New York University.
Introduction to Computers and Programming Lecture 1: administrative details and an introduction to computers Professor: Evan Korth New York University.
CSCE 3110 Data Structures and Algorithm Analysis.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
COMP 151: Computer Programming II Spring Course Topics Review of Java and basics of software engineering (3 classes. Chapters 1 and 2) Recursion.
 2003 Prentice Hall, Inc. All rights reserved. Chapter 1 – Introduction to Computers, the Internet, and the Web Outline 1.1 Introduction 1.2 What Is a.
WEEK 1 CS 361: ADVANCED DATA STRUCTURES AND ALGORITHMS Dong Si Dept. of Computer Science 1.
Introduction COMP104: Fundamentals and Methodology.
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Data Structures and Programming.  Today:  Administrivia  Introduction to 225, Stacks  Course website: 
 2003 Prentice Hall, Inc. All rights reserved. 1 Java Training Course Dr. H.E. Dunsmore Purdue University Java – How to Program, Deitel (5 th Edition)
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
CSc 2310 Principles of Programming (Java) Dr. Xiaolin Hu.
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
Programming in Java This is a one semester course. You will learn the language and some basic programming skills. You are expected to read, program,
Computers in Principle and Practice Lecture 1: administrative details and an introduction to computers Professor: Evan Korth New York University.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Introduction to Data Structures
Computers and Society Lecture 1: administrative details and an introduction to the class Professor: Evan Korth New York University.
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
CMSC 2021 CMSC 202 Computer Science II for Majors Fall 2002 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Lecture 1 Page 1 CS 111 Summer 2013 Introduction CS 111 Operating System Principles Peter Reiher.
Lecture.1: Getting Started With Java Jiang (Jen) ZHENG May 9 th, 2005.
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
Computer Science 1 Lecture 1: administrative details and Professor: Evan Korth New York University 1.
OO Data Structures SE Dr. Samir Tartir 2010/2011 Second Semester.
CT1513 Introduction To java © A.AlOsaimi.
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2002 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2001 Sections Ms. Susan Mitchell.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
Data Structures and Algorithms in Java AlaaEddin 2012.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
1 Chapter 1 Java –Originally for intelligent consumer-electronic devices –Then used for creating Web pages with dynamic content –Now also used for: Develop.
Computer Science I ISMAIL ABUMUHFOUZ | CS 180. CS 180 Description BRIEF SUMMARY: This course covers a study of the algorithmic approach and the object.
CSC 222: Object-Oriented Programming
Computer Engineering Department Islamic University of Gaza
CSC 222: Computer Programming II
Professor Evan Korth Fall 2017
Computer Science 102 Data Structures CSCI-UA
September 27 – Course introductions; Adts; Stacks and Queues
CS 201 – Data Structures and Discrete Mathematics I
Programming COMP104: Fundamentals and Methodology Introduction.
CS 201 – Data Structures and Discrete Mathematics I
CS 1302 Programming Principles II
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
Accelerated Introduction to Computer Science
Computer Engineering Department Islamic University of Gaza
Introduction CSE 2320 – Algorithms and Data Structures
Presentation transcript:

PAC I Professor Evan Korth Fall 2014

Road Map for Today Welcome to PAC 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 Survey Start covering material

Course Prerequisites Prerequisite: – Programming experience in any language – Moderate math sophistication is expected Who should be taking this course: – Applicants to the master’s programs who have insufficient background in computer science, but are otherwise admissible are referred to PAC. – Other graduate students who want a solid foundation in CS Who should NOT be taking this course – Students that know Java and data structures 3

PAC Description PREPARATORY ACCELERATED COURSE (PAC) Applicants to the master’s programs who have insufficient background in computer science, but are otherwise admissible are referred to PAC. These two courses (part one, which is offered in the fall, and part two, offered in the spring) are designed to fulfill the minimum prerequisites for beginning a master’s program in computer science or information systems. Those admitted to the M.S. program with the requirement to complete PAC are considered M.S. degree students while they are enrolled in PAC courses, although the credits for the courses do not count toward the M.S. degree. 4

Course Description An accelerated introduction to the fundamental concepts of computer science for students who lack a formal background in the field. Topics include algorithm design and program development; data types; control structures; subprograms and parameter passing; recursion; data structures; searching and sorting; dynamic storage allocation and pointers; abstract data types, such as stacks, queues, lists, and tree structures; generic packages; and an introduction to the principles of object-oriented programming. Packages are emphasized as a means to develop skills in effective software design and development. Students should expect an average of hours of programming and related course work per week.

What the class is really about The main goals of this course: I.Foundations of Java a)We will focus on Java’s object orientated concepts. II.Foundations of Algorithm Development III.Foundations of Software Development IV.Foundations of Abstract Data Types (ADT) a)What is a data structure? b)Examples of data structures and their real world uses. V.Foundations of Asymptotic Analysis a)How do we rate the efficiency of an algorithm? b)How does choosing the right ADT effect an algorithm's efficiency? 6

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 cover Java’s implementation of the fundamentals: Variables, Arithmetic, If / Else, For Loops, While Loops, Methods, Arrays, etc. Then will then cover Java’s object orientated concepts. 7

8 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.

3 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 address real problems. I will also try to bring my real-world industry experience to class. 9

4 Foundations of Abstract Data Types An abstract data type (ADT) is a set of objects together with a set of operations. For example: – Stack – Queue – Dictionary – Tree – Priority queue 10

11 5 Introduction to Algorithm analysis Basically, we want to solve any given problem using the fewest possible computer instructions. – Two algorithms may solve the same problem. One may take a few seconds while the other takes a few years. We will analyze our data structures to see why one works better than the other for a given set of data. For example, we will learn several sort algorithms and analyze the efficiency of each. – Insertion sort – Merge sort – Quick Sort – Heap sort – See:

Administrative Matters 12

Course Web Site Course web site is available at: 001/index.html Web site contains the following information: – Administrative information – Course Syllabus – Homework assignments – Class notes – Class programs – Link to the class mailing list 13

Class mailing list First assignment is to join it. Do it today! Go to: _fa14 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. 14

Course Text Book Introduction to Java Programming (10th 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! 15

Course Text Book Object-Oriented Data Structures Using Java, Third Edition By Nell Dale, Daniel T. Joyce, and Chip Weems Object-Oriented Data Structures Using Java, Third Edition ISBN: - "NYU version" "regular version" Should be available at the NYU Bookstore Please keep up with the reading! 16

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. If you do not have your own computer, the computer labs on campus have the software. 17

Grading Your grade will be determined as follows: – Programming assignments(30%) – Midterm (and quizzes) (35%) – Final Exam (35%) Class participation will help your grade! 18

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. Submit the program via to the IA (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. 19

A Word About Cheating For the purposes of this class, cheating is defined as by the CS Department’s academic integrity policyacademic 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. 20

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! 21

Getting Help Help is always available! Option 1: Come to my Office Hours – Tuesday 9: :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. 22

23 Java syllabus Java from the Liang book: – Chapter 1 Introduction to Computers, Programs, and Java – Chapter 2 Elementary Programming – Chapter 3 Selections – Chapter 4 Mathematical Functions, Characters, and Strings – Chapter 5 Loops – Chapter 6 Methods – Chapter 7 Single-Dimensional Arrays – Chapter 8 Multidimensional Arrays – Chapter 9 Objects and Classes – Chapter 10 Object-Oriented Thinking – Chapter 11 Inheritance and Polymorphism – Chapter 13 Abstract Classes and Interfaces – Chapter 18 Recursion – Generics

24 data structures syllabus Here is a tentative list of the topics we will cover (note: this is most of the second text – we may not cover all these topics): – Recursion – Asymptotic Analysis of Algorithms: We will just scratch the surface as we look at the efficiency of some of our structures and algorithms – Lists – Stacks – Queues – Trees – Heaps – Sorting & Searching – Hashing – Priority Queues – Graphs – Huffman Codes

25 recitation This class has a mandatory recitation. If you are not registered for the recitation, you must do so. Recitation will be led by our IA. His name is Randy Shepherd. Quizzes will be held in recitation approximately every other week. HW will be discussed in recitation. Recitation starts next week!

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  Prentice Hall, Inc. All rights reserved. 26

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”. 27

28 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:

29 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.

30 Typical Java environment Primary Memory 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  Prentice Hall, Inc. All rights reserved.