CS 231 Data Structures and Algorithms, Fall 2016

Size: px
Start display at page:

Transcription

1 CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard algorithms for manipulating them. Standard data structures include lists, stacks, queues, trees, heaps, hash tables, and graphs. Standard algorithms include searching, sorting, and traversals. Along with implementation details, students will learn to analyze the time and space efficiency of algorithms and how to select appropriate data structures and algorithms for a specific application. In homework, labs, and programming projects, students will implement their own data structures and make use of existing libraries to solve a variety of computational problems. Prerequisites: CS 151, or Permission of Instructor Desired Course Outcomes A. Students understand the advantages and disadvantages of fundamental data structures and can implement them using object-oriented design principles. B. Students understand, can implement, and can calculate the time and space efficiency of classic search, sort, and traversal algorithms, including the use of big-oh notation. C. Students understand the tradeoffs between different implementation of data structures and algorithms and can make appropriate design decisions based on application data requirements. D. Students can use fundamental data structures and algorithms appropriately to solve a variety of computational problems. E. Students can communicate the result of their work and describe an algorithm. This material is copyrighted. Individuals are free to use this material for their own educational, noncommercial purposes. Distribution or copying of this material for commercial or for-prot purposes without the prior written consent of the copyright owner is a violation of copyright and subject to fines and penalties. c 2016 Bruce A. Maxwell 1 September 8, 2016

3 Classes defined within other classes can also use the designations private and protected, which limit access to those classes to the enclosing class and subclasses. Once named, a class has several major parts. Fields: member or class variables that hold information Constructors: methods that are called to initialize newly created instances of a class Methods: code that provides required functionality Internal Classes: classes used only within another class (not children) A field can be public, private, or protected. A public field is accessible within any scope that can create an object of that class. Using public fields is generally not a good idea in object-oriented programming, as it means the implementation of a class is exposed to other programmers. That, in turn, means that if you change an implementation, it may break external code. A static field, which means there is a single instance of the variable attached to the class, not individual objects, are often made public because they are used as constants, and external programmers may need to know the value of the constant when writing code. Making fields private means that only methods within a class have access to the field. This encapsulates the code and requires external programmers to use methods to work with an object, leaving you free to modify the implementation of a class without breaking external code. The protected designation means that the class and any subclasses, e.g. child classes, have access to the fields. This can make subclass implementations faster and more efficient, although it ties the subclasses and parent classes together; if the parent class changes implementation, all child classes must update their code as well. The following example shows a declaration of a public class Die with a single private int field, numfaces and two constructor methods. public class Die { private int numfaces; public Die() { numfaces = 6; public Die(int faces) { numfaces = faces; As with Python, classes have constructor functions that are called when a new instance of a class is created. In Python, the constructor for a class is the init method. In Java, it is a method with the same name as the class. Unlike Python, a class can have multiple constructor functions that differ in their argument lists. The prior example contains two constructor functions for the Die class. Like fields, methods can also be public, private, or protected, with the same limitations. Sometimes, for example, you want to have functions that are used only within a class and are dependent on the specifics of the implementation. Most methods will be public. c 2016 Bruce A. Maxwell 3 September 8, 2016

4 Static v. Non-static methods Classes can have static and non-static methods. Non-static methods are called using an instance of a particular class. Within a non-static method, the object from which the method was called, its fields and its methods are available via the variable this. Static methods can be called without an actual instance of the object. Any main method must be declared static so that the program can be executed (no instance of any object exists until the program begins). Static methods are useful for classes that are intended to encapsulate functionality but not necessarily any data (the Math class, for example). I/O classes are often designed to have static methods, and their purpose is to connect an object to a stream. Thus, System.out.println() is a static method of the System class. The Hello World program in Java is more complex than most, since it has to have a class, a static main method, and make use of the static println function in the System.out class. public class HelloWorld { public static void main(string args[]) { System.out.println("Hello World"); 1.3 Java Syntax and Semantics Variable Declarations Before you can use a variable, its name and type must be declared within the current scope. The fields of a class should be declared at the top of the class, before the constructor or first method. Class fields should hold state information about a that needs to be stored between class method calls. Local variables should, in general, be declared at the beginning of a method. Variables can be declared anywhere within a function. However, spreading variable definitions throughout a function makes it difficult to comprehend and debug. Placing all of the variable declarations in once place makes it easier to debug and to understand the total array of variables being used inside a method. All variables must have a type. A local variable declaration is of the form: <type> <name>;. For example, the following declares on variable of type int (primitive type), one variable of type Integer (class form of ints), and one variable of type Die. int x; Integer y; Die d; The eight primitive types defined in Java are labels for actual memory locations that hold data: boolean, char, byte, short, int, float, long, double. While Drake claims that byte, float, long, and short are not commonly used, it depends upon the application, precision requirements, and memory availability. All other types in Java are labels for memory locations that hold pointers to where the data may actually be stored. These are also called references. Why does this matter? 1. Function arguments are call by value c 2016 Bruce A. Maxwell 4 September 8, 2016

5 2. Comparing primitives compares the values of the primitives 3. Comparing references does not compare the value of the references, just the pointers 4. Copying a primitive (assignment statement) copies the value of the primitive 5. Copying a reference copies the pointer to the reference It also matters because any time you declare a variable to be a non-primitive type you have to remember that the memory for the object itself does not yet exist, only a pointer to NULL. You must use the new statement to actually allocate the space for the object. If you try to access the object prior to allocating memory for it, bad things happen Assignments Assignments copy the value generated by evaluating the right side of an expression to the variable on the left side. If the value on the right side evaluates to a reference, then only the reference is copied. As Java is a strongly typed language, most type mis-matches in assignments will generate compiler errors. For example, the first three assignments will all generate compilation errors. The first assignment is a lossy conversion from a double (default type for floating point constants). The second assignment is a lossy conversion from a float to a double, and the third tires to assign a String reference to a double. int q; float r; double s; q = 3.14; r = 3.14; s = new String("Hi"); The following assignments with the same variables are valid and throw no warnings or errors. q = (int)3.14; // cast fixes the error r = 3.14f; // designation as a float sets the right type s = new Double(3.14); // Java silently casts to the equivalent primitive type s = new Float(3.14); // non-lossy conversion, so Java does a silent cast. s = new Integer(3); // non-lossy conversion, so Java does a silent cast Statements Statements in Java end with a semi-colon. Statements can be variable declarations, assignments, return statements, or function calls. Blocks functions, for loop bodies, if statement bodies, and class bodies defined by curly brackets do not need to be closed with a semi-colon. In the last assignment, the designator f indicates that 3.14 is a float, not a double (default for constants). Without the designator, the statement requires a cast from double to float or the compiler throws an error. int b; float c; b = 42; c = 3.14f; c 2016 Bruce A. Maxwell 5 September 8, 2016

6 1.3.4 Conditionals If statements in Java follow C syntax. The condition is specified inside parentheses. If the body of the if statement requires more than statement, then the body must be enclosed in curly brackets. An if-statement does not need to have an else if or else case, but both are possible. float c = 15.0; if( c < 15 ) { System.out.println("c is less than 15"); else if(c > 15) { System.out.println("c is greater than 15"); else { System.out.println("c is 15"); For-loops Standard for loops also follow C syntax. The for loop syntax has three parts to it: the initialization step, the test step, and the post-loop step. It is possible to declare variables in the initialization step. The following example sums the first 10 non-negative integers. The for loop itself creates a loop variable and initializes it to 0, continues looping while the loop variable is less than 10, and increments the loop variable at the end of each loop. int sum = 0; for(int i=0;i<10;i++) { sum += i; System.out.println("sum is " + sum ); While-loops A while loop executes so long as its condition is true. Like conditionals and for loops, the condition is specified inside parentheses. sum = 2; while(sum < 1000) { sum *= sum; System.out.println("sum is " + sum); Equality Whenever you see a statement like: if( A == B ) It is essential to know what exactly is being compared. If A and B are primitive types, the actual values are being compared, and the result of the statement is likely to be exactly what you want. However, if either c 2016 Bruce A. Maxwell 6 September 8, 2016

7 A or B are references, then undesirable things can happen because the statement is comparing pointers to objects, not the objects themselves. See figure 1 for an example. Because of the potential problems, it is wise to create an equals() method for each class you create that may be used in an equivalency comparison. For the reference classes belonging to the eight primitive types, the equals() is already defined, as shown in figure Copying The same issues arise when copying from one object to another. A simple assignment statement only sets the value of the memory reference, not the contents of the object. In order to set the value of one object to the value of another object, the typical practice is to make both a constructor and a set function that take as an argument the source object and copy the data in the source object to the target object. The code in figure 2 demonstrates the problem. 1.4 Initialization and Memory When a local variable is declared in Java, the JVM does not initialize its value. The compiler will throw an error if it detects a variable being read prior to it being assigned a value. When an object is created, however, any of its member fields are initialized by the JVM. Primitive type fields are initialized to a zero equivalent. Reference type fields are initialized to null. The value null is a special value for references that indicates the variable does not point to a valid object. Java requires the programmer to allocate the memory required to create a class object. The new keyword is used to create a new instance of a class. Each time new is called, it allocates memory to hold the object and calls the appropriate constructor function, given the arguments. If no matching constructor function exists, the compiler will throw an error. Thing t; t = new Thing(); 1.5 Java Libraries Java has a large number of built-in and external packages and libraries. To import a package or library, use the import statement. The following example is a common import statement, with the asterisk acting as a wild-card. Importing everything in java.util is not necessarily the most efficient practice (it can take longer to compile), and it is better to be selective about which packages are necessary for a program to run. import java.util.*; c 2016 Bruce A. Maxwell 7 September 8, 2016

8 public class strangethings { // example of how equals does odd things with Objects public static void main(string[] args) { int a, b; Integer A, B; a = 6; b = 5; // with primitives, == works fine System.out.println("a: "+a); System.out.println("b: "+b); System.out.println("a == b: "+(a == b)); // prints false b = 6; System.out.println("a: "+a); System.out.println("b: "+b); System.out.println("a == b: "+(a == b)); // prints true // with references, things don t work so well A = new Integer(6); B = A; System.out.println("A: "+A); System.out.println("B: "+B); // ok here, because A and B point to the same place System.out.println("A == B: "+(A == B)); // prints true B = new Integer(6); System.out.println("A: "+A); System.out.println("B: "+B); // not here, because A and B point to different places System.out.println("A == B: "+(A == B)); // prints false System.out.println("A.equals(B): "+A.equals(B)); // prints true Figure 1: strangethings class showing problems with ==. c 2016 Bruce A. Maxwell 8 September 8, 2016

9 public class strangecopy { private int q; public strangecopy(int x) { q = x; public void set(int x) { q = x; public int get() { return q; public static void main(string[] args) { int a, b; strangecopy A, B; a = 6; b = 5; A = new strangecopy(6); B = new strangecopy(5); System.out.println("a: "+a+" b: "+b); // prints a: 6 b: 6 System.out.println("a = b"); a = b; System.out.println("a: "+a+" b: "+b); // prints a: 5 b: 5 System.out.println("a = 4"); a = 4; System.out.println("a: "+a+" b: "+b); // prints a: 4 b: 5 System.out.println(); System.out.println("A: "+A.get()+" B: "+B.get()); // prints A: 6 B: 6 System.out.println("A = B"); A = B; System.out.println("A: "+A.get()+" B: "+B.get()); // prints A: 5 B: 5 System.out.println("A.set(4)"); A.set(4); System.out.println("A: "+A.get()+" B: "+B.get()); // prints A: 4 B: 4 return; Figure 2: strangecopy class showing problems with assignment. c 2016 Bruce A. Maxwell 9 September 8, 2016

Java Bytecode (binary file)

Java is Compiled Unlike Python, which is an interpreted langauge, Java code is compiled. In Java, a compiler reads in a Java source file (the code that we write), and it translates that code into bytecode.

Computer Components. Software{ User Programs. Operating System. Hardware

Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

Lecture 2. COMP1406/1006 (the Java course) Fall M. Jason Hinek Carleton University

Lecture 2 COMP1406/1006 (the Java course) Fall 2013 M. Jason Hinek Carleton University today s agenda a quick look back (last Thursday) assignment 0 is posted and is due this Friday at 2pm Java compiling

Full file at

Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

Lecture 02, Fall 2018 Friday September 7

Anatomy of a class Oliver W. Layton CS231: Data Structures and Algorithms Lecture 02, Fall 2018 Friday September 7 Follow-up Python is also cross-platform. What s the advantage of Java? It s true: Python

13 th Windsor Regional Secondary School Computer Programming Competition

SCHOOL OF COMPUTER SCIENCE 13 th Windsor Regional Secondary School Computer Programming Competition Hosted by The School of Computer Science, University of Windsor WORKSHOP I [ Overview of the Java/Eclipse

Outline. Overview. Control statements. Classes and methods. history and advantage how to: program, compile and execute 8 data types 3 types of errors

Outline Overview history and advantage how to: program, compile and execute 8 data types 3 types of errors Control statements Selection and repetition statements Classes and methods methods... 2 Oak A

Outline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring

Java Outline Java Models for variables Types and type checking, type safety Interpretation vs. compilation Reasoning about code CSCI 2600 Spring 2017 2 Java Java is a successor to a number of languages,

CS 11 java track: lecture 1

CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml

CHAPTER 7 OBJECTS AND CLASSES

CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and

Introduction to Java

Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn

CS11 Java. Fall Lecture 1

CS11 Java Fall 2006-2007 Lecture 1 Welcome! 8 Lectures Slides posted on CS11 website http://www.cs.caltech.edu/courses/cs11 7-8 Lab Assignments Made available on Mondays Due one week later Monday, 12 noon

Pace University. Fundamental Concepts of CS121 1

Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4. Epic Test Review 5 Epic Test Review 6 Epic Test Review 7 Epic Test Review 8

Epic Test Review 1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4 Write a line of code that outputs the phase Hello World to the console without creating a new line character. System.out.print(

Program Fundamentals

Program Fundamentals /* HelloWorld.java * The classic Hello, world! program */ class HelloWorld { public static void main (String[ ] args) { System.out.println( Hello, world! ); } } /* HelloWorld.java

CHAPTER 7 OBJECTS AND CLASSES

CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

1 Shyam sir JAVA Notes

1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write

DM550 Introduction to Programming part 2. Jan Baumbach.

DM550 Introduction to Programming part 2 Jan Baumbach jan.baumbach@imada.sdu.dk http://www.baumbachlab.net COURSE ORGANIZATION 2 Course Elements Lectures: 10 lectures Find schedule and class rooms in online

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal Lesson Goals Understand the basic constructs of a Java Program Understand how to use basic identifiers Understand simple Java data types and

Computer Components. Software{ User Programs. Operating System. Hardware

Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal Lesson Goals Understand the basic constructs of a Java Program Understand how to use basic identifiers Understand simple Java data types

Sri Vidya College of Engineering & Technology

UNIT I INTRODUCTION TO OOP AND FUNDAMENTALS OF JAVA 1. Define OOP. Part A Object-Oriented Programming (OOP) is a methodology or paradigm to design a program using classes and objects. It simplifies the

VARIABLES AND TYPES CITS1001

VARIABLES AND TYPES CITS1001 Scope of this lecture Types in Java the eight primitive types the unlimited number of object types Values and References The Golden Rule Primitive types Every piece of data

Computer Science II Data Structures

Computer Science II Data Structures Instructor Sukumar Ghosh 201P Maclean Hall Office hours: 10:30 AM 12:00 PM Mondays and Fridays Course Webpage homepage.cs.uiowa.edu/~ghosh/2116.html Course Syllabus

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple

CPS122 Lecture: From Python to Java last revised January 4, Objectives:

Objectives: CPS122 Lecture: From Python to Java last revised January 4, 2017 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.

CompSci 125 Lecture 02

Assignments CompSci 125 Lecture 02 Java and Java Programming with Eclipse! Homework:! http://coen.boisestate.edu/jconrad/compsci-125-homework! hw1 due Jan 28 (MW), 29 (TuTh)! Programming:! http://coen.boisestate.edu/jconrad/cs125-programming-assignments!

2 rd class Department of Programming. OOP with Java Programming

1. Structured Programming and Object-Oriented Programming During the 1970s and into the 80s, the primary software engineering methodology was structured programming. The structured programming approach

DM503 Programming B. Peter Schneider-Kamp.

DM503 Programming B Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm503/! VARIABLES, EXPRESSIONS & STATEMENTS 2 Values and Types Values = basic data objects 42 23.0 "Hello!" Types

Primitive Data, Variables, and Expressions; Simple Conditional Execution

Unit 2, Part 1 Primitive Data, Variables, and Expressions; Simple Conditional Execution Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Overview of the Programming Process Analysis/Specification

Object-oriented programming in...

Programming Languages Week 12 Object-oriented programming in... College of Information Science and Engineering Ritsumeikan University plan this week intro to Java advantages and disadvantages language

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today: Java basics: Compilation vs Interpretation Program structure Statements Values Variables Types Operators and Expressions

Programming Language Concepts: Lecture 2

Programming Language Concepts: Lecture 2 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2011 PLC 2011, Lecture 2, 6 January 2011 Classes and

OOSD. Introduction to JAVA. Giuseppe Lipari Scuola Superiore Sant Anna Pisa. September 12, 2011

OOSD Introduction to JAVA Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 12, 2011 G. Lipari (Scuola Superiore Sant Anna) OOSD September 12, 2011 1 / 55 Outline

Outline. Parts 1 to 3 introduce and sketch out the ideas of OOP. Part 5 deals with these ideas in closer detail.

OOP in Java 1 Outline 1. Getting started, primitive data types and control structures 2. Classes and objects 3. Extending classes 4. Using some standard packages 5. OOP revisited Parts 1 to 3 introduce

COSC 123 Computer Creativity. Introduction to Java. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 123 Computer Creativity Introduction to Java Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Key Points 1) Introduce Java, a general-purpose programming language,

More on methods and variables. Fundamentals of Computer Science Keith Vertanen

More on methods and variables Fundamentals of Computer Science Keith Vertanen Terminology of a method Goal: helper method than can draw a random integer between start and end (inclusive) access modifier

CS 152: Data Structures with Java Hello World with the IntelliJ IDE

CS 152: Data Structures with Java Hello World with the IntelliJ IDE Instructor: Joel Castellanos e-mail: joel.unm.edu Web: http://cs.unm.edu/~joel/ Office: Electrical and Computer Engineering building

COP 3330 Final Exam Review

COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

Java Primer 1: Types, Classes and Operators

Java Primer 1 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Java Primer 1: Types,

Interpreted vs Compiled. Java Compile. Classes, Objects, and Methods. Hello World 10/6/2016. Python Interpreted. Java Compiled

Interpreted vs Compiled Python 1 Java Interpreted Easy to run and test Quicker prototyping Program runs slower Compiled Execution time faster Virtual Machine compiled code portable Java Compile > javac

Array. Prepared By - Rifat Shahriyar

Java More Details Array 2 Arrays A group of variables containing values that all have the same type Arrays are fixed length entities In Java, arrays are objects, so they are considered reference types

CS2141 Software Development using C/C++ C++ Basics

CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today: ; public vs private; Object-Oriented Programming; Abstract data types; Stacks as ADTs; Next time: Stacks and Queues

Getting started with Java

Getting started with Java by Vlad Costel Ungureanu for Learn Stuff Programming Languages A programming language is a formal constructed language designed to communicate instructions to a machine, particularly

Java+- Language Reference Manual

Fall 2016 COMS4115 Programming Languages & Translators Java+- Language Reference Manual Authors Ashley Daguanno (ad3079) - Manager Anna Wen (aw2802) - Tester Tin Nilar Hlaing (th2520) - Systems Architect

Java Overview An introduction to the Java Programming Language

Java Overview An introduction to the Java Programming Language Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhan Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/

Programming with Java

Programming with Java Data Types & Input Statement Lecture 04 First stage Software Engineering Dep. Saman M. Omer 2017-2018 Objectives q By the end of this lecture you should be able to : ü Know rules

CS 251 Intermediate Programming Java Basics

CS 251 Intermediate Programming Java Basics Brooke Chenoweth University of New Mexico Spring 2018 Prerequisites These are the topics that I assume that you have already seen: Variables Boolean expressions

Object-Oriented Programming

Object-Oriented Programming Java Syntax Program Structure Variables and basic data types. Industry standard naming conventions. Java syntax and coding conventions If Then Else Case statements Looping (for,

OOSD. Introduction to JAVA. Giuseppe Lipari Scuola Superiore Sant Anna Pisa. September 29, 2010

OOSD Introduction to JAVA Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 29, 2010 G. Lipari (Scuola Superiore Sant Anna) OOSD September 29, 2010 1 / 55 Outline

COMP 202 Java in one week

COMP 202 Java in one week... Continued CONTENTS: Return to material from previous lecture At-home programming exercises Please Do Ask Questions It's perfectly normal not to understand everything Most of

PROGRAMMING FUNDAMENTALS

PROGRAMMING FUNDAMENTALS Q1. Name any two Object Oriented Programming languages? Q2. Why is java called a platform independent language? Q3. Elaborate the java Compilation process. Q4. Why do we write

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG 1 Notice Class Website http://www.cs.umb.edu/~jane/cs114/ Reading Assignment Chapter 1: Introduction to Java Programming

Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review

Java How to Program, 10/e Education, Inc. All Rights Reserved. Each class you create becomes a new type that can be used to declare variables and create objects. You can declare new classes as needed;

STRUCTURING OF PROGRAM

Unit III MULTIPLE CHOICE QUESTIONS 1. Which of the following is the functionality of Data Abstraction? (a) Reduce Complexity (c) Parallelism Unit III 3.1 (b) Binds together code and data (d) None of the

DM550 / DM857 Introduction to Programming. Peter Schneider-Kamp

DM550 / DM857 Introduction to Programming Peter Schneider-Kamp petersk@imada.sdu.dk http://imada.sdu.dk/~petersk/dm550/ http://imada.sdu.dk/~petersk/dm857/ OBJECT-ORIENTED PROGRAMMING IN JAVA 2 Programming

COE318 Lecture Notes Week 3 (Week of Sept 17, 2012)

COE318 Lecture Notes: Week 3 1 of 8 COE318 Lecture Notes Week 3 (Week of Sept 17, 2012) Announcements Quiz (5% of total mark) on Wednesday, September 26, 2012. Covers weeks 1 3. This includes both the

CSE 142 Su 04 Computer Programming 1 - Java. Objects

Objects Objects have state and behavior. State is maintained in instance variables which live as long as the object does. Behavior is implemented in methods, which can be called by other objects to request

Introduction to Java https://tinyurl.com/y7bvpa9z

Introduction to Java https://tinyurl.com/y7bvpa9z Eric Newhall - Laurence Meyers Team 2849 Alumni Java Object-Oriented Compiled Garbage-Collected WORA - Write Once, Run Anywhere IDE Integrated Development

McGill University School of Computer Science COMP-202A Introduction to Computing 1

McGill University School of Computer Science COMP-202A Introduction to Computing 1 Midterm Exam Thursday, October 26, 2006, 18:00-20:00 (6:00 8:00 PM) Instructors: Mathieu Petitpas, Shah Asaduzzaman, Sherif

Agenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java

CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors Agenda

Chapter 6 Introduction to Defining Classes

Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

Assoc. Prof. Dr. Marenglen Biba (C) 2010 Pearson Education, Inc. All rights reserved. Java application A computer program that executes when you use the java command to launch the Java Virtual Machine

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement

COMP-202 Unit 2: Java Basics. CONTENTS: Using Expressions and Variables Types Strings Methods

COMP-202 Unit 2: Java Basics CONTENTS: Using Expressions and Variables Types Strings Methods Assignment 1 Assignment 1 posted on WebCt and course website. It is due May 18th st at 23:30 Worth 6% Part programming,

Java Programming Tutorial 1

Java Programming Tutorial 1 Every programming language has two defining characteristics: Syntax Semantics Programming Writing code with good style also provides the following benefits: It improves the

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Review Chapters 1 to 4 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Introduction to Java Chapters 1 and 2 The Java Language Section 1.1 Data & Expressions Sections 2.1 2.5 Instructor:

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

Simple Java Reference

Simple Java Reference This document provides a reference to all the Java syntax used in the Computational Methods course. 1 Compiling and running... 2 2 The main() method... 3 3 Primitive variable types...

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 3: SEP. 13TH INSTRUCTOR: JIAYIN WANG

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 3: SEP. 13TH INSTRUCTOR: JIAYIN WANG 1 Notice Reading Assignment Chapter 1: Introduction to Java Programming Homework 1 It is due this coming Sunday

CS121/IS223. Object Reference Variables. Dr Olly Gotel

CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors CS121/IS223

Java Identifiers, Data Types & Variables

Java Identifiers, Data Types & Variables 1. Java Identifiers: Identifiers are name given to a class, variable or a method. public class TestingShastra { //TestingShastra is an identifier for class char

3. Java - Language Constructs I

Educational Objectives 3. Java - Language Constructs I Names and Identifiers, Variables, Assignments, Constants, Datatypes, Operations, Evaluation of Expressions, Type Conversions You know the basic blocks

Java Programming. Atul Prakash

Java Programming Atul Prakash Java Language Fundamentals The language syntax is similar to C/ C++ If you know C/C++, you will have no trouble understanding Java s syntax If you don't, it will be easier

CS111: PROGRAMMING LANGUAGE II

1 CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1: Introduction Lecture Contents 2 Course info Why programming?? Why Java?? Write once, run anywhere!! Java basics Input/output Variables

CPS122 Lecture: From Python to Java

Objectives: CPS122 Lecture: From Python to Java last revised January 7, 2013 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.

TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA

1 TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B. Ericson, and instructor materials prepared

Outline. Object Oriented Programming. Course goals. Staff. Course resources. Assignments. Course organization Introduction Java overview Autumn 2003

Outline Object Oriented Programming Autumn 2003 2 Course goals Software design vs hacking Abstractions vs language (syntax) Java used to illustrate concepts NOT a course about Java Prerequisites knowledge

Object oriented programming. Instructor: Masoud Asghari Web page: Ch: 3

Object oriented programming Instructor: Masoud Asghari Web page: http://www.masses.ir/lectures/oops2017sut Ch: 3 1 In this slide We follow: https://docs.oracle.com/javase/tutorial/index.html Trail: Learning

Computer Science II Lecture 1 Introduction and Background

Computer Science II Lecture 1 Introduction and Background Discussion of Syllabus Instructor, TAs, office hours Course web site, http://www.cs.rpi.edu/courses/fall04/cs2, will be up soon Course emphasis,

CS 360 Programming Languages Interpreters

CS 360 Programming Languages Interpreters Implementing PLs Most of the course is learning fundamental concepts for using and understanding PLs. Syntax vs. semantics vs. idioms. Powerful constructs like

CS260 Intro to Java & Android 03.Java Language Basics

03.Java Language Basics http://www.tutorialspoint.com/java/index.htm CS260 - Intro to Java & Android 1 What is the distinction between fields and variables? Java has the following kinds of variables: Instance

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette

COMP 250: Java Programming I Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette Variables and types [Downey Ch 2] Variable: temporary storage location in memory.

Java Programming Basics. COMP 401, Spring 2017 Lecture 2

Java Programming Basics COMP 401, Spring 2017 Lecture 2 AverageHeightApp take 2 Same as before, but with Eclipse. Eclipse Workspace CreaJng new project CreaJng a new package CreaJng new class Running a

MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012

MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)

CSC207H: Software Design. Java + OOP. CSC207 Winter 2018

Java + OOP CSC207 Winter 2018 1 Why OOP? Modularity: code can be written and maintained separately, and easily passed around the system Information-hiding: internal representation hidden from the outside

Language Reference Manual simplicity

Language Reference Manual simplicity Course: COMS S4115 Professor: Dr. Stephen Edwards TA: Graham Gobieski Date: July 20, 2016 Group members Rui Gu rg2970 Adam Hadar anh2130 Zachary Moffitt znm2104 Suzanna

COMP 250 Winter 2011 Reading: Java background January 5, 2011

Almost all of you have taken COMP 202 or equivalent, so I am assuming that you are familiar with the basic techniques and definitions of Java covered in that course. Those of you who have not taken a COMP

CT 229 Fundamentals of Java Syntax

CT 229 Fundamentals of Java Syntax 19/09/2006 CT229 New Lab Assignment Monday 18 th Sept -> New Lab Assignment on CT 229 Website Two Weeks for Completion Due Date is Oct 1 st Assignment Submission is online

BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

BASIC COMPUTATION x public static void main(string [] args) Fundamentals of Computer Science I Outline Using Eclipse Data Types Variables Primitive and Class Data Types Expressions Declaration Assignment

BIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic

BIT 3383 Java Programming Sem 1 Session 2011/12 Chapter 2 JAVA basic Objective: After this lesson, you should be able to: declare, initialize and use variables according to Java programming language guidelines

Java Language Basics: Introduction To Java, Basic Features, Java Virtual Machine Concepts, Primitive Data Type And Variables, Java Operators,

Java Language Basics: Introduction To Java, Basic Features, Java Virtual Machine Concepts, Primitive Data Type And Variables, Java Operators, Expressions, Statements and Arrays. Java technology is: A programming

CS 1302 Chapter 9 (Review) Object & Classes

CS 1302 Chapter 9 (Review) Object & Classes Reference Sections 9.2-9.5, 9.7-9.14 9.2 Defining Classes for Objects 1. A class is a blueprint (or template) for creating objects. A class defines the state

CSC 1214: Object-Oriented Programming

CSC 1214: Object-Oriented Programming J. Kizito Makerere University e-mail: jkizito@cis.mak.ac.ug www: http://serval.ug/~jona materials: http://serval.ug/~jona/materials/csc1214 e-learning environment: