Problem Solving Flashcards
things you can touch (the machines, wiring, and other physical components of a computer or other electronic system.)
hardware
set of instructions; intangible (the programs and other operating information used by a computer.)
software
software developers write _________
programs
software is in _________ language
programming
The grammar rules include ________ and _________.
syntax, semantics
a set of instructions in a specific sequence which must correctly describe the logic of a particular need
correct program
computers can only understand _________ language
machine
Programming languages are usable by humans but must be translated to ______ code
machine
The 2 types of translators (translate programming language into machine code)
compilers (more common) and interpreters
Both types of translators can identify errors in your program and are limited to identifying ________ errors
syntactical
after is translated, the program can be _____, or __________
run, executed
Computers receive ______, process that input, and _______ the results
input, output
2 types of internal memory
memory, main(primary) memory
is the place in a computer where the operating system, application programs, and data in current use are kept so that they can be quickly reached by the computer’s processor. Volatile- its contents are lost when the computer loses power
RAM (random access memory)
Computer hardware that stores programs or data that cannot be added to, modified, or deleted. It does not require power to maintain its contents, and is often used to save instructions that enable the computer’s operating system to communicate with other hardware. Not volatile
ROM (read only memory)
is all addressable data storage that is not currently in the computer’s main storage or memory. Synonyms are auxiliary storage and secondary storage. It is more permanent and can be retrieved after the computer loses power
External storage
Examples of external storage
hard drives, USB drives, burn-abled CD/DVD
What is memory measured in?
nanoseconds
What is hard drive speed measured in?
milliseconds
what is the purpose of writing programs?
to solve problems
General problem solving steps
- Understand the problem
- Dissect the problem into manageable pieces
- Design a solution
- Consider alternatives to the solution and refine it 5.Implement the solution
- Test the solution and fix any problems that exist
Software problems fail because the _________ wasn’t understood
problem
Avoid _________ assumptions
undocumented
Problem solving is fundamental to _________ _________.
software development
_______-_______ approach - dissect solutions into classes and pieces
object-oriented
English papers
- Thesis Statement (understanding the problem)
- Source Cards (Analysis)
- Outline
- Rough Draft (testing)
- Final Draft
english term paper - problem solving approach
Steps to software development (5)
- Understand the problem
- Plan the logic
- Code the program
- Test the program
- Deploy the program and maintain it
One of the most difficult parts of software development. User’s ideas of their needs may be vague. User may frequently change their mind mid-project. Good software developer plays many roles: detective, etc. First step to software development
Understand the Problem
Designs a plan to solve the problem. Common tools used are flowcharts (graphical representation) and pseudocode (outline). Involve writing the steps in English. Second step in software development.
Plan the logic
Why is planning important?
Even professional programmers do this. Without good planning it turns into spaghetti code (is a pejorative phrase for source code that has a complex and tangled control structure, especially one using many GOTO statements, exceptions, threads, or other “unstructured” branching constructs). Even building a dog house takes some engineering and design. Poor engineering leads to ad-hoc structures (ex. Winchester Mystery House). Poor engineering has disastrous consequences.
After the requirements have been elicited, a solution must be implemented. Software developers use programming languages to implement the solution. The third step in software development
Code the Problem
is a programming environment that has been packaged as an application program, typically consisting of a code editor, a compiler, a debugger, and a graphical user interface (GUI) builder
An integrated development environment (IDE)
Once you have made the program, you must test it. Two types of errors can occur: Syntax errors (grammatical errors) and logical errors. Run-time errors are a special type of logic error that can cause the program to crash. This is the 4th step in software development.
Test the Program
The three levels of testing
- Unit testing (the creator testing the program)
- Integration testing ( is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before acceptance testing)
- Acceptance testing ( is a level of the software testing where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.)
Deploying a program means delivering a software and all of its components to the client or user of the program (can be as simple as a single file or could take months) The fifth and final step in software development.
Deployment and Maintenance
a previous software solution that fulfilled a business need. May be replaced when cost of maintenance is too high.
legacy system
entire set of actions an organization must take to switch over to using new software. Can take months or years
conversion