CYB 310 - Fundamental Concepts in Programming - Lecture 1-1
CYB 310 - Fundamental Concepts in Programming - Lecture 1-1
CYB 310 - Fundamental Concepts in Programming - Lecture 1-1
CYB 310
The process of coding involves creating instructions to direct the computer to perform a specific
task. All software programs adhere to certain coding principles and concepts. A basic
understanding of various coding concepts may be beneficial if you're new to coding or if you
want to improve your coding skills. In this article, we discuss some fundamental coding concepts
along with their definitions and examples and offer some tips for improving your coding skills.
Fundamental coding concepts include a set of basic principles and related terminologies that
programmers can follow to write code that is simple to understand, modular, and efficient. The
basic coding concepts include variable declaration, basic control structures, data structures,
object-oriented programming, troubleshooting and debugging, and various programming tools.
These concepts are similar across different programming languages, such as C, C++, Python, and
Java.Related:
1. Variable declaration
Variables are containers for storing values. You can declare variables
using variable names. Declaring a variable instructs the operating
system to reserve a piece of memory with that variable name. You can
define a variable with letters, digits, and underscores. Variables store
standard data types, such as:
Number: Numbers store numerical values. The various numerical types include int, long,
float, and complex used to store signed integers, long integers, floating-point real values,
and complex numbers, respectively.
String: Strings store a set of characters enclosed either by single or double quotes.
List: Lists can store multiple items, such as integers, floats, strings, or other lists, in a
single variable. The items stored in a list are changeable, ordered, and accessible via
indexes.
Tuple: Tuples can store multiple items, such as integers, floats, strings, or other lists, in a
single variable. The items stored in a tuple are unchangeable, ordered, and accessible via
indexes.
Dictionary: Dictionaries store key-value pairs. The items stored in a tuple are unordered,
unchangeable, and accessible using a key.
2. Control structures
A control structure specifies the flow of control in a program. Analyzing certain parameters and
conditions determines the flow direction of a program. Control structures make it easier to
understand a flow of logic when developing algorithms or writing programs. There are three
basic types of control structures:
Sequential logic: The flow of a program executes in a specific order without skipping,
jumping, or switching to another block of code.
Selection logic: A condition determines whether a block of code gets executed or
skipped. Common examples include if and else-if.
Iteration logic: A block of code repeats a fixed number of times to achieve the desired
result. Common examples include for and while loop.
3. Data structures
A data structure provides an effective way to store and retrieve data. There are various data
structures that computer programmers can use to complete tasks and run applications. These are
some commonly used data structures:
Arrays: Arrays organize data by storing similar elements together and using contiguous
memory allocation. You can use arrays to store an ordered list of items.
Stacks: Stacks are linear structures that follow a last-in, first-out (LIFO) order for
executing operations. You can use stacks to store data that get processed in a specific
order.
Queues: The queue is a linear structure that follows a first-in, first-out (FIFO) order for
executing operations. You can use queues to store data that don't require immediate
processing.
Linked lists: Linked lists are linear data structures that use pointers to link elements
instead of contiguous memory locations. You can use them to implement stacks, queues,
and graphs.
Binary trees: Binary trees are non-linear structures containing nodes that have two
possible values or directions. You can use binary trees to represent hierarchy and
determine structural relationships in data.
Graphs: Graphs contain nodes and edges connected to one another. You can use these
data structures to study maps, resource allocation in operating systems, and social media
networks.
Hash-tables: Hash-tables, also known as maps, store key-value pairs. You can retrieve
the value in the hash table by specifying its key where a key can store multiple values.
4. Object-oriented programming
Object-oriented programming is based on the concept of objects and classes where an object may
contain data in the form of attributes and methods. Classes are user-defined blueprints or
prototypes from which you can create objects. For example, consider a class that represents a car.
The car class contains attributes such as colour, date of manufacture, weight, and mileage. You
can then use this class as a blueprint to create objects where each object represents a different car
with a unique set of attributes. Some important concepts in object-oriented programming
include:
2
Abstraction: Abstraction enables you to hide specific details about a class and provide
only essential information to the outside world. You can use the 'abstract' keyword to
declare an abstract class.
Inheritance: Inheritance enables you to create a new class from an existing class. For
example, you can create many child classes which inherit all the properties of their parent
classes and have their own set of additional attributes and methods.
Polymorphism: Using polymorphism, you can access objects of different types using the
same interface where each object provides its own implementation.
5. Debugging
Debugging is the process of removing errors from computer programs. The process allows
software development and engineering teams to ensure that the software works as intended. You
can encounter various coding errors throughout the development phase. Below is a list of
possible errors:
Syntax error
Syntax errors arise when characters or tokens in the code don't follow the syntax of the
programming language. These errors can be due to indentation errors, missing brackets, extra
commas, or misspelled commands. An IDE detects such errors and displays the line number,
error type, and description along with the error. After reviewing the error description, you can
modify the code to follow the correct syntax.
Runtime errors
A runtime error occurs when there is a flaw in the algorithm or logic of the code. This results in
the program producing unexpected results. You encounter logical errors only during runtime
since there are no errors in the code's syntax, which results in a successful compilation. For
instance, wrongly initializing a variable can cause a logical error in the code.
Latent errors
Latent errors, also known as hidden errors, arise when you use a specific set of data as input to
the program. A program can fail or produce incorrect results if you fail to account for an outlier
or edge case. You may have created a program that prompts users to enter their dates of birth but
does not account for characters or negative numbers they may enter incorrectly. This could cause
the program to crash or halt.
6. Programming tools
The integrated development environment (IDE) provides developers with tools for writing,
compiling, and executing code. The tools in IDEs facilitate code completion, code compilation,
debugging, and syntax highlighting. You can also add plugins to IDEs that let you browse the
framework codebase and add your own classes and features. IDEs can be used for the following:
Writing code: You can use IDEs to write and edit program code to complete a set of
tasks.
Compiling code: IDEs compile code by translating human-readable code to a format that
is understandable by the computer.
3
Debugging code: IDEs contain debugging tools to help you detect errors in a code and
make fixes.
Deploying code: After compilation and execution, IDEs make the program consumable.
This means that third-party users can run the code and obtain the results.
Auto-completion: Many new IDEs provide auto-complete suggestions for parts of code.
This helps programmers save time and focus on other important aspects.
Some examples of IDEs include PyCharm, Android Studio, Visual Studio, and Eclipse.