Software development is a process of dividing Software project works into distinct phases to improve design, quality and user interface. This process is also known as software development life cycle. Phases of software development are same for all trades such as .NET, PHP, website designing, Odoo development, Android development etc.
This document provides an overview of problem solving and Python programming. It discusses computational thinking and problem solving, including identifying computational problems, algorithms, building blocks of algorithms, and illustrative problems. It also discusses algorithmic problem solving techniques like iteration and recursion. Finally, it briefly introduces the course titled "GE8151-PROBLEM SOLVING AND PYTHON PROGRAMMING".
Method overloading in Java allows methods within a class to have the same name but different parameters. It increases readability and allows methods to perform similar tasks with different input parameters. Method overloading is determined by Java by first matching the method name and then the number and type of parameters. It can be done based on the number of parameters, data type of parameters, or sequence of data types in parameters. The main advantage is that it performs tasks efficiently with variations in argument types or numbers under the same method name. A disadvantage is that it can be difficult for beginners and requires more design effort in the parameter architecture.
This document discusses several techniques for estimating software costs: expert judgement, pricing to win, estimation by analogy, bottom-up, top-down, and algorithmic cost modeling. Expert judgement involves consulting experts and iterating until agreement. Pricing to win bases the estimate only on the customer's budget. Estimation by analogy compares a new project to similar past projects. Bottom-up and top-down respectively estimate from components or overall functionality. Algorithmic cost modeling uses mathematical equations based on historical data.
C++ is an object-oriented programming language that is a superset of C and was created by Bjarne Stroustrup at Bell Labs in the early 1980s. C++ supports features like classes, inheritance, and object-oriented design while also being compatible with C. Some key characteristics of C++ include its support for object-oriented programming, portability, modular programming, and C compatibility. C++ programs are made up of tokens like identifiers, keywords, literals, punctuators, and operators.
The document contains 15 Java programs demonstrating various programming concepts: 1. A "Hello World" program to print text 2. A class defining student attributes and methods to input/display student data 3. A class demonstrating constructor and method overloading 4. A program implementing command line arguments 5. A program demonstrating methods of the String class
Modular programming involves breaking down a program into individual components (modules) that can be programmed and tested independently. Functions are used to implement modules in C++. Functions must be declared before use so the compiler knows their name, return type, and parameters. Functions are then defined by providing the body of code. Variables used within a function have local scope while variables declared outside have global scope. Functions can pass arguments either by value, where a copy is passed, or by reference, where the address is passed allowing the argument to be modified. Arrays and strings passed to functions are passed by reference as pointers.
The document discusses intermediate code generation in compilers. It describes how compilers generate an intermediate representation from the abstract syntax tree that is machine independent and allows for optimizations. One popular intermediate representation is three-address code, where each statement contains at most three operands. This code is then represented using structures like quadruples and triples to store the operator and operands for code generation and rearranging during optimizations. Static single assignment form is also covered, which assigns unique names to variables to facilitate optimizations.
The document discusses process management in operating systems. It defines a process as a program during execution, which requires resources like memory and CPU registers. The document outlines the life cycle of a process, including the different states a process can be in like ready, running, waiting, blocked. It describes process creation and termination. The process control block (PCB) contains information needed to control and monitor each process. Context switching allows the CPU to switch between processes. Scheduling determines which process enters the running state. The document lists some common process control system calls and discusses advantages and disadvantages of process management.
Types of strings, How to specify token, regular expression representation, notations of regular expression