CS 1101 Group 1 Discussion 1 Lek Hsiang

  • Slides: 35
Download presentation
CS 1101 Group 1 Discussion 1 Lek Hsiang Hui lekhsian @ comp. nus. edu.

CS 1101 Group 1 Discussion 1 Lek Hsiang Hui lekhsian @ comp. nus. edu. sg http: //www. comp. nus. edu. sg/~lekhsian/cs 1101

Programming background?

Programming background?

Style of discussion • Discuss previous week lab • Discuss current week lab (good

Style of discussion • Discuss previous week lab • Discuss current week lab (good to read up the lab question before coming class) • Go through some concepts of materials cover during that week • Quiz • Mini “in-class” exercises

Other Issues • Please do NOT call me sir – I’m also a student!

Other Issues • Please do NOT call me sir – I’m also a student! • Check your email regularly • Check out course website regularly • My cs 1101 website (for discussion notes and related materials) • Encourage you all to participate actively on the IVLE forum • At any point of time, you can ask question, please let me know whether I’m too soft, mumbling etc

Questions from lectures?

Questions from lectures?

 • Be passionate about programming • Find sources of practice – Try out

• Be passionate about programming • Find sources of practice – Try out codes in the textbook – Past yet cs 1101/c PE questions – google for more questions – http: //www. comp. nus. edu. sg/~cs 1101 x • Know the concepts – Look for a src. zip in your jdk folder System. out. println(“hello world”); is really System. out. print(“hello world”); new. Line();

 • Nature of CS 1101 – This module can be very easy or

• Nature of CS 1101 – This module can be very easy or very tough – Its not one module where you can do last min effort, in fact if you can follow, its one module where you can feel quite relax just before exams • Practice make perfect • Read before hand later topics – It’s difficult to relate a certain syntax to how its typically being used • Seek help if you are facing problem, don’t wait until test/exams then you start to panic

Java Programming Style / Convention

Java Programming Style / Convention

Java Programming Style /Convention • Please read through http: //www. comp. nus. edu. sg/~cs

Java Programming Style /Convention • Please read through http: //www. comp. nus. edu. sg/~cs 1101/3_c a/labs/styleguide. html – – – Indentation Comment your code Classes should start with uppercase Variables should start with lowercase Methods should start with lowercase Final variables/constants should be all uppercase e. g final int PI = 3. 14;

Java Programming Style /Convention • Variable Names – Case-sensitive – Begins with a letter,

Java Programming Style /Convention • Variable Names – Case-sensitive – Begins with a letter, dollar sign($) or underscore – White spaces are not permitted – Subsequent characters may be a letter, digit, dollar sign or underscore

CS 1101 Labs

CS 1101 Labs

CS 1101 Labs • !!! Very important - 20% • Make sure you indent

CS 1101 Labs • !!! Very important - 20% • Make sure you indent your code – If you are using Dr Java, there’s a indentation feature, just select all your code and press Tab • Provide comments (in English please!) • Do early, email me early if you encounter problems • Do NOT copy from anyone! (changing variables names, spacing, shifting codes around is not going to work!)

Learn how to use the Java API • http: //java. sun. com/javase/6/docs/api/ – Go

Learn how to use the Java API • http: //java. sun. com/javase/6/docs/api/ – Go to google -> Search for java 1. 6 api -> Press I’m feeling Lucky • E. g Scanner sc = new Scanner(System. in); int I = sc. next. Int(); there’s also next. Double(), next. Float(), …

Learn how to use the Java API • Scanner – Import details : java.

Learn how to use the Java API • Scanner – Import details : java. util. Scanner – Constructor new Scanner(…); – Methods return type and method name int : next. Int(); String : next. Line(); • Math

Numerical Data int - 32 bit 231 + (231 - 1) = 232 231

Numerical Data int - 32 bit 231 + (231 - 1) = 232 231 = -2147483648 231 - 1 = -2147483647

Question Q. What is the result of : System. out. println(011); 9 How do

Question Q. What is the result of : System. out. println(011); 9 How do we get 9? 1 * 81 + 1 * 8 0 = 9 Octal (base 8)

Things you should know by now…

Things you should know by now…

Primitive Data Types • • • boolean char int float double Did you know

Primitive Data Types • • • boolean char int float double Did you know that char is actually of a integer type char a = 'A'; System. out. println(a + 0); //print 65 System. out. println((char)(a + 1)); //print B

Reserved Words • Reserved words cannot be used as identifiers (variables names)

Reserved Words • Reserved words cannot be used as identifiers (variables names)

Statements • Statements are code that must do something • Some typical statements you

Statements • Statements are code that must do something • Some typical statements you will see up to now: • Variable declaration int num; • Assignment statements num = 1; • Prefix / Postfix statements ++x; x--; etc • Method calls

Statements • Java also allow you to define blocks public static void main(String args[]){

Statements • Java also allow you to define blocks public static void main(String args[]){ { int num = 1; System. out. println(num); } int num = 2; System. out. println(num); } prints 1 2

Expressions • A set of codes that returns a value E. g (1 +

Expressions • A set of codes that returns a value E. g (1 + 1) this piece of code returns/gives you a value of 2 • Could be something like System. out. println( Math. max(1, 2) );

Arithmetic Operators • +, -, * • / and % – These 2 operations

Arithmetic Operators • +, -, * • / and % – These 2 operations are usually used when dealing with getting the digits of a number • Type promotions

Type Promotions Type Able to be promoted to double Not able to promote anymore.

Type Promotions Type Able to be promoted to double Not able to promote anymore. float double long float double int long float double char int long float double 1/2=0! short int long float double byte short int long float double boolean Not able to promote. 4 / 2. 0 = 2. 0 not 2

Casting Compilation • (<data type>) <expression> Error! • Q. What do you think is

Casting Compilation • (<data type>) <expression> Error! • Q. What do you think is the output of public static void main(String args[]){ int a = 10; int b = (int) a / 2. 0; System. out. println(b); }

Increment & Decrement Operators Expression Operation x = ++y Pre-increment x = y++ Post-increment

Increment & Decrement Operators Expression Operation x = ++y Pre-increment x = y++ Post-increment x = --y Pre-decrement x = y-- Post-decrement Q. What is the output of public static void main(String args[]){ int a = 1; System. out. println(a++); System. out. println(a); } 1 2

Increment & Decrement Operators Expression Operation x = ++y Pre-increment x = y++ Post-increment

Increment & Decrement Operators Expression Operation x = ++y Pre-increment x = y++ Post-increment x = --y Pre-decrement x = y-- Post-decrement Q. What is the output of public static void main(String args[]){ int a = 1; System. out. println((a++) + (a++)); System. out. println(a); } 3 3

Increment & Decrement Operators Q. What is the output of public static void main(String

Increment & Decrement Operators Q. What is the output of public static void main(String args[]){ int a = 1; System. out. println((a++) + (a++)); System. out. println(a); } 1 A 2 1 3 2 3 3

Boolean Operations • && , ||, ! • Expressions with these operators are evaluated

Boolean Operations • && , ||, ! • Expressions with these operators are evaluated by “shortcircuit evaluation” • Or lazy evaluation i. e. expression not evaluation if we already know the results • e. g true || false (true or anything) -> true, so no point evaluating the 2 nd part Precedence Order Operator 1 () 2 ! 3 && 4 ||

Boolean Operations • more e. g false && true (false and anything) -> false,

Boolean Operations • more e. g false && true (false and anything) -> false, so no point evaluating the 2 nd part

Relational Operators • >, < • Op= operators >=, <= , ==, !=

Relational Operators • >, < • Op= operators >=, <= , ==, !=

Assignment Operator • • a= 1 + 3 Step by Step: a= (we now

Assignment Operator • • a= 1 + 3 Step by Step: a= (we now need to find a value which will be given to the LHS) • a=4

Assignment Operator • Try out with int a = 1; a = (a +

Assignment Operator • Try out with int a = 1; a = (a + (a = (a + 1))); • a = (1 + (a = (1 + 1))); • a = (1 + (a = 2)); //assign 2 to a and return value of a • a = (1 + 2); • a = 3;

Precedence and Associativity Operator Type Operator Precedence Level Associativity Unary []. (params) E++ E--

Precedence and Associativity Operator Type Operator Precedence Level Associativity Unary []. (params) E++ E-- 1 Left to right Unary unary operators: -E !E ~E ++E --E 2 Right to left Object creation / Cast new (type)E 3 Right to left Arithmetic */% 4 Left to right Arithmetic +- 5 Left to right Bitwise >> << >>> 6 Left to right Relational < > <= >= 7 Left to right Relational == != 8 Left to right Bitwise & 9 Left to right Bitwise ^ 10 Left to right Bitwise | 11 Left to right Logical && 12 Left to right Logical || 13 Left to right Conditional ? : 14 Right to left Assignment = += -= *= /= %= >>= <<= &= ^= |= 15 Right to left