28
ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Embed Size (px)

Citation preview

Page 1: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

ITI 1221, Introduction to Computing - IILab-1

Dewan Tanvir AhmedUniversity of Ottawa

Page 2: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Contact Information

• Email: [email protected]• Office hour: Mon 1400~1600• Office location:

– Discover Lab– Room 5040– SITE

• Website: http://www.site.uottawa.ca/~dahmed

Page 3: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

General Instructions for Assignments

• Assignment URL:– http://www.site.uottawa.ca/~turcotte/teaching/iti-1221/assignments/

• Notes– Do the assignments individually or a team of two– Submission by WebCT

• Don’t forget to hit Submit button

– Indent your code properly– Late assignments will not be accepted; they will receive a grade of 0;– It is not acceptable to hand in code that does not compile

• Maximal mark in this case be 30%

– A Tour: • http://www.site.uottawa.ca/~turcotte/teaching/iti-1221/assignments/directi

ves.html

Page 4: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

General

• Late assignments will not be accepted; they will receive a grade of 0;

• Assignments must be done in teams of two or individually; • Assignments are due on Sundays by 23:00 (11 p.m.)

Page 5: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Identify yourself

• README should be a text file and not a Word document• All this should appear in all of the following places:

– at the beginning of each program/class (in comments) – at the beginning of each program's output

Example of a class header:

// Author: Linus Torvald // Student number: 111223 // Course: ITI 1221-A // Instructor: Marcel TURCOTTE // Tutorial: DCG-2 // Teaching Assistant: Dewan Tanvir Ahmed // Assignment: 4 // Question: 2

Page 6: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Restrictions and Marking scheme

• Restrictions– Everything you hand in

• must compile and run using the J2SE 1.4.2 system on SITE's PCs;

– The maximum grade for an assignment that does not compile is 30%; – You may only use features and library methods of Java

• that have been presented in class or tutorials at the time an assignment is due.

• Marking Scheme– based on the code's correctness and quality– Each part of your solution (e.g. each method)

• assessed individually • relative to the conditions and requirements stated in the questions

Page 7: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Handing an assignment

• All assignments must submitted electronically using your virtual campus account. – follow the guidelines for naming the files (specific to each

assignment); – virtual campus:

• virtualcampus.uottawa.ca

– For teams of two students • Only one of the two students submits a copy of the assignment • Clearly identify your partner and yourself.

• Assignments that do not conform to the above procedure will not be marked;

• Never upload the the byte-code files (files ending with the suffix .class);

• All the assignments are systematically re-compiled.

Page 8: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Programming Standards

• Follow the standard code conventions for Java– http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

• Identifiers– class and interface names begin with an upper case letter; – method and variable names begin with a lower case letter

• except for the constructors

– Several words may construct a name• not separated by underscores• and the second and subsequent words should start with an upper case

letter • Class: StackArray, • Variable: maxValueAtrribute

Page 9: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Programming Standards (cont..)

– names of constants • Single word: PI• Multiple words: MAX_VALUE

– a method name should begin with a verb • computeMaxmimum not just maximum

– a method whose primary purpose is to access an instance variable • getAttribute • setAttribute • isAttributeEqualTo(value)

– Emphasis relation

Page 10: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Variables

• Only declare variables that are actually used• Do not allocate memory unless necessarily• Do not use the same variable for different purposes• Local variables should not be confused with instance variables:

– declare each variable in its appropriate place;

• Every variable should have a comment describing its purpose. – Be brief. – This is called a data dictionary – it should be placed

• at the beginning of every method, • either before or beside the declarations.

Page 11: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Program Structure

• Write code with good structure – Introduce your own abstract classes and/or interfaces and – decompose your algorithms/methods into meaningful sub-

algorithms/methods

• Each method, including "main“, should be preceded by comments– describing its purpose and – the algorithm it uses – if the algorithm is very simple, it needn't be described– should be BRIEF.

• Your program must be indented in a systematic way that reflects the nesting of its statements.

Page 12: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Input/Output

• Output should be – nicely spaced and – easy to understand.

• Every value in your output– must print a short message explaining the meaning of the value

• Before your program reads values from the keyboard – it must print a prompt describing what the user is required to enter

Page 13: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Lexical Scope

• Definition:– The scope of an identifier is fixed at compile time to some region in

the source code containing the identifier’s declaration.– This identifier is only accessible within that region.

• Examples:

Page 14: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

More Examples

class Scope{ static int i; public static void main(String[ ] argv){ System.out.println("Value of i: " + i); }}

class Scope{ static int i; public static void main(String[ ] argv){ int i; i = 50; System.out.println("Value of i: " + i); }}

class Scope{ static void increment(){ i++; } public static void main(String[ ] argv){ int i; i = 10; increment(); System.out.println("Value of i: " + i); }}

class Scope{ public static void main(String[ ] argv){ int i; i = 10; if(i<20){ int save = i*3; } System.out.println("Value of save: " + save); }}

Page 15: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Data Type Conversion

• Primitive data types– int– long– double

class DataType{ public static void main(String[] agrv){ System.out.println("An \"int\" can hold a maximum of " + Integer.MAX_VALUE); System.out.println("An \"long\" can hold a maximum of " + Long.MAX_VALUE); System.out.println("An \"double\" can hold a maximum of " + Double.MAX_VALUE); }}

An "int" can hold a maximum of 2147483647

An "long" can hold a maximum of 9223372036854775807

An "double" can hold a maximum of 1.7976931348623157E308

Page 16: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Type Conversion

• Implicit– The ability of some compilers to automatically insert type conversion functions

where an expression of one type is used in a context where another type is expected.

• Explicit– Type casting– Narrowing and the possibility of data loss

Page 17: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Type Conversion

class DataType{ public static void main(String[] agrv){ int x, z; double y; x = 7; y = 8.3; System.out.println("Value of the expresion <x*y>: " + x*y); z = (int)(x*y); System.out.println("Value of z: " + z); z = (int) ((double) x * y); System.out.println("Value of z: " + z); z = x*(int)y; System.out.println("Value of z: " + z); y = x*y; System.out.println("Value of updated y: " + y); } }

58.1

58

58

56

58.1

Page 18: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Wrapper Classes

• Useful to convert data read from the keyboard

class WrapperClass{ public static void main(String[] argv) { int i; double d; i = Integer.parseInt("78"); d = Double.parseDouble("45.0215"); System.out.println("Integer has a value of " + i); System.out.println("Double has a value of " + d); }}

Page 19: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Modulo Arithmetic

• Division ( / )• Reminder/Modulus ( % )• Example:

– 11 / 4 (2)– 11 % 4 (3)

• Brain storming– 14/3 + 17%5 ?– (your student number % 3) ?

• Just make it interesting.– Reverse a positive number ?– Example:

• Input: 1234• Output: 4321

– Can you do it?

Page 20: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Modulo Arithmetic (Cont..)

class Modulo{ int n; Modulo(int n){ this.n = n; } int reverseNumber(){ int rem, rev; rev = 0; while(n!=0){ rem = n % 10; n = n / 10; rev = rev*10 + rem; } return rev; } public static void main( String [] args){ Modulo m = new Modulo(1234); System.out.println("Reverse of number: " + m.n + " ....." + m.reverseNumber()); } }

Page 21: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Application Program Interface (API)

• A tour: http://java.sun.com/j2se/1.4/docs/api/overview-summary.html• Information is presented in a nice hierarchy• Object

– String– Number

• Integer• Double

• Example of overriding

class Override{ public static void main(String[] argv) { Override or = new Override(); System.out.println("What is this? " + or.toString()); }}

class Override{ int x; public String toString(){ return "Overrirded: " + x; } public static void main(String[] argv) { Override or = new Override(); or.x = 15; System.out.println("What is this? " + or.toString()); }}

Page 22: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Compile and Run

• Write a program that will print our name and student Id.• Compile it• Run it• Group formation among students

• Use DrJava

Page 23: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Command Line

• It is a way to pass information to the program• Say, java Test marcel 123 true• public static void main (String [] args)• What is args?

– Reference that designates an array of String– Each element of this array is also a reference

• Write a program that will take 3 arguments from command prompt and print their summation

• Write a class that has a main method that displays the arguments on command line

Page 24: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Programming Editor

• Good programming Editor– Saves time– Takes care indentation– Color coding helps finding the syntax errors.

• Let’s go and play with Editor

Page 25: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Assignment 0

• Objective– Editing, compiling and running a simple Java program– Raising awareness about the university policies for academic frauds– Submitting an assignment using virtual campus online submission

system.

• A tour:– http://www.site.uottawa.ca/~turcotte/teaching/iti-1221/assignments/

– Editing, compiling and running…Java program– Syllabus– Academic fraud– Online submission– Directives– Files

• README• Ao.java

Page 26: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Assignment 0 (Cont..)

• public static void displayStudentInfo( )

– Displays the student name, id and laboratory section• public static String[] findAndReplace( String[] in, String[] what, String[] with )

text[ 0 ] = new String( "I" );text[ 1 ] = new String( "have" );text[ 2 ] = new String( "never" );text[ 3 ] = new String( "let" );text[ 4 ] = new String( "my" );text[ 5 ] = new String( "schooling" );text[ 6 ] = new String( "interfere" );text[ 7 ] = new String( "with" );text[ 8 ] = new String( "my" );text[ 9 ] = new String( "education" );

query[ 0 ] = text[ 0 ];query[ 1 ] = text[ 1 ];query[ 2 ] = text[ 4 ];

replacement[ 0 ] = new String( "You" );replacement[ 1 ] = new String( "should" );replacement[ 2 ] = new String( "your" );

String[ ] result;result = findAndReplace( text, query, replacement );

You should never let your schooling interfere with your educationYoushould your

Page 27: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

Happy Programming!!!

Page 28: ITI 1221, Introduction to Computing - II Lab-1 Dewan Tanvir Ahmed University of Ottawa

To whom Java is new!

• The URL for ITI 1220 is– http://www.site.uottawa.ca/~awilliam/iti1220

• If you need help on setting up Java on home computers page:– http://www.site.uottawa.ca/~awilliam/iti1220/WorkAtHome.html

• It is important to set the PATH as described at the following page– http://java.sun.com/j2se/1.5.0/install-windows.html

• Course website:– http://www.site.uottawa.ca/~turcotte/teaching/iti-1221/

• Hands on practice