0% found this document useful (0 votes)
134 views52 pages

Programming For IT Professionals

The document provides an overview of basic programming concepts including explaining programming languages like C, HTML, and Perl; it describes fundamental programming ideas such as branching, looping, and testing; and it gives examples of code in each language to illustrate how to write simple programs.

Uploaded by

Ali
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
134 views52 pages

Programming For IT Professionals

The document provides an overview of basic programming concepts including explaining programming languages like C, HTML, and Perl; it describes fundamental programming ideas such as branching, looping, and testing; and it gives examples of code in each language to illustrate how to write simple programs.

Uploaded by

Ali
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 52

Programming for

IT Professionals

Hennepin Technical College CCIS1105: Network Essentials


Objectives
• Explain basic programming concepts
• Write a simple C program
• Explain how Web pages are created with HTML
• Describe and create basic Perl programs
• Explain basic object-oriented programming concepts

Hands-On Ethical Hacking and Network Defense 2


Introduction to Computer
Programming
• Computer programmers must understand the rules
of programming languages
– Programmers deal with syntax errors
• One minor mistake and the program will not run
– Or worse, it will produce unpredictable results
• Being a good programmer takes time and patience

Hands-On Ethical Hacking and Network Defense 3


Computer Programming
Fundamentals
• Fundamental concepts
– Branching, Looping, and Testing (BLT)
– Documentation

Hands-On Ethical Hacking and Network Defense 4


Branching, Looping, and Testing (BLT)
• Function
– Mini program within a main program that carries out a
task
• Branching
– Takes you from one area of the program to another
area
• Looping
– Act of performing a task over and over
• Testing
– Verifies some condition and returns true or false
Hands-On Ethical Hacking and Network Defense 5
Branching, Looping, and Testing (BLT)
(continued)
main()
{
int a = 1 /* Variable initialized as an integer, value 1 */
if (a > 2) /* Testing if "a" is greater than 2 */
printf("A is greater than 2");
else
GetOut(); /* Branching--calling a different function */

GetOut() /* Do something interesting here */


{
for(a=1; a<11; a++) /* Loop to print 10 times */
{
printf("I'm in the GetOut() function");
}
}
}

Hands-On Ethical Hacking and Network Defense 6


Branching, Looping, and Testing (BLT)

• Algorithm
– Defines steps for performing a task
– Keep it as simple as possible
• Bug
– An error that causes unpredictable results
• Pseudocode
– English-like language used to create the structure of a
program

Hands-On Ethical Hacking and Network Defense 7


Documentation
• Documenting your work is essential
– Add comments to your programs
– Comments should explain what you are doing
• Many programmers find it time consuming and
tedious
• Helps others understand your work
• Industry standard
– One bug for every 2000 lines of code
• Windows 2000 contains almost 50 million lines
– And fewer than 60,000 bugs
Hands-On Ethical Hacking and Network Defense 8
Documentation (continued)

// The following function was added to the program June 15, 2005
// per a request from the Marketing Department.
// It appears that reports generated by the sales() function were
// not giving the Marketing folks information about the sales in
// Asia. This new function now uses data from text files from the
// offices in Tokyo and Hong Kong. – Bob C. Twins

Hands-On Ethical Hacking and Network Defense 9


Learning the C Language
• Developed by Dennis Ritchie at Bell Laboratories in
1972
• Powerful and concise language
• UNIX was first written in assembly language and
later rewritten in C
• Assembly language
– Uses a combination of hexadecimal numbers and
expressions
• C++
– An enhancement of the C language
Hands-On Ethical Hacking and Network Defense 10
Learning the C Language (continued)

• Compiler
– Converts a text-based program (source code) into
executable or binary code
• Some C compilers can also create executable
programs in C++

Hands-On Ethical Hacking and Network Defense 11


Hands-On Ethical Hacking and Network Defense 12
Anatomy of a C Program

• The first computer program a C student learns

/* The famous "Hello, world!" C program */


#include <stdio.h>
/* Load the standard IO library. The library contains
functions your C program might need to call to
perform various tasks. */
main()
{
printf("Hello, world!\n\n");
}

Hands-On Ethical Hacking and Network Defense 13


Anatomy of a C Program (continued)

• Use /* and */ to comment large portions of text


• Use // for one-line comments
• #include statement
– Loads libraries that hold the commands and functions
used in your program
• Parentheses in C mean you are dealing with
functions
• main() function
– Every C program requires a main() function

Hands-On Ethical Hacking and Network Defense 14


Anatomy of a C Program (continued)

• Braces shows where a function begins and ends


• Functions can call other functions
– Parameters or arguments are optional
• \n represents a line feed

Hands-On Ethical Hacking and Network Defense 15


Hands-On Ethical Hacking and Network Defense 16
Declaring Variables

• A variable represents a numeric or string value


• You can declare variables at the beginning of a
program
– You must declare a variable before using it
• C supports several variable types
• Conversion specifiers tells the compiler how to
convert the values in a function

Hands-On Ethical Hacking and Network Defense 17


Hands-On Ethical Hacking and Network Defense 18
Hands-On Ethical Hacking and Network Defense 19
Declaring Variables (continued)

• Operators
– Compare values
– Perform mathematical calculations
– Types
• Mathematical operators
• Logical operators

Hands-On Ethical Hacking and Network Defense 20


Hands-On Ethical Hacking and Network Defense 21
Hands-On Ethical Hacking and Network Defense 22
Branching, Looping, and Testing in C
• Branching
main()
{
prompt(); //Call function to prompt user with a question
display(); //Call function to display graphics on screen
calculate(); //Call function to do complicated math
cleanup(); //Call function to make all variables equal to
//zero
prompt()
{
[code for prompt() function goes here]
}
display()
{
[code for display() function goes here]
}
[etc.]
}
Hands-On Ethical Hacking and Network Defense 23
Branching, Looping, and Testing in C
(continued)
• While loop
main()
{
int counter = 1; //Initialize counter variable
while (counter <= 10) //Do what's in the brackets until false
{
printf("Counter is equal to %d\n", counter);
++counter; //Increment counter by 1;
}
}

Hands-On Ethical Hacking and Network Defense 24


Hands-On Ethical Hacking and Network Defense 25
Branching, Looping, and Testing in C
(continued)
• Do loop
main()
{
int counter = 1; //Initialize counter variable
do
{
printf("Counter is equal to %d\n", counter);
++counter; //Increment counter by 1
} while (counter <= 10); //Do what's in the brackets until
//false
}

• For loop

Hands-On Ethical Hacking and Network Defense 26


Hands-On Ethical Hacking and Network Defense 27
Understanding HTML Basics
• HTML is a language used to create Web pages
• HTML files are text files
• Security professionals often need to examine Web
pages
– Be able to recognize when something looks
suspicious

Hands-On Ethical Hacking and Network Defense 28


Creating a Web Page Using HTML
• Create HTML Web page in Notepad
• View HTML Web page in a Web browser
• HTML does not use branching, looping, or testing
• HTML is a static formatting language
– Rather than a programming language
• < and > symbols denote HTML tags
– Each tag has a matching closing tag
– <HTML> and </HTML>

Hands-On Ethical Hacking and Network Defense 29


Hands-On Ethical Hacking and Network Defense 30
Hands-On Ethical Hacking and Network Defense 31
Hands-On Ethical Hacking and Network Defense 32
Understanding Practical Extraction
and Report Language (Perl)
• PERL
– Powerful scripting language
– Used to write scripts and programs for security
professionals

Hands-On Ethical Hacking and Network Defense 33


Background on Perl
• Developed by Larry Wall in 1987
• Can run on almost any platform
– *NIX-base OSs already have Perl installed
• Perl syntax is similar to C
• Hackers use Perl to write malware
• Security professionals use Perl to perform
repetitive tasks and conduct security monitoring

Hands-On Ethical Hacking and Network Defense 34


Hands-On Ethical Hacking and Network Defense 35
Hands-On Ethical Hacking and Network Defense 36
Hands-On Ethical Hacking and Network Defense 37
Understanding the Basics of Perl
• perl –h command
– Gives you a list of parameters used with perl
• perldoc
– Displays the description of a perl scripting command

Hands-On Ethical Hacking and Network Defense 38


Hands-On Ethical Hacking and Network Defense 39
Hands-On Ethical Hacking and Network Defense 40
Hands-On Ethical Hacking and Network Defense 41
Understanding the BLT of Perl
• Some syntax rules
– Keyword “sub” is used in front of function names
– Variables begin with the $ character
– Comment lines begin with the # character
– The & character indicates a function

Hands-On Ethical Hacking and Network Defense 42


Branching in Perl
# Perl program illustrating the branching function
# Documentation is important
# Initialize variables
$first_name = "Jimi";
$last_name = "Hendrix";
&name_best_guitarist;
sub name_best_guitarist
{
printf "%s %s %s", $first_name, $last_name, "was
the best guitarist!";
}

Hands-On Ethical Hacking and Network Defense 43


Looping in Perl
• For loop
for ($a = 1; $a <= 10; $a++)
{
print "Hello security testers!\n"
}
• While loop
$a = 1;
while ($a <=10)
{
print "Hello security testers!\n";
$a++
}
Hands-On Ethical Hacking and Network Defense 44
Testing Conditions in Perl
if (($age > 12) && ($age < 20))
{
print "You must be a know-it-all!";
}
elsif ($age > 39)
{
print "You must lie about your age!";
}
else
{
print "To be young...";
}

Hands-On Ethical Hacking and Network Defense 45


Testing Conditions in Perl (continued)
unless ($age == 100)
{
print "Still enough time to get a bachelor's
degree.";
}

Hands-On Ethical Hacking and Network Defense 46


Hands-On Ethical Hacking and Network Defense 47
Understanding Object-Oriented
Programming Concepts
• New programming paradigm
• There are several languages that support object-
oriented programming
– C++
– C#
– Java
– Perl 6.0
– Object Cobol

Hands-On Ethical Hacking and Network Defense 48


Components of Object-Oriented
Programming
• Classes
– Structures that hold pieces of data and functions
• The :: symbol
– Used to separate the name of a class from a
member function
– Example:
• Employee::GetEmp()

Hands-On Ethical Hacking and Network Defense 49


Components of Object-Oriented
Programming (continued)
// This is a class called Employee created in C++
class Employee
{
public:
char firstname[25];
char lastname[25];
char PlaceOfBirth[30];
[code continues]
};
void GetEmp()
{
// Perform tasks to get employee info
[program code goes here]
}
Hands-On Ethical Hacking and Network Defense 50
Summary
• Writing an algorithm and using pseudocode
– Good habits to adopt when writing computer programs
• Clear documentation of program code is essential
• C is one of the most popular programming languages
• BLT
– Branching
– Looping
– Testing
• Many C compilers available
– GNU GCC is an open-source compiler for Linux
Hands-On Ethical Hacking and Network Defense 51
Summary (continued)
• HTML
– Primary language used to create Web pages
• Perl and C programming languages
– Used to create most security tools and scripts
• Object-oriented programming
– Based on classes
• Structures containing both data and functions
• Win32 API
– Interface to the Windows operating system

Hands-On Ethical Hacking and Network Defense 52

You might also like