Lecture1: Introduction Bohyung Han CSE, POSTECH CSED233: Data Structures (2014F)

Slides:



Advertisements
Similar presentations
1 G54PRG Programming Lecture 1 Amadeo Ascó Adam Moore G54PRG Programming Lecture 1 Amadeo Ascó 3 Java Programming Language.
Advertisements

Object Oriented Programming in Java George Mason University Fall 2011
James Tam Introduction to CPSC 233 CPSC 233: Introduction to Computers II Object-oriented programming The "nuts and bolts" of programming Object-oriented.
IC211 Object Oriented Programming Overview of Java.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
1 Fall 2008ACS-1903 Chapter 1 Topics Java History Java Programs Why Program? Computer Systems: Hardware and Software Programming Languages What Is a Program.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 1 Introduction/Overview Wed. 9/6/00.
CSc 160 Overview of Fundamentals of Computer Programming II Spring (SO1) 2004.
For more Lectures and Notes Visit
Introduction to Java.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
LESSON 1 INTRODUCTION Compiled By: Edwin O. Okech [Tutor, Amoud University] JAVA PROGRAMMING.
CMSC 202 Computer Science II for Majors Fall 2009 Introduction.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
Advanced OOP MCS-3 OOP BSCS-3 Lecture # 1
BASIC JAVA PROGRAMMING TUTORIAL. History  James Gosling and Sun Microsystems  Oak  Java, May 20, 1995, Sun World  Hot Java –The first Java-enabled.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler.
S.W. Ma/CIM/LWL41211/2 Prog. IIA Page 1 HKIVE (Lee Wai Lee Campus) Department of CIM Course : Year 2 Module : Programming IIA Textbook : Introduction.
Sadegh Aliakbary Sharif University of Technology Spring 2011.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
CMSC 202 Computer Science II for Majors Object-Oriented Programming.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Programming Languages Machine.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
CS 11 java track: lecture 1 Administrivia need a CS cluster account cgi-bin/sysadmin/account_request.cgi need to know UNIX
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 1 Introduction to.
POS 406 Java Technology And Beginning Java Code
Introduction to Java Programming with Forte Y. Daniel Liang.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Salman Marvasti Sharif University of Technology Fall 2014.
Data Structures (Second Part) Lecture 1 Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
Introduction to Data Structures
Lecture 1 Introduction. Instructor Name: Seokwoo Song Office: business 524 Phone: Office Hours: M W 4:30 – 5:30 PM or by appointment
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
We will talking about story of JAVA language. By Kristsada Songpartom.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
Application Architecture Using Java Hong Li. Introduction Developed by a team led by James Gosling at Sun Microsystem. Originally called Oak, designed.
Introduction Mehdi Einali Advanced Programming in Java 1.
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
Today… “Hello World” ritual. Brief History of Java & How Java Works. Introduction to Java class structure. But first, next slide shows Java is No. 1 programming.
introductory lecture on java programming
1 Introduction to C Programming 計算機程式設計 2/22/2012 朱浩華.
CPSC Developed by a team lead by James Gosling from Sun Microsystems – 1995 WORA (write once, run anywhere) – it is cross platform – no recompiling.
Course Info Instructor U.T. Nguyen Office: CSEB Office hours: Tuesday, 14:30-15:30 Thursday, 12:00-12:45 By.
Data Structures and Algorithms in Java AlaaEddin 2012.
Lecture1 Instructor: Amal Hussain ALshardy. Introduce students to the basics of writing software programs including variables, types, arrays, control.
1 Introduction to Java. 2 * 10% Assignments/ class participation * 10% Pop Quizzes * 05% Attendance * 25% Mid Term * 50% Final Term.
ITP 109 Week 2 Trina Gregory Introduction to Java.
Introduction to JAVA Programming
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2013.
Introduction to Java Programming, 4E Y. Daniel Liang.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
CMSC 202 Computer Science II for Majors Fall 2010 Introduction Version 9/101.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Introduction CMSC 202 Fall Instructors Mr. Ryan Bergeron – Lecture Section 01 Tues/Thu 1:00 – 2:15 am, Sondheim 111 – Lecture Section 04 Tues/Thu.
Object Oriented Programming in
Chapter 1 Introduction to Computers, Programs, and Java
Introduction Enosis Learning.
JAVA TUTORIALS.
Introduction Enosis Learning.
آشنایی با جاوا Introduction to Java
Advanced Programming Fall 2017.
Java History, Editions, Version Features
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

Lecture1: Introduction Bohyung Han CSE, POSTECH CSED233: Data Structures (2014F)

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Administration CSED233: Data Structures  Instructor: Prof. Gary Geunbae Lee Eng2-221)  TA: TBD  Time & Location: TTh 9:30-10:45, TBD  Office hour Gary Geunbae Lee: Tue 11:00~12:00 or by appointment TA :  Prerequisite: C or C++  Course webpage: ta_Structure_2015S.htm 2

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Textbooks For reference  Data Structures and Algoithms in Java (5th Edition) by M. T. Goodrich and R. Tamassia, John Wiley & Sons, Inc.  Data Structures and Algoithms in Java (2nd Edition) by R. LaFore, Sams Publishing 3

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 (Tentative) Schedule Introduction to data structures and Java (1 week) Algorithm analysis (1 week) Arrays and linked lists (2 weeks) Stacks and queues (2 weeks) Sorting (2 weeks) Trees (1.5 weeks) Hash (1 week) Heap (1.5 weeks) Graph algorithms (2 weeks) 4

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Grading Assignments (30%)  5~6 assignments  Problem solving  Programming projects Midterm exam (35%) Final exam (35%)  Comprehensive Individual percentages are subject to change. 5

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Assignments Programming assignments should be implemented in Java. Correctness and efficiency  Your assignment will be evaluated based on efficiency as well as correctness. Programming projects must be individual efforts.  Late assignments will be accepted up to 3 days with penalty. (10% per day)  Assignments that have substantial similarities (e.g. copy) will be identified via assignment checking software. Submission  Through POSTECH LMS ( 6

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Course Policy Attendance  Unofficial attendance check  I will ask questions in class frequently. Academic integrity  Make sure to acknowledge the POSTECH academic integrity. Violating the academic integrity means the automatic failure (F) in this class with NO exception. All written communication should be in English.  Homeworks, reports, exams, etc. 7

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Important Dates (Tentative) Assignment Dues Midterm exam  4/23 (Thu) in class Final exam  Comprehensive  6/18 (Thu): Time and location will be announced later. Days that need schedule adjustments  3/26, 4/21, 4/23, 6/2, 6/4 8

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Additional Comments on This Course This is not an introductory programming language course.  I assume that students have basic knowledge about object‐orientation and (at least) C/C++.  Programming capability is one of the most important grading criteria of this course. What to learn in this course?  Problem solving skills: theoretical core of computer science  Programming languages: JAVA (object‐oriented) 9

10 Data Structures

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 What are Data Structures? Definition & concept (from Wikipedia)  A particular way of storing and organizing data in a computer so that it can be used efficiently.  Data structures provide a means to manage large amounts of data efficiently, such as large databases and internet indexing services.  Efficient data structures are a key to designing efficient algorithms. Examples of data structures  Matrices  Linked lists  Priority queues: stack, queue, etc.  Hash tables  Trees and graphs 11

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Why Using Data Structures? Representing data in an abstract form  Storing and organizing data  Providing methods to access and use the data systematically Can be defined with array and accessed with index Unstructured dataStructured data

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Why Using Data Structures? Implementing algorithms efficiently  Data structures are key components to solve problems efficiently.  In a large scale problem, the efficiency may be very critical. Example: finding a number from a set of numbers  How many comparisons do we need to retrieve 7? 13 8 comparisons comparisons

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Programming Languages vs. Data Structures Data structures are often implemented with programming languages. Any programming language can be used to represent data structures  C/C++  Java  Perl  Python  Matlab  ML  etc. 14

15 Java Basics

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 What is Java? History  Inventors: James Gosling, Mike Sheridan, and Patrick Naughton  Name: Oak ‐> Green ‐> Java  Sun Microsystems released Java 1.0 in Characteristics  General purpose and powerful  Object‐oriented  Platform independent: Write Once, Run Anywhere (WORA)  Write less and better code C has 2.0 times longer codes. C++ has 1.4 times longer codes. 16

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Java Usage 17 TIOBE Programming Coummunity Index for August 2013 One of the most popular programming languages in use, particularly for client‐server web applications.

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Object‐Oriented Language Everything is an object. Every object belongs to a class. Class consists of data members, and methods.  Data members: the fields of the class  Methods: constructors, accessors, mutators, other methods Methods that perform an action Methods that return a value Three characteristics  Encapsulation: binds processing function to the data (increased modularity)  Inheritance: creates classes in hierarchies (knowledge passed down)  Polymorphism: allows same function to behave differently 18

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 public class HelloJava { public static void main(String[] args) { System.out.println(“Hello, Java!”); } Hello, Java! 19 Anyone can run this program. All codes in a Java program must belong to a class. Class name Anyone can run this method. This method belongs to the class, but not an object. The method we want to call The parameters passed to this method (array of strings). HelloJava.java File name should be same with class name.

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Java Virtual Machine (JVM) What is JVM?  A process virtual machine that can execute Java byte code  Implemented on operating systems or (sometimes) hardwares  Distributed along with Java Class Library, a set of standard class libraries that implement the Java API  Realize platform independence Compiling and running Java codes on command line  Compile: >> javac HelloJava.java  Execute bytecode: >> java HelloJava 20 Generate bytecode: HelloJava.class

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Platform Independence of Java 21 Java compiler (javac) Stage 1: Compilation Filename.class Stage 2: Interpreting and executing the byte code Write Once, Run Anywhere (WORA) Filename.java Java program Java bytecode (generic binary) Machine language instruction (UNIX) Machine language instruction (Windows) Machine language instruction (MacOS) Java bytecode (generic binary) Filename.class Java interpreter (java)

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Software Development Kit JDK (Java Development Kit) editions  Java Standard Edition (J2SE): for client‐side standalone applications  Java Enterprise Edition (J2EE): for server‐side applications such as Java servlets and Java Server Pages.  Java Micro Edition (J2ME): for applications in mobile devices Java versions  JDK 1.0 (January 23, 1996)  JDK 1.1 (February 19, 1997)  J2SE 1.2 (December 8, 1998)  J2SE 1.3 (May 8, 2000)  J2SE 1.4 (February 6, 2002)  J2SE 5.0 (September 30, 2004)  Java SE 6 (December 11, 2006)  Java SE 7 (July 28, 2011)  Java SE 8 (March 18, 2014) 22

CSED233: Data Structures by Prof. Bohyung Han, Fall 2014 Eclipse What is Eclipse?  Powerful Integrated Development Environment (IDE)  Supporting multiple programming languages  Very powerful debugger  Allows for easy breakpoint setting Allows for traces of program operation Full view of array values and references  Similar to development tools used in industry 23

24