Week 11 Tuesday. CS 400 Programming III

Size: px
Start display at page:

Download "Week 11 Tuesday. CS 400 Programming III"

Transcription

1 CS 400 Programming III Week 11 Tuesday X-Team Exercise 4: due before 10pm this Monday April 16 th Timeout your JUnit tests (if public Timeout globaltimeout = Timeout.seconds(10); // 10 seconds max per method Team Project: Tournament-Bracket (D-Team 30pts) Milestone 1: due before 10pm Friday, April 20 th (A-Team 20pts) Milestone 2: due before 10pm Monday, April 23 rd (A-Team 100pts) Milestone 3: due before 10pm Thursday, May 3rd Read: Module 10 (links to Java 8 feature documentation) TODAY in Lecture: make and Makefiles explained with examples X-Team Exercise 4 COMPLETE YOUR WordProcessor.getWordStream() method before class and bring your code to lecture to help you answer Top Hat questions. Functional Interfaces (java.util.function.function) Lambda expressions Next Lecture More Streams o java.nio.file.files o java.nio.file.paths o java.nio.streams Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 1

2 CS 400 Programming III Makefile what is a makefile? a build utility what a build utility? a program that creates executables Are there other build utilities? shell scripts, ant, maven, gradle Steps 1. create a file named Makefile with targets and [TAB]rules 2. Run make [optional - with a target name] p1 Makefile (simple targets) main: javac *.java test: clean: java TestMaxPQ \rm *.class p2 Makefile (basics with JUnit) main: javac -g -cp.:/usr/share/java/junit4.jar *.java junit: clean: java -cp.:/usr/share/java/junit4.jar org.junit.runner.junitcore TestSearchTree \rm *.class p3 Makefile with command-line argument and output to a file make: javac -cp. *.java java -cp. AnalysisTest../data/data_details.txt > results.txt xlint: javac -Xlint:unchecked *.java clean: \rm *.class Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 2

3 p2 Makefile with variables and Java classpath example From: JFLAGS = -g JC = javac CP =.:/usr/share/java/junit4.jar.suffixes:.java.class compiles.java source into.class files.java.class: $(JC) $(JFLAGS) -cp $(CP) $*.java CLASSES = \ SearchTreeADT.java \ BalancedSearchTree.java \ TestSearchTree.java \ default: classes classes: $(CLASSES:.java=.class) make clean - removes all class files and permit new build of all clean: $(RM) *.class make junit - run the TestSearchTree JUnit test class junit: java -cp $(CP) org.junit.runner.junitcore TestSearchTree CS 400 Programming III make copy - use scp to copy p2 files from assignment directory to current directory CAUTION: this will overwrite existing files with same name in same directory without warning or chance to cancel copy TO USE: remove echo from start of scp command replace cslogin with your CS login username copy: echo scp -r cslogin@best-linux.cs.wisc.edu:/p/course/cs400-deppeler/public/htmls/assignments/p2/files/*. Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 3

4 CS 400 Programming III DictionaryGraph: WordProcessor getwordstream() read contents of a file, given the filepath/filename return a Stream of words where each word has been: a. trimmed (of preceding and trailing whitespace) b. non-null and non-empty c. converted to UPPERCASE // TopHat: Declare wordstream as a Stream of String values Stream<String> wordstream = //TopHat: Write code to produce a Stream of lines read from filepath Files.lines(Paths.get(filepath)) // Complete this code to remove white space. map ( String::trim ) // Complete this code to ignore null and empty lines. filter ( x -> x!=null &&!x.equals("") ) // Complete this code to convert to upper case. map ( String::toUpperCase ) //Add code to return a stream return wordstream ; isadjacent() Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 4

5 Java 8: Functional Interfaces interface that defines exactly one abstract method may have static and default methods extends java.util.function.function not all interfaces with only one abstract method are FUNCTIONAL INTERFACES (eg. Comparable) CS 400 Programming III // not required public interface Comparator<T extends Event> extends EventListener { int compare(e obj1, E obj2) ; Use a Comparator to define how to compare instances whose types are not Comparable. Create and use a Comparator 1. define a class that implements Comparator (for your type) 2. create an instance of that class 3. use the instance in a method or expression that requires an instance Example: Use a comparator to sort Fish // define the Comparator class class FishComparator implements Comparator<Fish> public int compare(fish f1, Fish f2) { int dx = f1.x - f2.x; int dy = f1.y - f2.y; int dz = f1.z - f2.z; return dx==0? dy==0? dz : dy : dx; // Use an instance of the FishComparator to sort Fish List<Fish> fish = getrandomfish(10); FishComparator fishcomparator = new FishComparator(); Collections.sort( fish, fishcomparator ); Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 5

6 Anonymous Inner Classes CS 400 Programming III define a class don't give the class a name can give an instance created with it a name means we can only create an instance of our class in one place inside something (inner) // ANON INNER CLASS - class is anonymous, instance has a name static final Comparator<Fish> FISH_COMPARATOR = new Comparator<Fish>() public int compare(fish f1, Fish f2) { int dx = f1.x - f2.x; int dy = f1.y - f2.y; int dz = f1.z - f2.z; return dx==0? dy==0? dz : dy : dx; ; /** * Create and use a Comparator created as an ANONYMOUS INNER CLASS * * NOTE: FishComparator class is not needed for this example to work */ public static void example2_anonymous_inner_class() { List<Fish> fish = getrandomfish(10); System.out.println("not sorted: " + fish); Collections.sort(fish, ); // PUT ANONYMOUS INNER CLASS HERE new Comparator<Fish>() public int compare(fish f1, Fish f2) { int dx = f1.x - f2.x; int dy = f1.y - f2.y; int dz = f1.z - f2.z; return dx==0? dy==0? dz : dy : dx; System.out.println("after sort: " + fish); Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 6

7 CS 400 Programming III Java 8 Lambda Expressions Lambda Expressions create instances of functional interfaces use a L.E. when you need an instance of a functional interface type in only one place. the instance is not named the type of the instance is not named either the interface type is inferred by the target type for the instance. "L.E.s PASS BEHAVIOR not data" 1. Define a Functional Interface named ValueGenerator interface ValueGenerator { int getnextvalue(int prev); 2. Define a method that uses the functional interface ValueGenerator static int [] getsequence(valuegenerator vgen, int v0, int n) { int [] list = new int[n]; for (int i=0; i < n; i++) list[i] = v0 = vgen.getnextvalue(v0); return list; 3. Use a Lambda Expression to create instance & generate sequences public static void main(string [] args) { int[] s1 = getsequence( x ->{return x+1;, 0, 3 ); int[] s2 = getsequence( k ->{return k-1;, -3, 7 ); int[] s3 = getsequence( (v0)->{return (int)(math.random()*50)+v0;,0,5); System.out.println("seq1="+Arrays.toString(s1)); System.out.println("seq2="+Arrays.toString(s2)); System.out.println("seq3="+Arrays.toString(s3)); Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 7

8 Lambda Expression Fill-In-The-Blank (Summary) CS 400 Programming III lambda expressions must be associated with a functional interface functional interface defines a target or context for lambda expression lambda expression defines the behavior of the function for that instance convenient (shorter syntax) for when a single unnamed instance is needed (e.g. EventHandler in JavaFX) Streams Allows you to process data in a declarative way. Bonus: can leverage multi-core processors w/o writing multi-threaded code Example: get all lines of file into a list non-empty, trimmed, upper-case Strings Get Word List from a File In Java 7: get word list List<String> wordlist = new ArrayList<String>(); File file = new File(filename); Scanner filescnr = new Scanner(file); while ( filescnr.hasnextline() ) { String line = filescnr.nextline(); if ( line!= null &&! line.equals("")) { wordlist.add(line.trim().touppercase()); In Java 8: WordProcessor.getWordStream() Stream<String> = Files.lines(Paths.get(filepath)) // get lines from the file.filter( x -> x!= null && x!= "" ) // keep non empty lines.map(string::tostring) // convert to String.map(String::trim) // trim whitespace from start and end.map(string::touppercase); // convert to upper case Copyright 2018 Deb Jim Skrentny CS 400 (S18): W11T - 8

Week 12 Thursday. For milestone #2 and #3, also submit a screenshot of your GUI once it is launched.

Week 12 Thursday. For milestone #2 and #3, also submit a screenshot of your GUI once it is launched. Week 12 Thursday D-Teams have been created Create your A-Team by Friday, or let me know to assign you earlier. Team Project: Tournament-Bracket (D-Team 30 pts) Milestone #1: due before 10pm THIS Friday,

More information

Week 10 Tuesday. CS 400 Programming III. X-Team Exercise #4: due before 10pm on April 16th

Week 10 Tuesday. CS 400 Programming III. X-Team Exercise #4: due before 10pm on April 16th Week 10 Tuesday X-Team Exercise #4: due before 10pm on April 16th Team Project: Tournament-Bracket (D-Team 30pts) Milestone #1: due before 10pm April 20 th (A-Team 20pts) Milestone #2: due before 10pm

More information

Week 11. CS 400 Programming III. Program 4: due before 10pm on Monday 11/19

Week 11. CS 400 Programming III. Program 4: due before 10pm on Monday 11/19 Week 11 Program 4: due before 10pm on Monday 11/19 Team Project: Food Query and Meal Analysis (D-Team 30pts) Milestone #1: due before 10pm Nov 16 th (A-Team 20pts) Milestone #2: due before 10pm Nov 26

More information

Week 14 Thursday (Last Lecture)

Week 14 Thursday (Last Lecture) Week 14 Thursday (Last Lecture) Final Exam Friday, May 11th, 7:45 am to 9:45 am Lec 1 & 2: room 272 of Bascom Hall UW ID required Makeup exam emails sent See posted exam information (exam topics and latest

More information

MIDTERM EXAM THURSDAY MARCH

MIDTERM EXAM THURSDAY MARCH Week 6 Assignments: Program 2: is being graded Program 3: available soon and due before 10pm on Thursday 3/14 Homework 5: available soon and due before 10pm on Monday 3/4 X-Team Exercise #2: due before

More information

Week 2. CS 400 Programming III. Read: Module 2 readings before lecture

Week 2. CS 400 Programming III. Read: Module 2 readings before lecture Week 2 Waitlisted Students: please come to front of class and sign by your name on waitlist. TopHat Join Code for my lecture: Announcements and Course Policies: https://pages.cs.wisc.edu/~deppeler/cs400/

More information

Week 13 Thursday (with Page 5 corrections)

Week 13 Thursday (with Page 5 corrections) Week 13 Thursday (with Page 5 corrections) Quizzes: HTML/CSS and JS available and due before 10 pm next Tuesday, May 1 st. You may do your own web research to answer, but do not ask classmates, friends,

More information

Week 2. TA Lab Consulting - See schedule (cs400 home pages) Peer Mentoring available - Friday 8am-12pm, 12:15-1:30pm in 1289CS

Week 2. TA Lab Consulting - See schedule (cs400 home pages) Peer Mentoring available - Friday 8am-12pm, 12:15-1:30pm in 1289CS ASSIGNMENTS h0 available and due before 10pm on Monday 1/28 h1 available and due before 10pm on Monday 2/4 p1 available and due before 10pm on Thursday 2/7 Week 2 TA Lab Consulting - See schedule (cs400

More information

CS 200 Arrays, Loops and Methods Jim Williams, PhD

CS 200 Arrays, Loops and Methods Jim Williams, PhD CS 200 Arrays, Loops and Methods Jim Williams, PhD This Week 1. Team Lab: Arrays and Hangman a. drawing diagrams (bring paper and pencil) 2. BP1 Milestone 1 due Thursday 3. Lecture: More Arrays and Methods

More information

CS 211: Potpourri Enums, Packages, Unit Tests, Multi-dimensional Arrays Command Line Args

CS 211: Potpourri Enums, Packages, Unit Tests, Multi-dimensional Arrays Command Line Args CS 211: Potpourri Enums, Packages, Unit Tests, Multi-dimensional Arrays Command Line Args Chris Kauffman Week 9-1 Front Matter This Week Mon: Potpourri Wed: Exceptions Thu: Lab 09 Task Today P4 Packages

More information

Java SE 8: Lambda Expressions And The Stream API

Java SE 8: Lambda Expressions And The Stream API Java SE 8: Lambda Expressions And The Stream API Simon Ritter Head of Java Technology Evangelism Java Product Management Java Day Tokyo 2015 April 8, 2015 Safe Harbor Statement The following is intended

More information

Cosc 241 Programming and Problem Solving Lecture 9 (26/3/18) Collections and ADTs

Cosc 241 Programming and Problem Solving Lecture 9 (26/3/18) Collections and ADTs 1 Cosc 241 Programming and Problem Solving Lecture 9 (26/3/18) Collections and ADTs Michael Albert michael.albert@cs.otago.ac.nz Keywords: abstract data type, collection, generic class type, stack 2 Collections

More information

Week 9. CS 400 Programming III

Week 9. CS 400 Programming III Week 9 p3b: final submission due before 10pm on Thursday, 3/28 p4: available soon x4: due before 10pm on Monday 4/1 x5: meet with x-team coach for design review 4/1-4/8 Module: Week 9 (and start on week

More information

H212 Introduction to Software Systems Honors

H212 Introduction to Software Systems Honors Introduction to Software Systems Honors Lecture #04: Fall 2015 1/20 Office hours Monday, Wednesday: 10:15 am to 12:00 noon Tuesday, Thursday: 2:00 to 3:45 pm Office: Lindley Hall, Room 401C 2/20 Printing

More information

Lambdas in Java 8. Start programming in a more functional style

Lambdas in Java 8. Start programming in a more functional style Lambdas in Java 8 Start programming in a more functional style Background Who am I? Tobias Coetzee I m a Technical Lead at BBD I present the Java Expert Level Certifications at BBD (EJB, JPA, etc.) I m

More information

ASSIGNMENT 5 Objects, Files, and a Music Player

ASSIGNMENT 5 Objects, Files, and a Music Player ASSIGNMENT 5 Objects, Files, and a Music Player COMP-202A, Fall 2009, All Sections Due: Thursday, December 3, 2009 (23:55) You MUST do this assignment individually and, unless otherwise specified, you

More information

CS Introduction to Data Structures Week 1 Thursday

CS Introduction to Data Structures Week 1 Thursday CS 367 - Introduction to Data Structures Week 1 Thursday We assume that you are proficient at object-oriented programming in Java. Please enroll in CS300 if you do not know Java and have not written object-oriented

More information

Notable Enhancements in Java 8. Functional Programming with Java. Lambda Expressions in Java. How to Define a Lambda Expression? Lambda expressions

Notable Enhancements in Java 8. Functional Programming with Java. Lambda Expressions in Java. How to Define a Lambda Expression? Lambda expressions Notable Enhancements in Java 8 Lambda expressions Allow you to do functional programming in Java Functional Programming with Java Static and default methods in interfaces 1 2 Lambda Expressions in Java

More information

Week 3 Web site:

Week 3 Web site: Week 3 Web site: https://pages.cs.wisc.edu/~deppeler/cs400/ (announcements and resources) Canvas: https://canvas.wisc.edu/ (modules, assignments, grades) Top Hat join code: X-Team Exercise #1: (in-class

More information

CS 455 Midterm Exam 1 Fall 2017 [Bono] Thursday, Sep. 28, 2017

CS 455 Midterm Exam 1 Fall 2017 [Bono] Thursday, Sep. 28, 2017 Name: USC NetID (e.g., ttrojan): CS 455 Midterm Exam 1 Fall 2017 [Bono] Thursday, Sep. 28, 2017 There are 6 problems on the exam, with 55 points total available. There are 10 pages to the exam (5 pages

More information

ASSIGNMENT 5 Objects, Files, and More Garage Management

ASSIGNMENT 5 Objects, Files, and More Garage Management ASSIGNMENT 5 Objects, Files, and More Garage Management COMP-202B, Winter 2010, All Sections Due: Wednesday, April 14, 2009 (23:55) You MUST do this assignment individually and, unless otherwise specified,

More information

Review: Using Imported Code. What About the DrawingGizmo? Review: Classes and Object Instances. DrawingGizmo pencil; pencil = new DrawingGizmo();

Review: Using Imported Code. What About the DrawingGizmo? Review: Classes and Object Instances. DrawingGizmo pencil; pencil = new DrawingGizmo(); Review: Using Imported Code Class #06: Objects, Memory, & Program Traces Software Engineering I (CS 120): M. Allen, 30 Jan. 2018 ; = new ();.setbackground( java.awt.color.blue );.setforeground( java.awt.color.yellow

More information

Week 6 CS 302. Jim Williams, PhD

Week 6 CS 302. Jim Williams, PhD Week 6 CS 302 Jim Williams, PhD This Week Lab: Multi-dimensional Arrays Exam 1: Thursday Lecture: Methods Review Midterm Exam 1 What is the location of the exam? 3650 Humanities 125 Ag Hall 272 Bascom

More information

Bjarne Stroustrup. creator of C++

Bjarne Stroustrup. creator of C++ We Continue GEEN163 I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone. Bjarne Stroustrup creator

More information

CS 11 java track: lecture 1

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

More information

S206E Lecture 19, 5/24/2016, Python an overview

S206E Lecture 19, 5/24/2016, Python an overview S206E057 Spring 2016 Copyright 2016, Chiu-Shui Chan. All Rights Reserved. Global and local variables: differences between the two Global variable is usually declared at the start of the program, their

More information

CS 61B Discussion 5: Inheritance II Fall 2018

CS 61B Discussion 5: Inheritance II Fall 2018 CS 61B Discussion 5: Inheritance II Fall 2018 1 Inheritance Practice public class Q { public void a() { System.out.println("Q.a"); public void b() { a(); public void c() { public void d() { public static

More information

Tutorial 2 Today we will have a quick introduction to ArgoUML and how to use it, as well as look at some examples of class diagrams.

Tutorial 2 Today we will have a quick introduction to ArgoUML and how to use it, as well as look at some examples of class diagrams. Tutorial 2 Today we will have a quick introduction to ArgoUML and how to use it, as well as look at some examples of class diagrams. This is an answer sheet, answers are marked in RED. Quiz dates: Quiz

More information

Software and Programming 1

Software and Programming 1 Software and Programming 1 Lab 1: Introduction, HelloWorld Program and use of the Debugger 17 January 2019 SP1-Lab1-2018-19.pptx Tobi Brodie (tobi@dcs.bbk.ac.uk) 1 Module Information Lectures: Afternoon

More information

CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall Office hours:

CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall Office hours: CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM 12:00 PM * Wednesday 4:00 PM 5:00 PM Friday 11:00 AM 12:00 PM OR

More information

CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall Office hours:

CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall Office hours: CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM 12:00 PM * Wednesday 4:00 PM 5:00 PM Friday 11:00 AM 12:00 PM OR

More information

CS 200 File Input and Output Jim Williams, PhD

CS 200 File Input and Output Jim Williams, PhD CS 200 File Input and Output Jim Williams, PhD This Week 1. WaTor Change Log 2. Monday Appts - may be interrupted. 3. Optional Lab: Create a Personal Webpage a. demonstrate to TA for same credit as other

More information

LAMBDA EXPRESSIONS AND STREAMS API

LAMBDA EXPRESSIONS AND STREAMS API Java 8 LAMBDA EXPRESSIONS AND STREAMS API An Introduction Methods As Data 2 @FunctionalInterface public interface Runnable { public abstract void run(); public interface ActionListener extends EventListener

More information

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Introduction to Lambda Stuart W. Marks Principal Member of Technical Staff Oracle JDK Core Libraries Team Twitter: @stuartmarks What is a Lambda? A lambda is a function. A function is a computation that

More information

COS 126 Exam Review. Exams overview Example programming exam Example written exam questions (part 1)

COS 126 Exam Review. Exams overview Example programming exam Example written exam questions (part 1) COS 126 Exam Review Exams overview Example programming exam Example written exam questions (part 1) Exams overview (revisited) We have exams in the fall Two written exams. Two programming exams. Prep sessions

More information

Timing for Interfaces and Abstract Classes

Timing for Interfaces and Abstract Classes Timing for Interfaces and Abstract Classes Consider using abstract classes if you want to: share code among several closely related classes declare non-static or non-final fields Consider using interfaces

More information

CS11 Advanced C++ Fall Lecture 4

CS11 Advanced C++ Fall Lecture 4 CS11 Advanced C++ Fall 2006-2007 Lecture 4 Today s Topics Using make to automate build tasks Using doxygen to generate API docs Build-Automation Standard development cycle: Write more code Compile Test

More information

CS 200 Command-Line Arguments & Exceptions Jim Williams, PhD

CS 200 Command-Line Arguments & Exceptions Jim Williams, PhD CS 200 Command-Line Arguments & Exceptions Jim Williams, PhD This Week 1. Battleship: Milestone 3 a. First impressions matter! b. Comment and style 2. Team Lab: ArrayLists 3. BP2, Milestone 1 next Wednesday

More information

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2. Class #10: Understanding Primitives and Assignments Software Design I (CS 120): M. Allen, 19 Sep. 18 Java Arithmetic } Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = 2 + 5 / 2; 3.

More information

Homework Six. A201/A597/I210 Spring Semester 2005

Homework Six. A201/A597/I210 Spring Semester 2005 Homework Six A201/A597/I210 Spring Semester 2005 Due in OnCourse by Friday, March 11, 11:59pm (No wrten report is due in class, read below details!) Abstract Wre programs that solve 5 of the problems below

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 27 March 28, 2018 Java Generics Collections and Equality Chapters 25 & 26 Announcements HW7: Chat Server Available on Codio / Instructions on the web

More information

COMP-202 Unit 9: Exceptions

COMP-202 Unit 9: Exceptions COMP-202 Unit 9: Exceptions Announcements - Assignment 4: due Monday April 16th - Assignment 4: tutorial - Final exam tutorial next week 2 Exceptions An exception is an object that describes an unusual

More information

CMPS 12M Winter 2018 Lab 1 Due: Monday January 11:59pm

CMPS 12M Winter 2018 Lab 1 Due: Monday January 11:59pm CMPS 12M Winter 2018 Lab 1 Due: Monday January 15 @ 11:59pm The purpose of this assignment is threefold: (1) get a basic introduction to the Andrew File System (AFS) which is the file system used by the

More information

Wrapper Classes double pi = new Double(3.14); 3 double pi = new Double("3.14"); 4... Zheng-Liang Lu Java Programming 290 / 321

Wrapper Classes double pi = new Double(3.14); 3 double pi = new Double(3.14); 4... Zheng-Liang Lu Java Programming 290 / 321 Wrapper Classes To treat values as objects, Java supplies standard wrapper classes for each primitive type. For example, you can construct a wrapper object from a primitive value or from a string representation

More information

Check out FilesAndExceptions from SVN. Exam 2 Review File I/O, Exceptions Vector Graphics Project

Check out FilesAndExceptions from SVN. Exam 2 Review File I/O, Exceptions Vector Graphics Project Check out FilesAndExceptions from SVN Exam 2 Review File I/O, Exceptions Vector Graphics Project Exam 2 review File I/O and Exceptions Vector Graphics project kickoff Exam is in class tomorrow Test on

More information

Assignment 2. Summary. Some Important bash Instructions. CSci132 Practical UNIX and Programming Assignment 2, Fall Prof.

Assignment 2. Summary. Some Important bash Instructions. CSci132 Practical UNIX and Programming Assignment 2, Fall Prof. Assignment 2 Summary The purpose of this assignment is to give you some practice in bash scripting. When you write a bash script, you are really writing a program in the bash programming language. In class

More information

CS Introduction to Data Structures Week 5, 2017

CS Introduction to Data Structures Week 5, 2017 CS 367 - Introduction to Data Structures Week 5, 2017 Homework h2 graded. Email TA (di3@wisc.edu) by Tuesday, July 18 th - 5 pm. Homework h4 posted, complete as soon as possible; Due by Sunday, July 23

More information

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

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

More information

PROGRAMMING STYLE. Fundamentals of Computer Science I

PROGRAMMING STYLE. Fundamentals of Computer Science I PROGRAMMING STYLE Fundamentals of Computer Science I Documentation and Style: Outline Meaningful Names Comments Indentation Named Constants Whitespace Compound Statements Documentation and Style Most programs

More information

PART ONE CREATING THE BOARD AND MAIN SPRITES

PART ONE CREATING THE BOARD AND MAIN SPRITES PART ONE CREATING THE BOARD AND MAIN SPRITES SETTING UP THE WINDOW Create a new basic JavaFX application. Use a Group for the main layout. When setting the scene, ensure the basic window is 800 by 600.

More information

Two Types of Types. Primitive Types in Java. Using Primitive Variables. Class #07: Java Primitives. Integer types.

Two Types of Types. Primitive Types in Java. Using Primitive Variables. Class #07: Java Primitives. Integer types. Class #07: Java Primitives Software Design I (CS 120): M. Allen, 13 Sep. 2018 Two Types of Types So far, we have mainly been dealing with objects, like DrawingGizmo, Window, Triangle, that are: 1. Specified

More information

Array Basics: Outline. Creating and Accessing Arrays. Creating and Accessing Arrays. Arrays (Savitch, Chapter 7)

Array Basics: Outline. Creating and Accessing Arrays. Creating and Accessing Arrays. Arrays (Savitch, Chapter 7) Array Basics: Outline Arrays (Savitch, Chapter 7) TOPICS Array Basics Arrays in Classes and Methods Programming with Arrays Searching and Sorting Arrays Multi-Dimensional Arrays Static Variables and Constants

More information

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:

More information

CS 116. Lab Assignment # 1 1

CS 116. Lab Assignment # 1 1 Points: 2 Submission CS 116 Lab Assignment # 1 1 o Deadline: Friday 02/05 11:59 PM o Submit on Blackboard under assignment Lab1. Please make sure that you click the Submit button and not just Save. Late

More information

Exceptions and Libraries

Exceptions and Libraries Exceptions and Libraries RS 9.3, 6.4 Some slides created by Marty Stepp http://www.cs.washington.edu/143/ Edited by Sarah Heckman 1 Exceptions exception: An object representing an error or unusual condition.

More information

Data Structures (CS 102), Professor Yap Spring 2015 MIDTERM. April 19, 2015

Data Structures (CS 102), Professor Yap Spring 2015 MIDTERM. April 19, 2015 Data Structures (CS 102), Professor Yap Spring 2015 MIDTERM April 19, 2015 QUESTION 1. SHORT QUESTIONS (5 Points each part = 50 Points). (a) (5 Points for each error) This Java program has two errors.

More information

References and objects

References and objects References and objects Arrays and objects use reference semantics. Why? efficiency. Copying large objects slows down a program. sharing. It's useful to share an object's data among methods. DrawingPanel

More information

Worksheet 3: Predictive Text Entry

Worksheet 3: Predictive Text Entry Worksheet 3: Predictive Text Entry MSc & ICY Software Workshop, Spring term 2015-16 Seyyed Shah and Uday Reddy Assigned: Tuesday 2 February Intermediate deadline : parts 1 and 2, Tuesday 9th February,

More information

Abstract. 1. What is an ABSTRACT METHOD? 2. Why you would want to declare a method as abstract? 3. A non-abstract CLASS is called a concrete class

Abstract. 1. What is an ABSTRACT METHOD? 2. Why you would want to declare a method as abstract? 3. A non-abstract CLASS is called a concrete class ABSTRACT 2 1. What is an ABSTRACT METHOD? 2 2. Why you would want to declare a method as abstract? 2 3. A non-abstract CLASS is called a concrete class 2 4. Abstract Example 2 5. If you are extending ABSTRACT

More information

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

More information

Converting Collections to Arrays. A Bad Approach to Array Conversion. A Better Approach to Array Conversion. public Object[] toarray();

Converting Collections to Arrays. A Bad Approach to Array Conversion. A Better Approach to Array Conversion. public Object[] toarray(); Converting Collections to Arrays Every Java collection can be converted to an array This is part of the basic Collection interface The most elementary form of this method produces an array of base-type

More information

More Examples Using Functions and Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #6

More Examples Using Functions and Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #6 More Examples Using Functions and Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB

More information

CS Homework 11

CS Homework 11 CS 328 - Homework 11 p. 1 Deadline CS 328 - Homework 11 Problem 4 (presenting something operational from Problem 3) is due during lab on Friday, April 29; the remainder of this homework is due by 11:59

More information

Lecture 12. Data Types and Strings

Lecture 12. Data Types and Strings Lecture 12 Data Types and Strings Class v. Object A Class represents the generic description of a type. An Object represents a specific instance of the type. Video Game=>Class, WoW=>Instance Members of

More information

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

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

More information

ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists

ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists COMP-202B, Winter 2009, All Sections Due: Tuesday, April 14, 2009 (23:55) You MUST do this assignment individually and, unless otherwise

More information

Lecture 4. Log into Linux Reminder: Homework 1 due today, 4:30pm Homework 2 out, due next Tuesday Project 1 out, due next Thursday Questions?

Lecture 4. Log into Linux Reminder: Homework 1 due today, 4:30pm Homework 2 out, due next Tuesday Project 1 out, due next Thursday Questions? Lecture 4 Log into Linux Reminder: Homework 1 due today, 4:30pm Homework 2 out, due next Tuesday Project 1 out, due next Thursday Questions? Tuesday, September 7 CS 375 UNIX System Programming - Lecture

More information

Programming in Java Prof. Debasis Samanta Department of Computer Science Engineering Indian Institute of Technology, Kharagpur

Programming in Java Prof. Debasis Samanta Department of Computer Science Engineering Indian Institute of Technology, Kharagpur Programming in Java Prof. Debasis Samanta Department of Computer Science Engineering Indian Institute of Technology, Kharagpur Lecture 04 Demonstration 1 So, we have learned about how to run Java programs

More information

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently.

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple movie data system. Milestones: 1. Use

More information

ICOM 4015-Advanced Programming. Spring Instructor: Dr. Amir H. Chinaei. TAs: Hector Franqui, Jose Garcia, and Antonio Tapia. Reference: Big Java

ICOM 4015-Advanced Programming. Spring Instructor: Dr. Amir H. Chinaei. TAs: Hector Franqui, Jose Garcia, and Antonio Tapia. Reference: Big Java ICOM 4015-Advanced Programming Spring 2014 Instructor: Dr. Amir H. Chinaei TAs: Hector Franqui, Jose Garcia, and Antonio Tapia Reference: Big Java By Hortsmann, Ed 4 Lab 7 Continuation of HTTP and Introduction

More information

Announcements. 1. Forms to return today after class:

Announcements. 1. Forms to return today after class: Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.

More information

CS Introduction to Data Structures Week 4, 2017

CS Introduction to Data Structures Week 4, 2017 CS 367 - Introduction to Data Structures Week 4, 2017 Midterm Exam 1 Friday July 14 th, 11:00 am to 1:00 pm, CS1240 UW ID required See posted exam information Make up exam scheduled Program 1: Due 10 pm

More information

Review: Classes and Object Instances. Review: Creating an Object. Using Multiple Objects. DrawingGizmo pencil; pencil = new DrawingGizmo();

Review: Classes and Object Instances. Review: Creating an Object. Using Multiple Objects. DrawingGizmo pencil; pencil = new DrawingGizmo(); Review: Classes and Object Instances ; = new (); Class #05: Objects, Memory, & Program Traces Software Engineering I (CS 120): M. Allen, 12/13 Sept. 17 We are working with both a class () and an object

More information

Software and Programming 1

Software and Programming 1 Software and Programming 1 Lab 1: Introduction, HelloWorld Program and use of the Debugger 11 January 2018 SP1-Lab1-2017-18.pptx Tobi Brodie (tobi@dcs.bbk.ac.uk) 1 Module Information Lectures: Afternoon

More information

CS18000: Programming I

CS18000: Programming I CS18000: Programming I Testing Basics 19 April 2010 Prof. Chris Clifton Testing Programs Your programs are getting large and more complex How do you make sure they work? 1. Reason about the program Think

More information

LinkedList Implementation Mini-project intro

LinkedList Implementation Mini-project intro LinkedList Implementation Mini-project intro Turn in your written problems Mini-project Partner Survey: Do it by 4:00 today Reminder: Exam #2 is this Thursday In order to reduce time pressure, you optionally

More information

CS 211: Using ArrayList, Implementing Arraylist

CS 211: Using ArrayList, Implementing Arraylist CS 211: Using ArrayList, Implementing Arraylist Chris Kauffman Week 12-1 Collections Java has a nice library of containers, Collections framework Interfaces that provide get, set, add methds, conversion

More information

Bash shell programming Part II Control statements

Bash shell programming Part II Control statements Bash shell programming Part II Control statements Deniz Savas and Michael Griffiths 2005-2011 Corporate Information and Computing Services The University of Sheffield Email M.Griffiths@sheffield.ac.uk

More information

Object Oriented Programming and Design in Java. Session 2 Instructor: Bert Huang

Object Oriented Programming and Design in Java. Session 2 Instructor: Bert Huang Object Oriented Programming and Design in Java Session 2 Instructor: Bert Huang Announcements TA: Yipeng Huang, yh2315, Mon 4-6 OH on MICE clarification Next Monday's class canceled for Distinguished Lecture:

More information

CS 316 (Kong): TinyJ Assignment 1

CS 316 (Kong): TinyJ Assignment 1 CS 316 (Kong): TinyJ Assignment 1 To be submitted no later than: Thursday, May 3. [Note: I expect euclid to be up until midnight that evening, but there is no guarantee that it will be: If euclid unexpectedly

More information

CS453 Compiler Construction

CS453 Compiler Construction CS453 Compiler Construction Original Design: Michelle Strout Instructor: Wim Bohm wim.bohm@gmail.com, bohm@cs.colostate.edu Computer Science Building 344 Office hour: Monday 1-2pm TA: Andy Stone aistone@gmail.com,

More information

Administration. Classes. Objects Part II. Agenda. Review: Object References. Object Aliases. CS 99 Summer 2000 Michael Clarkson Lecture 7

Administration. Classes. Objects Part II. Agenda. Review: Object References. Object Aliases. CS 99 Summer 2000 Michael Clarkson Lecture 7 Administration Classes CS 99 Summer 2000 Michael Clarkson Lecture 7 Lab 7 due tomorrow Question: Lab 6.equals( SquareRoot )? Lab 8 posted today Prelim 2 in six days! Covers two weeks of material: lectures

More information

COMP-202: Foundations of Programming. Lecture 8: for Loops, Nested Loops and Arrays Jackie Cheung, Winter 2016

COMP-202: Foundations of Programming. Lecture 8: for Loops, Nested Loops and Arrays Jackie Cheung, Winter 2016 COMP-202: Foundations of Programming Lecture 8: for Loops, Nested Loops and Arrays Jackie Cheung, Winter 2016 Review What is the difference between a while loop and an if statement? What is an off-by-one

More information

Getting It Right COMS W4115. Prof. Stephen A. Edwards Spring 2007 Columbia University Department of Computer Science

Getting It Right COMS W4115. Prof. Stephen A. Edwards Spring 2007 Columbia University Department of Computer Science Getting It Right COMS W4115 Prof. Stephen A. Edwards Spring 2007 Columbia University Department of Computer Science Getting It Right Your compiler is a large software system developed by four people. How

More information

CS160A EXERCISES-FILTERS2 Boyd

CS160A EXERCISES-FILTERS2 Boyd Exercises-Filters2 In this exercise we will practice with the Unix filters cut, and tr. We will also practice using paste, even though, strictly speaking, it is not a filter. In addition, we will expand

More information

Floating-point lab deadline moved until Wednesday Today: characters, strings, scanf Characters, strings, scanf questions clicker questions

Floating-point lab deadline moved until Wednesday Today: characters, strings, scanf Characters, strings, scanf questions clicker questions Announcements Thursday Extras: CS Commons on Thursdays @ 4:00 pm but none next week No office hours next week Monday or Tuesday Reflections: when to use if/switch statements for/while statements Floating-point

More information

More on Arrays CS 16: Solving Problems with Computers I Lecture #13

More on Arrays CS 16: Solving Problems with Computers I Lecture #13 More on Arrays CS 16: Solving Problems with Computers I Lecture #13 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #12 due today No homework assigned today!! Lab #7 is due on Monday,

More information

P2: Advanced Java & Exam Preparation

P2: Advanced Java & Exam Preparation P2: Advanced Java & Exam Preparation Claudio Corrodi May 18 2018 1 Java 8: Default Methods public interface Addressable { public String getstreet(); public String getcity(); public String getfulladdress();

More information

What are Generics? e.g. Generics, Generic Programming, Generic Types, Generic Methods

What are Generics? e.g. Generics, Generic Programming, Generic Types, Generic Methods What are Generics? e.g. Generics, Generic Programming, Generic Types, Generic Methods 6 Defining the idea Behind Java Generics Data Types are now used as TypeParameters 7 Defining the idea Behind Java

More information

CS61C Machine Structures. Lecture 3 Introduction to the C Programming Language. 1/23/2006 John Wawrzynek. www-inst.eecs.berkeley.

CS61C Machine Structures. Lecture 3 Introduction to the C Programming Language. 1/23/2006 John Wawrzynek. www-inst.eecs.berkeley. CS61C Machine Structures Lecture 3 Introduction to the C Programming Language 1/23/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L03 Introduction to C (1) Administrivia

More information

Topic 2: More Shell Skills

Topic 2: More Shell Skills Topic 2: More Shell Skills Sub-topics: simple shell scripts (no ifs or loops yet) sub-shells quoting shell variables aliases bash initialization files I/O redirection & pipes text file formats 1 Reading

More information

We d like to hear your suggestions for improving our indexes. Send to

We d like to hear your suggestions for improving our indexes. Send  to Index [ ] (brackets) wildcard, 12 { } (curly braces) in variables, 41 ( ) (parentheses) in variables, 41 += (append) operator, 45 * (asterisk) wildcard, 12 $% automatic variable, 16 $+ automatic variable,

More information

Every language has its own scoping rules. For example, what is the scope of variable j in this Java program?

Every language has its own scoping rules. For example, what is the scope of variable j in this Java program? Lexical Binding There are two ways a variable can be used in a program: As a declaration As a "reference" or use of the variable Scheme has two kinds of variable "declarations" -- the bindings of a let-expression

More information

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments. Java How to Program, 9/e Education, Inc. All Rights Reserved. } Java application programming } Use tools from the JDK to compile and run programs. } Videos at www.deitel.com/books/jhtp9/ Help you get started

More information

CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation

CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation The Project CS 4218 covers the concepts and practices of software testing and debugging. An important portion

More information

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Interfaces vs. Inheritance Abstract Classes Inner Classes Readings This Week: No new readings. Consolidate! (Reminder: Readings

More information

Functional Programming in Java Part 2. CSE 219 Department of Computer Science, Stony Brook University

Functional Programming in Java Part 2. CSE 219 Department of Computer Science, Stony Brook University Functional Programming in Java Part 2 CSE 219, Stony Brook University Functions as Objects The interface java.util.function.function To store a function (i.e., take a single argument and returns a

More information

CS Week 2. Jim Williams, PhD

CS Week 2. Jim Williams, PhD CS 200 - Week 2 Jim Williams, PhD Society of Women Engineers "Not just for women and not just for engineers; all students are welcome. We are especially looking for more computer science students!" - Emile

More information

Introduction to Functional Programming in Java 8

Introduction to Functional Programming in Java 8 1 Introduction to Functional Programming in Java 8 Java 8 is the current version of Java that was released in March, 2014. While there are many new features in Java 8, the core addition is functional programming

More information

CS312: Programming Languages. Lecture 21: JavaScript

CS312: Programming Languages. Lecture 21: JavaScript CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig Thomas Dillig, CS312: Programming Languages Lecture 21: JavaScript 1/25 Why Discuss JavaScript? JavaScript is very widely used and growing

More information