2. Describe how the jobs performed by computer programmers differ from the jobs performed by software engineers and systems analysts.
Software engineers generally focus more on designing and testing, approaching these tasks using computer science research, mathematical proofs, and engineering theory. Systems analysts analyse the design and function of information systems, hardware, software, procedures, and people. Software engineers, focus usually on the developement of software. Programmers, on the other hand, focus on software planning, coding, testing, and documenting. Computer programmers focus on all aspects of software development, but concentrate mainly on program coding.
4. Describe the differences between event-driven, procedural, object-oriented, and declaritive paradigms. Provide atleast one example of a language that supports each paradigm.
1. EVENT-DRIVEN-
In which a programmer developes a program by selecting user interface elements and specifying event-handing routines.
Examples- Visual Development Envirmnents

2. Procedural-
To conceptualize the solution to a program as a sequence of steps
Examples- number crunching tasks

3. Object-Oriented-
Is based on the idea that the solution for a problem can be visualized in terms of objects that interact with eachother.
Examples- real world objects.

4.Declaritive Paradigms-
Attempts to describes a problem without specifying eaxly how to arrive to a summarizes thease differeneces
Examples- processing words and languages

5. Describe the three elements of a problem statement. Provide examples within the context of the pizza problem.

6. List and describe three types of erros that are typically found when computer programs are tested.
1) Syntax error – occurs when an instruction doesn’t follow the syntax rules, or grammar, of the programming language.
Examples: Omitting a Keyword, such as THEN
Misspelling a keyword, PIRNT rather than PRINT
Omitting required punctuation
Using incorrect punctuation, such as colon instead of semicolon
Forgetting to close parentheses


Another type of program bug is a runtime error, which, as its name indicates, shows up when you run a program. Some runtime errors result from instructions that the computer can't execute. Some runtime errors are classified as logic errors. A logic error is an error in the logic or design of a program, such as using the wrong formula to calculate the area of a round pizza. Logic erroras can be caused by an inadequate definition of the problem or an incorrect formula for a calculation, and are usually more difficult to identify than syntax errors.

8. Define the term algorithm and explain how it relates to procedural programming.
An algorithm is a set of steps that is used for carrying out a task that can written down and implemented. Procedural programming uses an algorithm to start at a beginning point and work its way through to an ending point, by using a step by step algorithm.
10. Give an example of a sequence control structure, a selection control structure, and a repetition control structure.

Sequence control structure example -
Print "This is the First line."
Goto Widget
Print "This is the Second line."
Widget: Print "All Done!"
End

Selection control structure example -
Input "Enter a number from 1 to 10: "; Number
If Number > 10 Then Print "That number is greater than 10."
Else Print "That number is 10 or less."
End

Repetition control structure example-
For N = 1 to 3
Print "There's no place like home."
Next N
End

11. Define the following terms associated with object-oriented programming: object, class, superclass, subclass, attribute, message, method, inheritance, polymorphism, and encapsulation.external image msword.png Object.doc

12. Define the following terms associated with the declaritive paradigm: fact, rule, predicate, arguments, goal, instantiation, and backtracking.
1. fact- is a statement that provides the computer with basic information for solving problems.
2. rule- is a general staement about the relationship between facts.
3. predicate- descibes the relationship between the arguments.
4. argument- represents one of the main subjects that a fact describes.
5. goal- its a question in prolog programs database.
6. instantiation- finding a value for a variable.
7. backtracking- is used if necessary to deal with mutiple variables.

14. Describe how buffer overflows and verbose error messages make computer programs vulnerable to hackers.

Buffer overflow is a condition in which data in memory exceeds its expected boundaries and flows into memory areas intended for use by other data.
Verbose error messages presents attackers with info about the directory location of programs files, the structure of a database, or the layout of the program in memory.


16. List steps that consumers can take to avoid vulnerabilities that exist in defective software code.

· Select applications from software publishers with a good security track record.
· Watch for patches and apply them.
· Consider using open source software, which has been extensively reviews by the programming community.
· Keep your firewall and antivirus software deployed/active and up to date.