agile software development algorithm applied mathematics assembly language association for computing machinery big o notation binary numeral system cobol cam charles babbage cleanroom software engineering compiler computational overhead computer program computer programming in the punch card era computer terminal data storage device debugging digital integration documentation extreme programming fortran functional programming functional specification hello world program herman hollerith history of programming languages humanoid robot ibm ibm rational unified process integrated development environment iterative and incremental development key punch lever linguistics list of basic computer programming topics list of computer programming topics list of programming languages logic logic programming machine mainframe computer mechanism netbeans object-oriented programming offshore outsourcing pasteboard percussion instrument prior art procedural programming programmer programming language programming paradigm rapid application development requirements analysis robot software architecture software configuration management software deployment software design software development process software documentation software engineering software maintenance software project management software quality software testing source code spiral model static analysis tabulating machine text editor unified modeling language unit record equipment university of sheffield user experience design von neumann architecture waterfall model wikibooks