Fundamentals of computer programming
Software programming and design is the heart of software engineering activities. In water-
fall methodologies, software design used to be separate activity from software programming.
But in agile methodologies both these activities are done together.
Software programming is basically understanding the requirement as to what computation
needs to be done. After understanding the problem, a design can be though out. Building a
large software product or even some features of the product involves breaking the design in-
to many parts. Software products are inherently complex and breaking the design into smal-
ler components helps in reducing this complexity. Building a few large methods or classes
is not a good design because understanding such large pieces of code will be extremely dif-
ficult. So you need to write many smaller classes and methods which will be communic-
ating with each other and thus together form the required software product features. This
kind of design will involve thinking about what classes need to be made and what methods
will be created to do the required computation by each class. You also need to find out as to
how these classes will be communicating with each other. Communication between classes
or methods is achieved through passing values using parameters from one class to another.
Once design is clear then source code can be written to implement the design.
Learning software design & programming involves learning about variables, operators,
methods and classes. Variables and methods can have access levels ranging from local to
class levels. You define local variables when they are needed only inside a method. Simil-
arly you can define a method as a local member of a class when that method is needed to do
computation only inside that class.
Object oriented programming is all about creating objects from their classes and then using
them like a variable. In that sense, classes are just a template for creating objects. Objects
have their own data and behaviors. In fact an object can have a structure in which it can keep
data of many different data types. This kind of computing promotes reuse. If you can create
objects with good structures then you can use them to get or set many types data.
Database programming involves getting user inputs and saving or modifying permanent data
which reside inside a database. Most software products use some kind of database and thus
database programming is one of the most used areas.
Web based software products are being built in large quantities as internet has become very
popular and vendors are creating web based applications to fulfill needs of increasing de-