0% found this document useful (0 votes)
20 views

Module 1 Lesson 1 1

Uploaded by

Jzter Gslga
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

Module 1 Lesson 1 1

Uploaded by

Jzter Gslga
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 56

COMPUTER

PROGRAMMING 1
MODULE 1: OVERVIEW ABOUT COMPUTER PROGRAM,
PROGRAMMING
PROCESS, AND OVERVIEW OF JAVA
MODULE 1: OVERVIEW ABOUT COMPUTER
PROGRAM, PROGRAMMING
PROCESS, AND OVERVIEW OF JAVA

• LESSON 1: COMPUTER PROGRAMS, ALGORITHMS, AND


FLOWCHARTING
• LESSON 2: HISTORY OF JAVA AND PARTS OF A JAVA PROGRAM
MODULE OUTCOMES

AT THE END OF THIS MODULE, THE STUDENTS WILL BE ABLE TO:


• DESIGN A FLOWCHART AND AN ALGORITHM USING APPROPRIATE
TOOLS AND SYMBOLS BY FOLLOWING THE PROGRAM
DEVELOPMENT LIFE CYCLE.
• DEVELOP YOUR FIRST JAVA PROGRAM USING AN IDE.
MODULE 1: LESSON 1

COMPUTER PROGRAMS,
ALGORITHMS, AND FLOWCHARTING
PROGRAMMING
PROGRAMMING IS, QUITE LITERALLY, ALL AROUND US. FROM THE
TAKE-OUT WE ORDER, TO THE MOVIES WE STREAM, CODE ENABLES
EVERYDAY ACTIONS IN OUR LIVES. TECH COMPANIES ARE NO
LONGER RECOGNIZABLE AS JUST SOFTWARE COMPANIES — INSTEAD,
THEY BRING FOOD TO OUR DOOR, HELP US GET A TAXI, INFLUENCE
OUTCOMES IN PRESIDENTIAL ELECTIONS, OR ACT AS A PERSONAL
TRAINER.
COMPUTER SYSTEM
A COMPUTER SYSTEM NEEDS HARDWARE AND SOFTWARE TO RUN.
• HARDWARE – IS THE TANGIBLE AND VISIBLE COMPONENT OF A
COMPUTER SYSTEM SUCH AS THE MONITOR, KEYBOARD, MOUSE,
TO NAME A FEW.
• SOFTWARE – IS A PROGRAM THAT A COMPUTER USES TO FUNCTION
WHICH IS KEPT IN A HARDWARE DEVICE LIKE A HARD DISK AND IS
INTANGIBLE.
PROGRAMS
THIS ARE INSTRUCTIONS FOR THE PROCESSORS. YOU NEED
PROGRAMS TO WORK WITH YOUR COMPUTER.
SOME TYPES OF COMPUTER PROGRAMS

1. SYSTEM PROGRAMS
2. APPLICATION PROGRAMS
3. COMPILERS
1. SYSTEM PROGRAMS

THESE ARE PROGRAMS THAT ARE NEEDED TO KEEP ALL THE


HARDWARE AND SOFTWARE SYSTEMS RUNNING TOGETHER
SMOOTHLY.

EXAMPLES ARE OPERATING SYSTEMS LIKE LINUX, WINDOWS, UNIX,


SOLARIS, AND MACOS.
2. APPLICATION PROGRAMS

THESE ARE PROGRAMS THAT PEOPLE USE TO GET THEIR WORK DONE.

EXAMPLES ARE A WORD PROCESSOR, GAME PROGRAMS, AND


SPREADSHEETS.
3. COMPILERS
COMPILERS ARE RESPONSIBLE FOR TRANSLATING COMPUTER PROGRAMS
INTO MACHINE LANGUAGE.
MACHINE LANGUAGE, ON THE OTHER HAND, IS THE LANGUAGE THAT THE
COMPUTER UNDERSTANDS.

EXAMPLE: JAVA COMPILER (JAVAC): THE JAVA COMPILER IS USED TO COMPILE


JAVA SOURCE CODE INTO BYTECODE THAT CAN RUN ON THE JAVA VIRTUAL
MACHINE (JVM).
PROGRAMMING LANGUAGE

A PROGRAMMING LANGUAGE IS A STANDARDIZED


COMMUNICATION TECHNIQUE FOR EXPRESSING INSTRUCTIONS TO A
COMPUTER. LIKE HUMAN LANGUAGES, EACH LANGUAGE HAS ITS
SYNTAX AND GRAMMAR. THESE INSTRUCTIONS ARE TRANSLATED
INTO MACHINE LANGUAGE THAT CAN BE UNDERSTOOD BY
COMPUTERS.
TWO CATEGORIES OF PROGRAMMING
LANGUAGES
1. HIGH-LEVEL PROGRAMMING LANGUAGE
2. LOW-LEVEL PROGRAMMING LANGUAGE
1. HIGH-LEVEL PROGRAMMING LANGUAGE
A HIGH-LEVEL PROGRAMMING LANGUAGE IS MORE USER-FRIENDLY, TO SOME
EXTENT PLATFORM-INDEPENDENT, AND ABSTRACT FROM LOW-LEVEL COMPUTER
PROCESSOR OPERATIONS SUCH AS MEMORY ACCESSES.
ADVANTAGES:
• MUCH EASY TO LEARN AND RELATIVELY FASTER TO PROGRAM IN.
• STATEMENTS NATURALLY LOOK LIKE NATURAL ENGLISH LANGUAGE,
INCLUDING THE MATHEMATICAL OPERATORS.
• ALLOWS THE PROGRAMMER TO SHOW HOW THE ALGORITHM SOLVES THE
PROBLEM IN A CLEARER AND MORE STRAIGHTFORWARD WAY.
2. LOW-LEVEL PROGRAMMING LANGUAGE
A LOW-LEVEL PROGRAMMING LANGUAGE HAS A
LIMITED NUMBER OF PROGRAMMING CONSTRUCTS, WITH
SELECTION AND ITERATION BEING PERFORMED USING
COMPARE AND BRANCH INSTRUCTIONS. THESE ARE MUCH
HARDER TO LEARN, MORE TIME-CONSUMING TO CODE,
AND DIFFICULT TO DEBUG.

• MACHINE CODE – PROGRAM IS TRANSLATED INTO


BINARY.
MACHINE CODE IS STORED IN BINARY AND LOOKS A LITTLE LIKE
THIS:
001000010 101100101 01001101 01011101 00100010 00010101 11010100

EXAMPLE OF MACHINE LANGUAGE FOR THE TEXT “HELLO


WORLD”:-

01001000 0110101 01101100 01101100 01101111 00100000 01010111


01101111 01110010 01101100 01100100
ASSEMBLY LANGUAGE
IT IS SLIGHTLY MORE USER-FRIENDLY BUT IS STILL TOO TECHNICAL
FOR MOST PEOPLE TO UNDERSTAND AND ONLY SPECIALIST
PROGRAMMERS CAN WORK USING IT.
TO WRITE A CODE AT THE PROCESSOR LEVEL, WE CAN USE
ASSEMBLY LANGUAGE THAT IS SPECIFIC TO A PROCESSOR
ARCHITECTURE OR FAMILY OF PROCESSORS.
THE ASSEMBLY CODE IS WRITTEN USING MNEMONICS, ABBREVIATED TEXT
COMMANDS.
EXAMPLE: LDA-LOAD
STO-STORE
AND ADD.

THE MACHINE CODE WE LOOKED AT PREVIOUSLY COULD BE CONVERTED TO


ASSEMBLY LANGUAGE AS FOLLOWS:
LDA181 ADD93 LDA21 STO185
ADVANTAGES:
• ASSEMBLY LANGUAGE IS OFTEN USED IN EMBEDDED SYSTEMS
SUCH AS SYSTEMS THAT CONTROL A WASHING MACHINE, TRAFFIC
LIGHTS, OR A ROBOT.
• IT HAS FEATURES THAT MAKE IT SUITABLE FOR THE FOLLOWING
TYPES OF APPLICATIONS:
• IT GIVES COMPLETE CONTROL TO THE PROGRAMMER OVER THE SYSTEM
COMPONENTS, SO IT CAN BE USED TO CONTROL AND MANIPULATE SPECIFIC
HARDWARE COMPONENTS.
• IT HAS VERY EFFICIENT CODE THAT CAN BE WRITTEN FOR A PARTICULAR
PROCESSOR ARCHITECTURE, SO WILL OCCUPY LESS MEMORY AND EXECUTE
(RUN) FASTER THAN A COMPILED/INTERPRETED HIGH-LEVEL LANGUAGE.
OVERVIEW OF THE HISTORY OF
COMPUTERS

YEAR: LATE MIDDLE AGES


DESCRIPTIONS:

THE FIRST DEVICE KNOWN TO CARRY OUT CALCULATIONS WAS THE ABACUS. IT
WAS INVENTED IN ASIA BUT WAS USED IN ANCIENT BABYLON, CHINA, AND
THROUGHOUT EUROPE UNTIL THE LATE MIDDLE AGES. THE ABACUS USES A
SYSTEM OF SLIDING BEADS ON A RACK FOR ADDITION AND SUBTRACTION.
Image Retrieve from:
https://www.nicepng.com/ourpi
c/u2t4u2r5a9o0o0o0_abacus-
abacus-computer/
YEAR: 1642
DESCRIPTIONS:

PASCALINE WAS A CALCULATING DEVICE


INVENTED BY BLAISE PASCAL, A FRENCH
PHILOSOPHER AND A MATHEMATICIAN. IT
HAD EIGHT MOVABLE DIALS ON WHEELS
THAT COULD CALCULATE SUMS UP TO EIGHT

Image Retrieve from: FIGURES LONG. IT CAN ONLY PERFORM


https://www.metmuseum.org/art/collection/sea ADDITION AND SUBTRACTION OPERATIONS
rch/777787
LIKE ABACUS.
YEAR: 17TH CENTURY
DESCRIPTIONS:

GOTTFRIED VON LEIBNIZ


INVENTED A DEVICE THAT WAS
ABLE TO ADD, SUBTRACT,
MULTIPLE, AND DIVIDE. THE
STEPPED RECKONER, ALSO
KNOWN AS LEIBNIZ
https://en.wikipedia.org/wiki/Stepped_reckoner
CALCULATOR.
YEAR: 1819
DESCRIPTIONS:

JOSEPH JACQUARD, A FRENCH WEAVER, DISCOVERED THAT THE WEAVING


INSTRUCTIONS FOR HIS LOOMS COULD BE STORED ON NEEDLES PASSED
THROUGH HOLES AND PICKED UP THREADS OF THE CORRECT COLOR AND
TEXTURE. THE IDEA OF STORING INFORMATION BY PUNCHING HOLES ON A
CARD TURNED OUT TO BE OF GREAT IMPORTANCE IN THE LATER DEVELOPMENT
OF COMPUTERS.
YEAR: EARLY AND MID-1800S
DESCRIPTIONS:
-CHARLES BABBAGES, AN ENGLISH MATHEMATICIAN AND PHYSICAL SCIENTIST,
DESIGNED TWO CALCULATING MACHINES- THE DIFFERENCE ENGINE AND
ANALYTICAL ENGINE.
-THE DIFFERENCE ENGINE COULD AUTOMATICALLY PERFORM COMPLEX
OPERATIONS, SUCH AS SQUARING NUMBERS.
-MOST OF BABBAGE'S WORK IS KNOWN THROUGH THE WRITINGS OF HIS
COLLEAGUE, ADA AUGUSTA, COUNTESS OF LOVELACE. AUGUSTA US CONSIDERED
TO BE THE FIRST COMPUTER PROGRAMMER.
YEAR: END OF THE 19TH CENTURY
DESCRIPTIONS:
HERMAN HOLLERITH INVENTED A CALCULATING MACHINE THAT RAN ON
ELECTRICITY AND USED PUNCHED CARDS TO STORE DATA. HOLLERITH FOUNDED
THE TABULATING MACHINE COMPANY, WHICH LATER BECAME KNOWN AS IBM OR
INTERNATIONAL BUSINESS MACHINE.
YEAR: 1944
DESCRIPTIONS:
THE FIRST COMPUTER-LIKE MACHINE
WAS THE MARK I. IT WAS BUILT BY IBM
AND HARVARD UNIVERSITY UNDER THE
LEADERSHIP OF HOWARD AIKEN.
PUNCHED CARDS WERE USED TO FEED
DATA INTO THE MACHINE. MARK I WAS 52
FEET LONG, WEIGHED 50 TONS, AND HAD
750, 000 PARTS.

https://www.thoughtco.com/howard-aiken-and-grace-
hopper-4078389
YEAR: 1946
DESCRIPTIONS:
THE ENIAC (ELECTRONIC NUMERICAL
INTEGRATOR AND CALCULATOR) WAS
BUILT AT THE UNIVERSITY OF
PENNSYLVANIA. IT CONTAINED 18, 000
VACUUM TUBES AND WEIGHED SOME 30
TONS.

https://sites.google.com/site/hongxacdthlt11/mo-
dau-tim/phan-1/eniac-sage-neac
YEAR: LATE 1940’S
Von Neumann Architecture
DESCRIPTIONS:
THE COMPUTERS THAT WE KNOW TODAY
USE THE DESIGN RULES GIVEN BY JOHN
VON NEUMANN. HIS DESIGN INCLUDED
COMPONENTS SUCH AS ARITHMETIC
LOGIC UNIT, CONTROL UNIT, MEMORY,
AND INPUT/OUTPUT DEVICES. NEUMANN'S
DESIGN MAKES IT POSSIBLE TO STORE THE
PROGRAMMING INSTRUCTION AND THE
DATA IN THE SAME MEMORY SPACE.
YEAR: 1951
DESCRIPTIONS:
THE UNIVAC (UNIVERSAL AUTOMATIC
COMPUTER) WAS BUILT AND SOLD TO
THE US CENSUS BUREAU.

https://arstechnica.com/tech-policy/2011/09/univac-
the-troubled-life-of-americas-first-computer/
YEAR: 1956
DESCRIPTIONS:
THIS ERA ALSO SAW THE EMERGENCE OF THE SOFTWARE DEVELOPMENT
INDUSTRY WITH THE INTRODUCTION OF FORTRAN AND COBOL, TWO EARLY
PROGRAMMING LANGUAGES. LATER ON, TRANSISTORS WERE REPLACED BY TINY
INTEGRATED CIRCUITS OR CHIPS THAT ARE SMALLER AND CHEAPER THAN
TRANSISTORS AND CAN CONTAIN THOUSANDS OF CIRCUITS ON A SINGLE CHIP.
YEAR: 1970
DESCRIPTIONS:
MICROPROCESSORS WAS INVENTED. IT IS AN ENTIRE CPU ON A SINGLE CHIP.
YEAR: 1977
DESCRIPTIONS:
STEPHEN WOZNIAK AND STEVEN
JOBS DESIGNED AND BUILT THE
FIRST APPLE COMPUTER IN THE
GARAGE.

https://medium.com/the-mission/40-lessons-from-40-
years-of-apple-ads-7a653e2738ab
YEAR: 1981
DESCRIPTIONS:
IBM INTRODUCED ITS PERSONAL
COMPUTER (PC).

https://www.computerhistory.org/timeline/1981/
YEAR: 1980S
DESCRIPTIONS:
CLONES OF THE IBM PC MADE THE PERSONAL COMPUTER EVEN MORE
AFFORDABLE.
YEAR: MID-1990S UNTIL
TODAY
DESCRIPTIONS:
PEOPLE FROM MANY WALKS OF LIFE
WERE ABLE TO AFFORD COMPUTERS. AS
OF TODAY, MODERN-DAY COMPUTERS
ARE VERY POWERFUL, RELIABLE AND
EASY TO USE. IT ALSO HAS ADVANCED
FEATURES.
https://www.mobilescout.com/tech/news/
n81605/lenovo-desktop-pc-price-computer-
price.html
THE PROGRAM DEVELOPMENT LIFE CYCLE
IN PROGRAMMING, WE FOLLOW THE PROGRAM DEVELOPMENT LIFE CYCLE IN
SOLVING REAL-WORLD PROBLEMS. IT IS NEEDED TO EXAMINE THE STEP-BY-STEP
PROCEDURE AND TO ENSURE THE EFFICIENCY OF THE SOLUTION. IT CONTAINS
THE FOLLOWING PHASES:
1. PROBLEM DEFINITION
2. PROBLEM ANALYSIS
3. ALGORITHM DESIGN AND REPRESENTATION (PSEUDOCODE OR FLOWCHART)
4. CODING AND DEBUGGING
STEP 1: PROBLEM DEFINITION

A PROBLEM DEFINITION IS A CLEARLY DEFINED PROBLEM THAT IS ALREADY HALF


THE SOLUTION. IN COMPUTER PROGRAMMING, IT REQUIRES US TO DESCRIBE THE
PROBLEM FIRST BEFORE WE EVEN TRY TO CREATE A SOLUTION.

EXAMPLE: CREATE A PROGRAM THAT WILL DETERMINE THE NUMBER OF TIMES A


NAME OCCURS IN A LIST
STEP 2: PROBLEM ANALYSIS

AFTER THE PROBLEM HAS BEEN ADEQUATELY DEFINED, THE SIMPLEST AND YET
THE MOST EFFICIENT AND EFFECTIVE APPROACH TO SOLVING THE PROBLEM MUST
BE FORMULATED. USUALLY, THIS STEP INVOLVES BREAKING UP THE PROBLEM
INTO SMALLER AND SIMPLER SUBPROBLEMS.
EXAMPLE PROBLEM: DETERMINE THE NUMBER OF TIMES A NAME OCCURS IN A
LIST
PROBLEM: DETERMINE THE NUMBER OF TIMES A NAME OCCURS IN A LIST

INPUT TO THE PROGRAM:


• LIST OF NAMES (LET'S CALL THIS nameLIST)
• NAME TO LOOK FOR (LET'S CALL THIS keyNAME)

nameList = Anna, Jemma, Kris, Liam, Anna

THE OUTPUT OF THE PROGRAM:


• THE NUMBER OF TIMES THE NAME OCCURS IN A LIST
keyName = Anna
Result = 2
STEP 3: ALGORITHM DESIGN AND
REPRESENTATION
AN ALGORITHM IS A CLEAR AND UNAMBIGUOUS SPECIFICATION OF
THE STEPS NEEDED TO SOLVE A PROBLEM IN A FINITE AMOUNT OF
TIME. IT MAY BE EXPRESSED IN EITHER:
1. HUMAN LANGUAGE (ENGLISH, TAGALOG)
2. GRAPHICAL REPRESENTATION LIKE A FLOWCHART
3. PSEUDOCODE – IT IS A CROSS BETWEEN HUMAN LANGUAGE AND A
PROGRAMMING LANGUAGE. IT IS AN ARTIFICIAL AND INFORMAL
LANGUAGE THAT HELPS PROGRAMMERS DEVELOP ALGORITHMS. THE
PSEUDOCODE IS VERY SIMILAR TO EVERYDAY ENGLISH.
EXPRESSING OUR SOLUTION THROUGH
HUMAN LANGUAGE:

1. GET THE LIST OF NAMES, LET'S CALL THIS namelist


2. GET THE NAME TO LOOK FOR, LET'S CALL THIS THE keyname
3. COMPARE THE keyname TO EACH OF THE NAMES IN namelist
4. IF THE keyname IS THE SAME AS A NAME IN THE LIST, ADD 1 TO THE
COUNT
5. IF ALL THE NAMES HAVE BEEN COMPARED, OUTPUT THE RESULT
EXPRESSING OUR SOLUTION THROUGH A
PSEUDOCODE:

1. Get namelist. Variable


nameList =
Value
Anna, Jemma, Kris,
Liam, Anna
2. Get keyname.
3. Set count=0. keyName = Anna

4. Compare keyname to namelist.


5. If keyname = name in namelist, then count + 1
6. Else, display count.
EXPRESSING OUR
SOLUTION
THROUGH A
FLOWCHART:
FLOWCHART
FLOWCHART
IN THE DICTIONARY DEFINITION, A FLOWCHART IS A
SCHEMATIC REPRESENTATION OF A SEQUENCE OF
OPERATIONS, AS IN A MANUFACTURING PROCESS OR
COMPUTER PROGRAM.
A FLOWCHART SHOWS THE:
• SHOWS THE LOGIC OF AN ALGORITHM
• EMPHASIZES INDIVIDUAL STEPS AND THEIR INTERCONNECTIONS
(E.G. CONTROL FLOW FROM ONE ACTION TO THE NEXT)
FLOWCHART SYMBOLS AND
SYMBOLS
REPRESENTATION
NAME WHAT IT REPRESENT
DENOTES THE BEGINNING,
TERMINAL SYMBOL END, OR POINT OF THE
INTERRUPTION
OF THE PROGRAM.
REPRESENTS AN I/O
FUNCTION, WHICH MAKES
INPUT/OUTPUT SYMBOL DATA AVAILABLE FOR
PROCESSING (INPUT), OR
DISPLAYING (OUTPUT) OF
PROCESSED INFORMATION.
REPRESENTS THE PROCESS
OF EXECUTING A DEFINE
PROCESS SYMBOL OPERATION OR GROUPS OF
FUCNTIONS THAT RESULT IN
A CHANGE IN VALUE, FORM,
OR LOCATION OF
INFORMATION.
FLOWCHART SYMBOLS AND
REPRESENTATION
SYMBOLS NAME WHAT IT REPRESENT

REPRESENT THE SEQUENCE


OF AVAILABLE INFORMATION
EXECUTABLE OPERATIONS.
FLOWLINE SYMBOL THE LINES CONNECT OTHER
SYMBOL, AND THE
ARROWHEAD ARE
MANDATORY.
REPRESENT THE DECISION
THAT DETERMINES WHICH OF
DECISION SYMBOL A NUMBER IF ALTERNATIVE
PATH IS TO BE FOLLOWED.

REPRESENTS ANY ENRTY


CONNECTOR SYMBOL FORM, OR EXIT TO, ANOTHER
PART OF THE FLOWCHART
STEP 4: CODING AND DEBUGGING

AFTER CONSTRUCTING THE ALGORITHM, IT IS NOW POSSIBLE TO


CREATE THE SOURCE CODE. USING THE ALGORITHM AS A BASIS, THE
SOURCE CODE CAN NOW BE WRITTEN USING THE CHOSEN
PROGRAMMING LANGUAGE.

DEBUGGING
DEBUGGING IS THE PROCESS OF FIXING SOME ERRORS (BUGS) IN
YOUR PROGRAM.
EXAMPLE PROBLEM 1:
WRITE AN ALGORITHM TO FIND THE AREA
OF A RECTANGLE.
EXAMPLE PROBLEM 2:
WRITE AN ALGORITHM FOR CALCULATING
THE SIMPLE INTEREST OF AN AMOUNT.
EXAMPLE PROBLEM 3:
WRITE AN ALGORITHM THAT WILL DETERMINE IF A
NUMBER IS POSITIVE OR
NEGATIVE.
PSEUDOCODE:
STEP 1: START
STEP 2: GET num
STEP 3: CHECK IF(num>0), PRINT "NUM IS POSITIVE."
STEP 4: ELSE, DISPLAY "NUM IS NEGATIVE."
STEP 5: STOP
TYPES OF ERRORS
1. COMPILE-TIME ERROR OR SYNTAX ERRORS
A SYNTAX ERROR OCCURS IF THERE IS A SYNTAX ERROR IN THE
CODE. THE COMPILER WILL DETECT THE ERROR, AND THE PROGRAM
WILL NOT COMPILE.
TYPES OF ERRORS
2. RUNTIME ERRORS
COMPILERS ARE NOT PERFECT, AND SO THEY CANNOT CATCH ALL
ERRORS AT COMPILE TIME. THIS IS ESPECIALLY TRUE FOR LOGIC
ERRORS, SUCH AS INFINITE LOOPS. THIS TYPE OF ERROR IS CALLED
RUNTIME ERROR.
THANK YOU

You might also like