Whether to Include Java 8 Features in Introductory CS Courses
|
|
- Georgia Jordan
- 5 years ago
- Views:
Transcription
1 CCSC Eastern Conference 2015 Tutorial Whether to Include Java 8 Features in Introductory CS Courses James Heliotis Computer Science Rochester Inst. of Technology jeh@cs.rit.edu 1
2 Our History in Java Education 1994: Beginning of OO 1st-year curriculum (Eiffel, C++) 1998: Switch to Java (C++ in 2nd year) st two quarters in Python (algs & data structs) 3rd quarter in Java 2013: Semesters: CS1-Python; CS2-Java 2
3 Early Adoption Swing Scanner Generics New for loop 3
4 Late Adoption enum just the C style, no advanced features packages 4
5 We do not include Annotations except Override java.util.concurrent assert (But a few of us encourage its use.) 5
6 Development Tools Originally, javac/java and emacs Recently, Eclipse, with CVS Currently, IntelliJ IDEA, with git (not github) (and PyCharm for Python) 6
7 Part 1: New Features Functional Interfaces and Lambda Expressions Default Methods in Interfaces JavaFX 7
8 1a. Functional Interfaces & Lambdas 8
9 Functional Interface: A Common Property Interfaces like ActionListener, Runnable, Comparable, and Comparator have a single abstract method (Functional interfaces used to be called SAMs.) For these cases we simply have a syntax issue called a vertical problem: 5 lines of code for one statement 9
10 A Quick Example new Thread( new Runnable() { public void run() { sendnotification(); } } ).start(); new Thread(() -> sendnotification() ).start(); 10
11 Let s break this down. The important thing to remember is that this is not a new feature of the Java Virtual Machine. It is a syntactic shorthand. Other examples Java generics: the casts you did at the turn of the century still happen at run time. For each loop: Iterator methods still called under the hood. 11
12 A Sample Class class Person { } private String name; private int age; public Person( String n, int a ) { name = n; age = a; public int hashcode() { /* */ public boolean equals( Object o ) { /* */ public String tostring() { return name + '[' + age + ']'; } public boolean maydrink() { return age >= 21; } 12
13 Setup Code Iterable< Person > people = new HashSet< Person >(); people.add( new Person( "Alice", 20 ) ); people.add( new Person( "Bob", 22 ) ); people.add( new Person( "Carol", 21 ) ); people.add( new Person( "Dan", 18 ) ); 13
14 Example F.I.: Consumer interface Consumer< T > { public abstract void accept( T t ); // Default methods not shown. } 14
15 Iterable no longer just makes Iterators interface Iterable< T > { Iterator<T> iterator(); public void foreach( Consumer< T > ); } 15
16 Iterable.forEach needs Consumer interface Consumer< T > { } public abstract void accept( T t ); // How it normally works: public void foreach( Consumer< T > ){ for ( T t: this ) { action.accept( t ); } } 16
17 A Printing Consumer class PersonPrinter implements Consumer< Person > { public void accept( Person p ) { } System.out.println( p ); 17
18 Rewriting Action people.foreach( new PersonPrinter() ); // See foreach in Iterable interface. Dan[18] Bob[22] Alice[20] Carol[21] 18
19 Nested Anonymous Class people.foreach( new Consumer<Person>() { public void accept( Person p ) { System.out.println( p ); } }); Dan[18] Bob[22] Alice[20] Carol[21] 19
20 Lambda #1 people.foreach( ( Person p ) -> { System.out.println( p ); } ); Dan[18] Bob[22] Alice[20] Carol[21] 20
21 Lambda #2 people.foreach( p -> System.out.println( p ) ); Dan[18] Bob[22] Alice[20] Carol[21] 21
22 Lambda #3 people.foreach( ); System.out::println Dan[18] Bob[22] Alice[20] Carol[21] (This is called a method reference.) 22
23 Condensing... people.foreach( new Consumer<Person>() { public void accept( Person p ) { System.out.println( p ); }}); people.foreach( (Person p) -> { System.out.println(p) ); } people.foreach( p -> System.out.println(p) ); people.foreach( System.out::println ); 23
24 Exercise Using Person.java, modify it so that the TreeSet is sorted by age. (Don t bother with secondary name sorting.) I reassert: its not about loops. Loops are dead, the OS handles that. Better to know how to enumerate on a list or handle an event, or manage a thread. Ursula Wolz, 30 August 2013 Modify the file further so that check uses foreach. 24
25 Technical Details You Should Know Occasionally the type inference engine is unable to determine the types needed to expand a lambda back to an anonymous class. A lambda may be cast with a Functional Interface. Remember that local variables used by an anonymous class s methods must be final? This is true of lambdas, too, but now Java allows them to be effectively final. 25
26 Technical Details You Should Know One cannot break or continue out of lambda code. return always means return from the lambda. this does not refer to the hidden anonymous class instance. It still refers to the object on which the method containing the lambda was invoked. 26
27 java.util.stream.stream If you use a Stream you have access to many methods besides foreach. Streams are sequences of elements, not necessarily finite. They often come out of collections. Their elements can be produced, transformed, and consumed. 27
28 Using Streams people.stream().foreach(p -> System.out.println(p)); 28
29 Another Functional Interface interface Predicate< T > { public abstract boolean test( T t ); // Default methods not shown. } 29
30 Exercise Using this method from the Stream interface, enhance the printing statement so that it only prints people over the minimum drinking age /** * Returns a stream consisting of the * elements of this stream that match the * given predicate. */ Stream<T> filter(predicate<? super T> predicate) 30
31 More Stream Operations My solution for an assignment that performed operations on trees public long charactercount() { return children.stream().maptolong( text -> text.charactercount() ).sum(); } public void replace( String olds, String news ) { children.stream().foreach( part -> part.replace( olds, news ) ); } 31
32 Recommendations Treat lambdas as you would iterators. It s a shorthand. If the longhand way is occasionally needed, you still may have to teach it. However it is conceivable you could decide to drop anonymous classes altogether, in favor of lambdas and named classes. 32
33 Recommendations Streams are iffy. You re trying to get them to stop writing loops. Probably don t go further than foreach and filter. Currently some of our instructors test them on understanding lambdas and streams, but none so far require that all students be able to write them. However many students choose to do so. 33
34 1b. Default Methods in Interfaces One may now provide an implementation of a method in an interface, if it is labeled with the default keyword; if it only calls other methods in the interface, in the interfaces it extends, and in the Object class; if it does not depend on state. You still cannot declare (non-static) state in an interface. 34
35 From Brian Goetz's Article It is impossible to add methods to an interface without breaking existing implementations. The addition of closures place [sic] additional stress on the aging Collection interfaces....c#-style static extension methods cannot be overridden so implementations are stuck with "one size fits all"... 35
36 Some Collection Examples boolean removeif( Predicate<? super E> filter ) Stream< E > stream() The above things don t really concern us. Different kinds of examples: Remember Adapter classes? boolean isempty() (next slide) void display() 36
37 Handy Use of Default Methods public interface Stuff { : : public int size(); public default boolean isempty() { return size() == 0; } } 37
38 Exercise Look at the Othello.java and OthelloImpl.java files. Make sure you understand them. Compile and run them. Change display so that it is a default method in the Othello interface. 38
39 Recommendations We do not teach students to write default methods in their interfaces. We occasionally use them when we want students to implement an interface we provide, but we want a standard way the information in the implementing class is output, and we don t want to deal with students getting format wrong. There may be other cases like this one in the future. 39
40 Issue Since underlying differences between interface implementation and class inheritance remain the same, there was no confusion on students parts. Except: We have always told them methods are not implemented in interfaces. Now that s a bit of a lie! 40
41 1c. JavaFX JavaFX is the new preferred way of writing graphical user interfaces in Java. In layout features, it is different than Swing, but conceptually not very different. JavaFX has a built-in MVC model that takes some time to learn. Programs written to this framework can also be targeted to run off a web server in a browser. 41
42 Simplest Example public class JFX1 extends Application { public void start( Stage stage ) { stage.settitle( "JFX1" ); stage.show(); } // public static void main( String[] args ) { } // } // Application.launch( args );
43 Application Methods: init public void init() throws java.lang.exception The application initialization method. This method is called immediately after the Application class is loaded and constructed. An application may override this method to perform initialization prior to the actual starting of the application. The implementation of this method provided by the Application class does nothing. NOTE: This method is not called on the JavaFX Application Thread. An application must not construct a Scene or a Stage in this method. An application may construct other JavaFX objects in this method.
44 Application Methods: start public abstract void start(stage primarystage) throws java.lang.exception The main entry point for all JavaFX applications. The start method is called after the init method has returned, and after the system is ready for the application to begin running. NOTE: This method is called on the JavaFX Application Thread. Parameters: primarystage - the primary stage for this application, onto which the application scene can be set. The primary stage will be embedded in the browser if the application was launched as an applet. Applications may create other stages, if needed, but they will not be primary stages and will not be embedded in the browser.
45 Application Methods: stop public void stop() throws java.lang.exception This method is called when the application should stop, and provides a convenient place to prepare for application exit and destroy resources. The implementation of this method provided by the Application class does nothing. NOTE: This method is called on the JavaFX Application Thread.
46 JavaFX Terms Stage Somewhat akin to a window, or JFrame, from Swing There is a main one, but there may be more than one. Scene Something shown on a Stage You can switch between Scenes on one Stage.
47 Sample Code BorderPaneDemo shows a more complex layout with buttons and labels. Note that Swing s layout managers are gone. ButtonEvents shows how to attach events to GUI elements (Nodes). LabelDemoEvents shows some things you can do when the mouse moves into a label.
48 Recommendations The jury is still out on this one. Swing is not liked by everyone, but it is still in use in some circles. A new textbook is coming out that still covers it.
49 Recommendations Although layout is not too bad, you have to be careful not to put too much detailed layout code into your examples. It is not as necessary as it appears. This framework was really designed to be used with a designer tool like netbeans. Most tutorials assume that s what you re doing.
50 Recommendations Simple event handling is also very similar to Swing. The MVC model, that automatically connects properties in your model to artifacts in the GUI, is not easy to learn.
51 Recommendations In our classes last year, we instead wrote the simple Action handlers you saw, and connected them to our models with the classic Observer/Observable classes found in the Java library. Our main goal is to teach students event-driven programming, not how to build state-of-the art user interfaces.
52 The Future of JavaFX at RIT Some professors want to return to Swing. This is not yet settled. This is the third term we are trying out JavaFX.
53 2. Impact on CS1/2 Course Goals Student Readiness Part 1 Features Breakdown 53
54 Course Goals Most CS programs don t treat their freshman courses as language training courses. What are the goals of yours? Computational thinking? Algorithms and data structures? Problem solving? 54
55 Student Readiness Experienced programmers tend to gravitate towards more concise expressions of their designs. But that s because we already understand the underlying principles. Most of us try to keep syntactic blathering to a minimum in intro courses. 55
56 Our Experience: Lambdas Most students seemed to prefer to use them over the old longer form. We did not test to make sure they knew what was really happening under the hood. We did not test the more compact forms. 56
57 Default Methods in Interfaces Students were not tested on this concept. A few assignments that provided interfaces had default methods, to save the students time. Classic example: print-game-state Since underlying differences between interface implementation and class inheritance remain the same, there was no confusion on students parts. 57
58 JavaFX Structural part is just a different way of expressing what you could express in Swing. Be careful not to focus on precision layout. Event handling is more problematic; more of the fundamentals are hidden behind higher-level concepts common in most GUI design frameworks. 58
59 A Practical Consideration Conflict! Is your system administrator, or IT service organization, willing to upgrade all of your lab computers? Will some students install the latest Java and inadvertently use features that will not compile on the computers you use for functionality assessment? 59
Java for Programmers Course (equivalent to SL 275) 36 Contact Hours
Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the
More informationPROGRAMMING 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
More informationApplication Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started
Application Development in JAVA Duration Lecture: Specialization x Hours Core Java (J2SE) & Advance Java (J2EE) Detailed Module Part I: Core Java (J2SE) Getting Started What is Java all about? Features
More informationInterface evolution via public defender methods
Interface evolution via public defender methods Brian Goetz, May 2010 1. Problem statement Once published, it is impossible to add methods to an interface without breaking existing implementations. The
More informationIntroduction 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 informationReview sheet for Final Exam (List of objectives for this course)
Review sheet for Final Exam (List of objectives for this course) Please be sure to see other review sheets for this semester Please be sure to review tests from this semester Week 1 Introduction Chapter
More informationCSE wi Final Exam 3/12/18. Name UW ID#
Name UW ID# There are 13 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,
More informationCSC207 Week 4. Larry Zhang
CSC207 Week 4 Larry Zhang 1 Logistics A1 Part 1, read Arnold s emails. Follow the submission schedule. Read the Q&A session in the handout. Ask questions on the discussion board. Submit on time! Don t
More informationInterface evolution via public defender methods
Interface evolution via public defender methods Brian Goetz Second draft, May 2010 1. Problem statement Once published, it is impossible to add methods to an interface without breaking existing implementations.
More informationJava Programming Fundamentals
Java Programming Fundamentals Course JAVAB Five Days Instructor-led Hands on This five-day, instructor-led course helps any programmer learn Java faster and better than ever before: It's the one Java course
More informationFramework. Set of cooperating classes/interfaces. Example: Swing package is framework for problem domain of GUI programming
Frameworks 1 Framework Set of cooperating classes/interfaces Structure essential mechanisms of a problem domain Programmer can extend framework classes, creating new functionality Example: Swing package
More informationB. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics
Zarqa University Faculty: Information Technology Department: Computer Science Course title: Programming LAB 1 (1501111) Instructor: Lecture s time: Semester: Office Hours: Course description: This introductory
More informationPIC 20A Anonymous classes, Lambda Expressions, and Functional Programming
PIC 20A Anonymous classes, Lambda Expressions, and Functional Programming Ernest Ryu UCLA Mathematics Last edited: December 8, 2017 Introductory example When you write an ActionListener for a GUI, you
More informationLecture 5: Implementing Lists, Version 1
CS18 Integrated Introduction to Computer Science Fisler, Nelson Lecture 5: Implementing Lists, Version 1 Contents 1 Implementing Lists 1 2 Methods 2 2.1 isempty...........................................
More informationLanguage Features. 1. The primitive types int, double, and boolean are part of the AP
Language Features 1. The primitive types int, double, and boolean are part of the AP short, long, byte, char, and float are not in the subset. In particular, students need not be aware that strings are
More information(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days
Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented
More informationCMSC131. Inheritance. Object. When we talked about Object, I mentioned that all Java classes are "built" on top of that.
CMSC131 Inheritance Object When we talked about Object, I mentioned that all Java classes are "built" on top of that. This came up when talking about the Java standard equals operator: boolean equals(object
More informationThis course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.
This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are
More informationCMSC 331 Second Midterm Exam
1 20/ 2 80/ 331 First Midterm Exam 11 November 2003 3 20/ 4 40/ 5 10/ CMSC 331 Second Midterm Exam 6 15/ 7 15/ Name: Student ID#: 200/ You will have seventy-five (75) minutes to complete this closed book
More informationObjects and Classes Lecture 1
Objects and Classes Lecture 1 Waterford Institute of Technology January 6, 2016 John Fitzgerald Waterford Institute of Technology, Objects and ClassesLecture 1 1/19 Fundamental Programming Course Content
More informationWA1278 Introduction to Java Using Eclipse
Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming Summary 1. Predictive Parsing 2. Large Step Operational Semantics (Natural) 3. Small Step Operational Semantics
More informationFree your Lambdas Java SE 8
Free your Lambdas Java SE 8 Agenda Tutorial session: we will start at the very beginning! and explore how to build functional interfaces to design new APIs This is about lambdas and functional interfaces
More informationRules and syntax for inheritance. The boring stuff
Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for
More informationCS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e
More informationPeers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java
Page 1 Peers Techno log ies Pv t. L td. Course Brochure Core Java & Core Java &Adv Adv Java Java Overview Core Java training course is intended for students without an extensive programming background.
More information1. (5 points) In your own words, describe what an instance is.
SE1021 Exam 2 Name: 1. (5 points) In your own words, describe what an instance is. 2. (5 points) Consider the Apple class in the UML diagram on the right. Write a couple lines of code to call the instance
More informationBasics of Java Programming CS129 LTPC:
Basics of Java Programming CS9 LTPC: -0-4-3 Instructor: Gauravkumarsingh Gaharwar Program: Masters of Science(IT) Class-Semester: FYMSc(IT) (Sem-II) Email: gauravsinghg@nuv.ac.in Phone Number: 065-30000(0)
More informationInheritance. Transitivity
Inheritance Classes can be organized in a hierarchical structure based on the concept of inheritance Inheritance The property that instances of a sub-class can access both data and behavior associated
More informationCSC207 Week 3. Larry Zhang
CSC207 Week 3 Larry Zhang 1 Announcements Readings will be posted before the lecture Lab 1 marks available in your repo 1 point for creating the correct project. 1 point for creating the correct classes.
More informationThroughout the exam, write concisely and underline key words or phrases. Have fun! Exam 2. Week 7 (Winter 2013). Dr. Yoder. Sec 031.
SE1021 Exam 2 Name: You may have an 8.5x11 note sheet for this exam. No calculators or other study aids on this exam. Write your initials at the tops of the following pages and read through the exam before
More information"Charting the Course... Java Programming Language. Course Summary
Course Summary Description This course emphasizes becoming productive quickly as a Java application developer. This course quickly covers the Java language syntax and then moves into the object-oriented
More informationCS-202 Introduction to Object Oriented Programming
CS-202 Introduction to Object Oriented Programming California State University, Los Angeles Computer Science Department Lecture III Inheritance and Polymorphism Introduction to Inheritance Introduction
More informationCO Java SE 8: Fundamentals
CO-83527 Java SE 8: Fundamentals Summary Duration 5 Days Audience Application Developer, Developer, Project Manager, Systems Administrator, Technical Administrator, Technical Consultant and Web Administrator
More informationCS1004: Intro to CS in Java, Spring 2005
CS1004: Intro to CS in Java, Spring 2005 Lecture #23: OO Design, cont d. Janak J Parekh janak@cs.columbia.edu Administrivia HW#5 due Tuesday And if you re cheating on (or letting others see your) HW#5
More informationMidterm assessment - MAKEUP Fall 2010
M257 MTA Faculty of Computer Studies Information Technology and Computing Date: /1/2011 Duration: 60 minutes 1-Version 1 M 257: Putting Java to Work Midterm assessment - MAKEUP Fall 2010 Student Name:
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming t ::= x x. t t t Call-by-value big-step Operational Semantics terms variable v ::= values abstraction x.
More informationJava for Non Majors. Final Study Guide. April 26, You will have an opportunity to earn 20 extra credit points.
Java for Non Majors Final Study Guide April 26, 2017 The test consists of 1. Multiple choice questions 2. Given code, find the output 3. Code writing questions 4. Code debugging question 5. Short answer
More informationA Java Execution Simulator
A Java Execution Simulator Steven Robbins Department of Computer Science University of Texas at San Antonio srobbins@cs.utsa.edu ABSTRACT This paper describes JES, a Java Execution Simulator that allows
More informationJava Programming. Price $ (inc GST)
1800 ULEARN (853 276) www.ddls.com.au Java Programming Length 5 days Price $4235.00 (inc GST) Overview Intensive and hands-on, the course emphasizes becoming productive quickly as a Java application developer.
More informationSyllabus & Curriculum for Certificate Course in Java. CALL: , for Queries
1 CONTENTS 1. Introduction to Java 2. Holding Data 3. Controllin g the f l o w 4. Object Oriented Programming Concepts 5. Inheritance & Packaging 6. Handling Error/Exceptions 7. Handling Strings 8. Threads
More informationEECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan
EECS 282 Information Systems Design and Programming Atul Prakash Professor, Computer Science and Engineering University of Michigan 1 What is the Course About? A second programming course - but different
More informationJVA-103. Java Programming
JVA-103. Java Programming Version 8.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for programmers with experience in languages other
More informationTiming 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 informationCS Exam 1 Review Suggestions
CS 235 - Fall 2015 - Exam 1 Review Suggestions p. 1 last modified: 2015-09-30 CS 235 - Exam 1 Review Suggestions You are responsible for material covered in class sessions, lab exercises, and homeworks;
More informationCOMP6700/2140 Code as Data
COMP6700/2140 Code as Data Alexei B Khorev Research School of Computer Science, ANU March 2017 Alexei B Khorev (RSCS, ANU) COMP6700/2140 Code as Data March 2017 1 / 19 Topics 1 What does treating code
More informationVALLIAMMAI ENGINEERING COLLEGE
VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 60 0 DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK III SEMESTER CS89- Object Oriented Programming Regulation 07 Academic Year 08 9 Prepared
More informationCONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13
CONTENTS Chapter 1 Getting Started with Java SE 6 1 Introduction of Java SE 6... 3 Desktop Improvements... 3 Core Improvements... 4 Getting and Installing Java... 5 A Simple Java Program... 10 Compiling
More informationReviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Things to Review Review the Class Slides: Key Things to Take Away Do you understand
More informationA- Core Java Audience Prerequisites Approach Objectives 1. Introduction
OGIES 6/7 A- Core Java The Core Java segment deals with the basics of Java. It is designed keeping in mind the basics of Java Programming Language that will help new students to understand the Java language,
More informationCS506 Web Programming and Development Solved Subjective Questions With Reference For Final Term Lecture No 1
P a g e 1 CS506 Web Programming and Development Solved Subjective Questions With Reference For Final Term Lecture No 1 Q1 Describe some Characteristics/Advantages of Java Language? (P#12, 13, 14) 1. Java
More informationIntroduction to C++ with content from
Introduction to C++ with content from www.cplusplus.com 2 Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup
More informationCollege Board. AP CS A Labs Magpie, Elevens, and Picture Lab. New York: College Entrance Examination Board, 2013.
AP Computer Science August 2014 June 2015 Class Description AP Computer Science is the second class after Pre-AP Computer Science that together teach the fundamentals of object-oriented programming and
More informationDHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR (ODD SEM)
DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR 2018-19 (ODD SEM) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SUB: OBJECT ORIENTED PROGRAMMING SEM/YEAR: III SEM/ II YEAR
More informationJava Applets. Last Time. Java Applets. Java Applets. First Java Applet. Java Applets. v We created our first Java application
Last Time v We created our first Java application v What are the components of a basic Java application? v What GUI component did we use in the examples? v How do we write to the standard output? v An
More informationGive one example where you might wish to use a three dimensional array
CS 110: INTRODUCTION TO COMPUTER SCIENCE SAMPLE TEST 3 TIME ALLOWED: 60 MINUTES Student s Name: MAXIMUM MARK 100 NOTE: Unless otherwise stated, the questions are with reference to the Java Programming
More informationCS11 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
More informationWrapper 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 informationObject-Oriented Concepts
JAC444 - Lecture 3 Object-Oriented Concepts Segment 2 Inheritance 1 Classes Segment 2 Inheritance In this segment you will be learning about: Inheritance Overriding Final Methods and Classes Implementing
More informationC# and Java. C# and Java are both modern object-oriented languages
C# and Java C# and Java are both modern object-oriented languages C# came after Java and so it is more advanced in some ways C# has more functional characteristics (e.g., anonymous functions, closure,
More informationThe Sun s Java Certification and its Possible Role in the Joint Teaching Material
The Sun s Java Certification and its Possible Role in the Joint Teaching Material Nataša Ibrajter Faculty of Science Department of Mathematics and Informatics Novi Sad 1 Contents Kinds of Sun Certified
More informationJava Live Lab. Course Outline. Java Live Lab. 20 Jun 2018
Course Outline 20 Jun 2018 Contents 1. Course Objective 2. Expert Instructor-Led Training 3. ADA Compliant & JAWS Compatible Platform 4. State of the Art Educator Tools 5. Award Winning Learning Platform
More informationFinal Exam CS 251, Intermediate Programming December 10, 2014
Final Exam CS 251, Intermediate Programming December 10, 2014 Name: NetID: Answer all questions in the space provided. Write clearly and legibly, you will not get credit for illegible or incomprehensible
More informationPage 1
Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory
More informationSoftware Development & Education Center. Java Platform, Standard Edition 7 (JSE 7)
Software Development & Education Center Java Platform, Standard Edition 7 (JSE 7) Detailed Curriculum Getting Started What Is the Java Technology? Primary Goals of the Java Technology The Java Virtual
More informationFast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3. Course Code: GK1965. Overview
Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3 Course Code: GK1965 Overview Java 8 Essentials for OO Developers is a three-day, fast-paced, quick start to Java 8 training
More informationFirst Programming Language in CS Education The Arguments for Scala
First Programming Language in CS Education The Arguments for Scala WORLDCOMP 2011 By Dr. Mark C. Lewis Trinity University Disclaimer I am writing a Scala textbook that is under contract with CRC Press.
More informationProject #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 informationDay 4. COMP1006/1406 Summer M. Jason Hinek Carleton University
Day 4 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments questions about assignment 2 a quick look back constructors signatures and overloading encapsulation / information
More informationIntroduction to Computation and Problem Solving
Class 1: Introduction Introduction to Computation and Problem Solving Prof. Steven R. Lerman and Dr. V. Judson Harward Handouts for Today Course syllabus Academic Honesty Guidelines Laptop request form
More informationType of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes
Java CORE JAVA Core Java Programing (Course Duration: 40 Hours) Introduction to Java What is Java? Why should we use Java? Java Platform Architecture Java Virtual Machine Java Runtime Environment A Simple
More informationCore Java - SCJP. Q2Technologies, Rajajinagar. Course content
Core Java - SCJP Course content NOTE: For exam objectives refer to the SCJP 1.6 objectives. 1. Declarations and Access Control Java Refresher Identifiers & JavaBeans Legal Identifiers. Sun's Java Code
More informationTOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1
TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1 ABSTRACT Test-Driven Development is a design strategy where a set of tests over a class is defined prior to the implementation of that class. The goal
More informationMathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10
Mathematics/Science Department Kirkwood Community College Course Syllabus Computer Science CSC142 Bob Driggs Dean Cate Sheller Instructor 1/10 Computer Science (CSC142) Course Description Introduces computer
More informationLast Time. 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 Writing a Simple Java Program Intro to Variables Readings Your textbook is Big Java (3rd Ed). This Week s Reading: Ch 2.1-2.5, Ch
More informationBBM 102 Introduction to Programming II Spring Exceptions
BBM 102 Introduction to Programming II Spring 2018 Exceptions 1 Today What is an exception? What is exception handling? Keywords of exception handling try catch finally Throwing exceptions throw Custom
More informationCT 229 Arrays in Java
CT 229 Arrays in Java 27/10/2006 CT229 Next Weeks Lecture Cancelled Lectures on Friday 3 rd of Nov Cancelled Lab and Tutorials go ahead as normal Lectures will resume on Friday the 10 th of Nov 27/10/2006
More information15CS45 : OBJECT ORIENTED CONCEPTS
15CS45 : OBJECT ORIENTED CONCEPTS QUESTION BANK: What do you know about Java? What are the supported platforms by Java Programming Language? List any five features of Java? Why is Java Architectural Neutral?
More informationJava SE 8 Programming
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features
More informationLesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014
Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class
More informationIntroduction to GUIs. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2014
Introduction to GUIs Principles of Software Construction: Objects, Design, and Concurrency Jonathan Aldrich and Charlie Garrod Fall 2014 Slides copyright 2014 by Jonathan Aldrich, Charlie Garrod, Christian
More informationCasting -Allows a narrowing assignment by asking the Java compiler to "trust us"
Primitives Integral types: int, short, long, char, byte Floating point types: double, float Boolean types: boolean -passed by value (copied when returned or passed as actual parameters) Arithmetic Operators:
More informationJava SE 8 Programming
Oracle University Contact Us: +52 1 55 8525 3225 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming
More informationLambdas 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 informationCS 231 Data Structures and Algorithms, Fall 2016
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
More informationCOMP Flow of Control: Branching 2. Yi Hong May 19, 2015
COMP 110-001 Flow of Control: Branching 2 Yi Hong May 19, 2015 Review if else Q1: Write a program that Reads an integer from user Prints Even if the integer is even Otherwise, prints Odd Boolean expression
More informationJava Foundations. 9-1 Introduction to JavaFX. Copyright 2014, Oracle and/or its affiliates. All rights reserved.
Java Foundations 9-1 Copyright 2014, Oracle and/or its affiliates. All rights reserved. Objectives This lesson covers the following objectives: Create a JavaFX project Explain the components of the default
More informationCS211 Computers and Programming Matthew Harris and Alexa Sharp July 9, Boggle
Boggle If you are not familiar with the game Boggle, the game is played with 16 dice that have letters on all faces. The dice are randomly deposited into a four-by-four grid so that the players see the
More informationLambda Expressions and Java 8 Streams. Jan Trienes, adapted by Th. Dorssers, Pieter van den Hombergh. Contents of this talk.
Java 8 s and Java 8 van den Hombergh Fontys Hogeschool voor Techniek en Logistiek February 23, 2017 and /FHTenL s and Java 8 February 23, 2017 1/28 talk Expression and Internal/External Iteration Java
More informationCS Lecture #6. Administrative... Assignment #2 Graded NN Turned In, Average Grade: XX Assignment #3 due on Thursday
CS 213 -- Lecture #6 Late Night Guide to C++ Chapter 5 INHERITANCE Administrative... Assignment #2 Graded NN Turned In, Average Grade: XX Assignment #3 due on Thursday The Conceptual Side of Classes Earlier
More informationCourse Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::
Module Title Duration : Intro to JAVA SE7 and Programming using JAVA SE7 : 9 days Course Description The Java SE 7 Fundamentals course was designed to enable students with little or no programming experience
More informationCS 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 informationGoal. Generic Programming and Inner classes. Minor rewrite of linear search. Obvious linear search code. Intuitive idea of generic linear search
Goal Generic Programming and Inner classes First version of linear search Input was array of int More generic version of linear search Input was array of Comparable Can we write a still more generic version
More informationHandouts. 1 Handout for today! Recap. Homework #2 feedback. Last Time. What did you think? HW3a: ThreadBank. Today. Small assignment.
Handouts CS193J: Programming in Java Summer Quarter 2003 Lecture 10 Thread Interruption, Cooperation (wait/notify), Swing Thread, Threading conclusions 1 Handout for today! #21: Threading 3 #22: HW3a:
More informationCS61BL Summer 2013 Midterm 2
CS61BL Summer 2013 Midterm 2 Sample Solutions + Common Mistakes Question 0: Each of the following cost you.5 on this problem: you earned some credit on a problem and did not put your five digit on the
More informationGraphical User Interface (GUI)
Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware
More informationObject Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.
CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java
More informationCSCI 355 LAB #2 Spring 2004
CSCI 355 LAB #2 Spring 2004 More Java Objectives: 1. To explore several Unix commands for displaying information about processes. 2. To explore some differences between Java and C++. 3. To write Java applications
More informationGraphical User Interfaces (GUIs)
CMSC 132: Object-Oriented Programming II Graphical User Interfaces (GUIs) Department of Computer Science University of Maryland, College Park Model-View-Controller (MVC) Model for GUI programming (Xerox
More informationObjective Questions. BCA Part III Paper XIX (Java Programming) page 1 of 5
Objective Questions BCA Part III page 1 of 5 1. Java is purely object oriented and provides - a. Abstraction, inheritance b. Encapsulation, polymorphism c. Abstraction, polymorphism d. All of the above
More information