30
1 CSC 201: Computer Programming I B. S. Afolabi

1 CSC 201: Computer Programming I B. S. Afolabi. Introduction 3 unit course 2 hours of lecture/week Thursdays 4.00pm – 6.00pm Mondays 4.00pm – 6.00pm

Embed Size (px)

Citation preview

1

CSC 201: Computer Programming I

B. S. Afolabi

Introduction 3 unit course 2 hours of lecture/week

Thursdays 4.00pm – 6.00pm Mondays 4.00pm – 6.00pm

3 hours of practical/week To be determined next week Course Lecturers:

2

Dr. A. O. AjayiDr. F. O. AsaiahMrs. H. O. Odukoya Dr. B. S. Afolabi (Coordinator)

Dr. P. A. IdowuDr. A. R. IyandaMr. I. P. GamboMr. OkegbileMiss Lawal

Textbooks

No textbook is required For programming beginners:

Java Software Solutions: Foundations of Program Design, John Lewis and William Loftus, Publisher: Addison Wesley, 2002

For experienced programmers:— Learning the JavaTM Language at http://docs.oracle.com/javase/tutorial/ /

— Thinking in Java, Bruce Eckel, Prentice Hall

Software is required

Download Java onto your home machine http://www.oracle.com/technetwork/java/javase/downloads

/index.html

Follow the instructions to install it Then, follow the instructions to install Eclipse

https://eclipse.org/downloads/

Functional versus imperative languages Functional languages are ideal for expressing the functional (the

problem to be solved) component of any problem however... at least 50% of all programs deal with input/output rather than a

problem and functional languages aren’t very good at input/output. Think of the programs you use now:

editor

mail

language translator()

web browser

Functional programming should have taught you to appreciate concise elegant programs.

The Computer

Central Processing Unit (CPU)

Memory

Input / Output Devices

CPU Instructions

z = x + y Read location xRead location yAddWrite to location z

Programming Languages

Easier to understand than CPU instructions Needs to be translated for the CPU to

understand it

JAVA“Most popular” languageRuns on a “virtual machine”

(JVM)More complex than some (eg.

Python)Simpler than others (eg. C++)

Compiling Java

Source

Code

(.javac)

javac

Byte Code (.class)

java

First Programclass Hello {

public static void main(String[] arguments){

//Program execution begins here System.out.println("Hello

world.");}

}

Program Structureclass CLASSNAME

public static void main(String[] arguments){

STATEMENTS}

}

OutputSystem.out.println(some String) outputs to the console

Example:

System.out.println(“output”);

Second Programclass Hello2 {

public static void main(String[] arguments){

//Program execution begins here System.out.println("Hello world."); //Print once

System.out.println(“Line number 2."); // Again}

}

TypesKinds of values that can be stored and

manipulated.boolean: Truth value (true or false).int: Integer (0, 1, -47).double: Real number (3.14, 1.0, -2.1).String: Text (“hello”, “example”).

Variables

Named location that stores a value of one particular type.

Form: TYPE NAME;Example:

String foo;

Assignment

Use “=“ to give variables a value.

Example:String foo;foo = “IAP 6.092”;

Assignment

Can be combined with a variable declaration.

Example:double badPi = 3.14;boolean isJanuary = true;

class Hello3 {public static void main(String[]

arguments){String foo = "IAP 6.092";System.out.println(foo);foo =

"Something else";System.out.println(foo);

}}

Operators

Symbols that perform simple computations

Assignment: =Addition: +Subtraction: -Multiplication: *Division: /

Order of Operations

Follows standard math rules:

ParenthesesMultiplication and divisionAddition and subtraction

class DoMath {public static void main(String[] Arguments){

double score = 1.0 + 2.0 * 3.0;System.out.println(score);score = score / 2.0;System.out.println(score);

}}

class DoMath {public static void main(String[] Arguments){

double score = 1.0 + 2.0 * 3.0;System.out.println(score);double copy = score;copy =copy/ 2.0;System.out.println(copy);System.out.println(score);

}}

String Concatenation (+)

String text = "hello" + " world";

text = text + " number " + 5;

// text = "hello world number 5"

Examples 1

class Comment { // This is a one-line comment; it extends to the end of the line /* This is a delimited comment, extending over several lines */ int /* A delimited comment, extending over part of a line */ x = 117;

}

25

Examples 2class Layout { // Class declaration

int a;Layout(int a){ this.a = a; } // One-line constructor bodyint sum(int b) { // Multi-line method body

if (a > 0) // If statementreturn a + b; // Single statement

else if (a < 0) { // Nested if-else, block statementint res = -a + b;return res * 117;

} else { // a == 0 // Terminal else, block statementint sum = 0;for (int i=0; i<10; i++) // For loopsum += (b - i) * (b - i);return sum;}

} 26

…Examples 2static boolean checkdate(int mth, int day) {

int length;switch (mth) { // Switch statement

case 2: // Single caselength = 28; break;case 4: case 6: case 9: case 11: // Multiple caselength = 30; break;case 1: case 3: case 5: case 7: case 8: case 10: case 12:length = 31; break;

default:return false;}

return (day >= 1) && (day <= length);}

}27

Example 4class Scope {

... //void m1(int x) { // declaration of parameter x (#1)

... // x #1 in scope} //... //void m2(int v2) { //

... // x #5 in scope} //... //void m3(int v3) { //

... // x #5 in scopeint x; // declaration of variable x (#2)... // x #2 in scope

} //... //

28

…Example 4void m4(int v4) { //

... // x #5 in scope{ //

int x; // declaration of variable x (#3)... // x #3 in scope

} //... // x #5 in scope{ //

int x; // declaration of variable x (#4)... // x #4 in scope

} //... // x #5 in scope

} //... //int x; // declaration of field x (#5)... // x #5 in scope

}29

30