views:

867

answers:

14

I am getting ready to teach someone without any background in programming a language (PHP) I want to make sure I don't forget any important vocabulary this is what I have so far:

  1. Function/Method
  2. Variable
  3. Class
  4. String
  5. Integer
  6. Boolean
  7. Float
  8. Static Typing (Not needed for PHP but should be understood.)
  9. Dynamic Typing

Are there any others that you think are important for a someone new to programming to understand.

Looking for words relevant to any language.

+10  A: 
  • Syntax
  • Data Types
    • Numeric
    • Strings
    • Booleans
    • Compound Data Types
    • Converting between Data Types
  • Variables and Scope
  • Constants
  • Operators
    • Arithmetic
    • String concat
    • Bitwise
    • Assignment
    • Referencing
    • Comparison
    • Logical
  • Control Structures
    • Conditional (if, switch)
    • Iterative (for, foreach, while)
  • Error Management
  • Functions (input, return values, scope)
  • Arrays
  • Strings and Patterns (concat, regex, printf, ...)
  • Database
  • OOP

freely taken from the book 'ZEND PHP 5 Certification, Study Guide, Second Edition, D. Shafik & B. Ramsey

tharkun
Here's a link to a pdf version of the book referenced: http://rs664.rapidshare.com/files/292862725/zend.php.5.certification.study.guide.-.second.edition.pdf
Chris
+2  A: 

About the language:

For general Web Development:

  • HTML
  • HTTP Sessions / Cookies
  • HTTP Get/Post Requests
  • JavaScript overview

Great if you teach from the beginning:

  • OOP
  • Source Control (your student will really thank you this on the short term!)
CMS
+2  A: 

Don't know much PHP, so not sure if these apply:

  • Property
  • Parameter
  • Return value
  • Value type/Reference type
Franci Penov
+5  A: 

One of the most important things for beginners is probably [the distinction of]:

value/reference

EDIT: By the way, if you want to try a visual approach: I found that a set of [different sized] plastic boxes from the kitchen and label stickers can greatly help explaining variables and pointers. :-)

paprika
+7  A: 

Don't forget scope

tehvan
+1, not just a Vocab word but a whole topic I forgot about.
Unkwntech
+2  A: 
  • User (and Client)
  • Requirements
  • Testing
  • Debugging
  • Deployment (and Support)
  • Version control
  • Concurrency
  • Boolean
  • Loops
  • Architecture (incl. "tiers")
ChrisW
paprika
+1  A: 
  • Operators (unary, binary, and ternary)
  • Operands
  • Expressions
  • Statements
  • Blocks
yjerem
+1  A: 

pretty much everything has been covered already, but dont forget

regular expressions
recursion
type casting
Sujoy
+1  A: 

If you really are going to be teaching someone without any programming knowledge, there are (in my opinion) a few things on that list that should not be tackled until they have come to grips with the basics.

I would see the basics as

  • Variables
  • String
  • Integer
  • Boolean
  • Float
  • Operators (= == !)
  • Control Structures
  • Loops
  • Functions

If they get that much then slowly move on to the other items above, otherwise the poor person wont even get off the ground.

Toby Allen
+1  A: 

There's already a huge list of terms in this thread and it could easily become overwhelming for a new programmer... so don't put your student off by dumping a whole load of vocabulary on him/her. In fact, the vocabulary doesn't matter much compared to the concepts involved in programming - it's far more important to know what a concept is as opposed to what it's called. For instance, static vs. dynamic typing: who cares if you never say the words "dynamic typing", as long as you get the point across that PHP will figure out automatically whether a variable is holding text or a number or whatever.

I would suggest only introducing terms as (or after) you explain their meanings, since that keeps the focus on the mechanics of programming, i.e. the important stuff. Also, when doing it that way you'll know exactly what vocabulary you have to introduce based on what concepts you're teaching. You could even sort out your vocabulary list in an appropriate order and use it as a course outline of sorts ;-) (could be a nice application of topological sorting, in fact)

David Zaslavsky
This list is mostly for my own use so I don't forget anything.
Unkwntech
+1  A: 

For when things go wrong:

  • bug
  • exception
  • breakpoint
  • error
  • warning
Ian Hopkinson
A: 

best practices

coding conventions

design patterns

tdd (test driven development)

algorithms and data structures

syntax and semantics

Peter Miehle
A: 

Vocabulary may change from language to language (e.g., C++ vs. Objective-C). Even concepts sometimes are moving targets.

I remember having learned programming with the user's guide of a TI-57 calculator which represented control flow with a railway and program counter with a train.

I remember some old computers of the time of Commodore-64 which implemented a small drawing language where the user entered instructions to a small turtle on the screen (go straight 10 steps, turn left 30 degrees, ...). The aim was to give people a starting point in computing.

More than vocabulary and theory, these were very concrete approaches for learning programming.

mouviciel
A: 

assignment vs. initialization .

declaration vs. definition .

class FOO; //declaration
class FOO 
{ public:
     FOO(int k):var1(k) // var1 is initialized to k and var2 to default int
     {
        var2 = 0; // var2 is assigned.
     }// 
     FOO()
     {
     var1=0; var2 =0; //both var1 and var2 are assigned.
     }
     FOO(const FOO & k):var1(k),var2(0) //both var1 and var2 are initialized.
     {} 

private:
     int var1,var2;    
}; //definiton

int main() 
{
FOO foo1(1); // foo1 is direct initialized
FOO foo2 = 2; // foo2 is copy initialized but not an **assignment**. 
foo1 = foo2; //assignment
}
Comptrol