Programming
Fundamentals II (CSC
104)
Lecture I Revision
Delivered by Tandoh Lawrence (PhD.)
Revision I
• What is the main objective of this course?
• What is a program?
• What are the two advantages of being able to write
programs in the form of algorithms?
• What is problem solving?
Revision II
• What does solving problems require?
• What are the six steps of the software development
method?
• Why are some of these steps not suitable for problem
solving?
• Which steps make up the adapted problem solving
method?
• Discuss each of the steps
Revision III
• What is an algorithm?
• Is it true that for any problem, there are many
different solutions and they are all the same?
• If the above is not true, why?
• Are algorithms the same as computer programs?
Revision IV
• If not, what is the difference?
• What are the arithmetic expressions?
• What are the logical operators and how do they function?
• What are the relational operators and how they function?
Revision V
• What is a variable
• What is a constant
• What is an input
• What is the difference between a variable, a
constant, and an input
Revision VI
• What is the difference between “=“ and “==“
• What are the tree control structures and what roles do they play in
algorithm design
• Mention any three conditional statements that you know, give the
generic structure of each and discuss how they differ from each other
• Mention any two iterative statements that you know, give the generic
structure of each and discuss how they differ from each other
• Is it possible to prematurely exit the structures mentioned above
Revision VII
• What is the brute force algorithm
• How does the brute force algorithm work
• When does the brute force algorithm present an
optimal solution and when does it not
REVISION VIII
• What is the binary search algorithm
• Explain in detail how the binary search algorithm
works and its advantage
• What is the greedy algorithm
• Explain in detail how the greedy algorithm works
• Does the greedy algorithm always provide and optimal
solution and why
Revision IX
• Give an example to defend the answer given above
• What is the bubble sort algorithm
• Explain in detail how the bubble sort algorithm works
• What happens after each iteration of the bubble sort
algorithm
Revision x
• What are the two ways of representing algorithms?
• What are the advantages and disadvantages of each of
them?
• To which of the above do the following belong and what
does each of them stand for?
Revision XI
• What are functions?
• What are procedures?
• What is the difference between functions and procedures?
• Functions and procedures have two advantages: code
reusability and abstraction. What do these two terms
mean?
Revision XII
• Mention some data types
• What is the purpose of data types?
• What is a list?
• What is linked list?
• How many different types of linked lists exist and what are they?
• What is a stack?
• How does a stack operate?
• What can stacks be used to implement?
• What is a queue?
• How does a queue operate?
• How many different kinds of queues are there?
• What can each of the queues be used for?
Revision XIII
• What does QBASIC stand for?
• What is QBASIC?
• What is syntax?
Revision XIV
• Try as many of these as possible
• Write a program that will accept as input the users full name, department, age,
and sex and return the output “Hello, my name is ……. and I am a student of the
…………. department. I am a good ………….. .
• Write a simple program that will accept numbers between 1 and 12 and use that
to generate an output that will tell the user what the month is.
• Write code for a simple calculator that accepts two numbers and allows the user
to determine which of the operations (+,-,/,*) should be performed on them. The
calculator should then return the result with a descriptive text.
• Write a program that will accept 6 random numbers from a user and re-arrange
them using bubble sort. The program should return the numbers arranged in
ascending order on the same line.