Week 1: Introduction to Programming Languages
Programming Languages Introduced:
Microsoft Language Pascal
DATATRIEVE
ALGOL
PL
SALSA
ATS
Assembly
ELAN
Fancy SuperTalk
ABC
C++
GM Constraint
XOTd
de Cayenne
Oxygene
PEARL
BUSS notation
Cyclone
TACPOL
Shell
Visual
Go
ABAP
C/AL
Cg
Rust
GDL
Bistro
JOSS
PT, Co Scale
Genie
Inform
Blue
Sense Talk
HAL/S
SIMSCRIPT
Revolution
Sawzall
Chapel
Adenine
Agora
Clojure
Rapira
SIMPLE
CSKA
Autolt
Microcode
Lynx
SAM76
Redcode
Ajax
Not Trac
Object language
Lisp
VB
A+
JavaScript
Delphi
DASL
Script
PHP
Common
ORCA/Modula-2
Arc
Moby
Uniface
Caral
WATFOR
Eustisp
ObjectScript
D
R
Forth
MicroScript
Logo
Squirral
Windows/Dos
Kaleidoscope
IMP
b
T
Newapeak
GameMonkey
Prolog
Caml
Z
ECMAScript
Java
Programming
Ruby
EXEC
RPG
CorVision
Action
REXX
NETO
Simula
Python
Strand
Robot
SP/k
Boomerang
COBOL
GraphTalk
Turing
ISWIM
Haxe
Eiffel
S/SPL/SQL
A
Chuck
Overview of Programming Languages:
Notable examples include:
C
C++
Ruby
C#
PHP
Objective-C
Python
JavaScript
Perl
Visual Basic
About the Instructor: Dr. Brahim El Boudani
Contact Information:
Email: elboudani@lsbu.ac.uk
Room: FW-210
Phone: TBA
Affiliation: LSBU, School of Computer Science and Digital Technologies
Research Interests:
Machine Learning
WebRTC
IoT
5G Networks
Web Development
Student Interaction
Introductions:
Students are encouraged to share personal information, interests, and previous programming experience.
Discussion Points:
What interests you about Computer Science?
Why do you want to learn programming?
Key expectations from the course.
Academic Support
Support Resources:
Teaching team for the course.
Skills for Learning team at LSBU Hub:
Offers support in Academic Practices and English Language Development.
Mathematics and Statistics support available.
Appointments:
One-to-One Appointments available (30 minutes).
Resources for Students
Free Software for Students:
Labs equipped with software necessary for the module:
Microsoft Azure Dev-Tools for Students
Microsoft 365
GitHub Student Pack
Module Guide Overview
Module Aims:
Provide students with fundamental programming skills.
Understand software development concepts, including writing source code and compiling/executing programs.
Familiarization with development tools and environments.
Module Structure & Assessment
Contact Time:
4 hours weekly with teaching team
2 hours lecture
2 hours tutorial
Assessment Breakdown:
In-class Test: 50% (Multiple choice questions)
Coding Assignment: 50% (Report and source code).
Core Textbooks
Mandatory Reading:
Kernighan, B. W. and Ritchie, D. M. (1988). The C Programming Language. 2nd ed. Englewood Cliffs, N.J.: Prentice Hall.
Chopra, R. (2017). C Programming. Mercury Learning & Information.
K. N. King (2008). C Programming: A Modern Approach. New York: W.W. Norton & Company.
Pal, M. (2012). C Programming. Oxford: Alpha Science International Ltd.
Optional Reference Textbooks
Oualline, S. (1997). Practical C Programming. 3rd ed. O'Reilly Media.
Ackermann, E. C. (1993). C Programming Language. Piscataway, NJ: Research & Education Association, U.S.
Clean Code: A Handbook of Agile Software Craftsmanship (2009). Prentice Hall.
Perry, G. (2013). C Programming Absolute Beginner's Guide. Que.
Harwani, B. M. (2020). Practical C Programming. Birmingham: Packt Publishing Limited.
Griffiths, D. and Griffiths, D. (2012). Head First C. [1st edition]. Sebastopol, CA: O'Reilly.
Important Reminders
Thoroughly review the module guide.
Use a logbook for notes.
Maximize lab time by completing examples/exercises promptly.
Participate in virtual interactions (Q&A, polls, quizzes, etc.) through VLE forum.
Check Moodle regularly for updated materials:
Lecture slides
Tutorial sheets
Recorded lectures
Starting with Programming Basics: Algorithms & Flowcharts
Computer Programs & Software Development
Computer Program:
Defined as a set of instructions to make a computer perform specific tasks.
Computer Programming:
The act of writing or editing source code.
Software Development:
Refers to the process involved in writing computer programs.
Understanding Algorithms
Definition of Algorithm:
A formal step-by-step method for solving problems, consisting of:
An ordered sequence of instructions.
Each step should be unambiguous, finite, and terminate after a fixed number of steps.
Must include some input and potentially produce output.
Formulating Algorithms:
Can use natural language, sketches, diagrams, or pseudocode.
The representation intended for machine readability is termed programming.
Algorithm Example: Finding Maximum in an Array
INPUT: An array X with n elements.
OUTPUT: Finding the largest element, MAX, in array X.
Set MAX = 0
For j = 1 to n do
If (X[j] > MAX) then MAX = X[j]
End for
Stop
Flowcharts
Definition of Flowchart:
A pictorial representation of an algorithm that serves to:
Record, analyze, and communicate problem information in a human-readable format.
Outline the structure and logic of the algorithm, as well as the sequence of operations.
Components:
Made up of standard symbols indicating different operations.
Once drawn, easily translates into a program in any high-level language.
Flowchart Symbols
Flowlines:
Represent the direction of processing.
Start/End:
Oval shape signifies the beginning and end of a flowchart; there should only be one entry and one exit point.
Input/Output:
Parallelogram shape indicates processes of input and output.
Process:
Rectangle symbolizes a process involved.
Decision:
Diamond indicates points where a decision is to be made within the flowchart.
Comparison: Flowchart vs Algorithm
Flowchart | Algorithm |
|---|---|
Graphical representation | Step-by-step finite procedure |
Uses various shapes joined by flow lines | Step-by-step written instructions |
Flow control moves from top to bottom | All instructions written in plain English |
Easily converted into algorithm | Easily converted into flowchart |
Typically drawn after the algorithm is written | Generally written before creating a flowchart |
Example of Flowchart vs Algorithm
Input: Two numbers x and y.
Output: Average of x and y.
Algorithm Steps:
Input x, input y
sum = x + y
average = sum / 2
Output average
Flowchart Representation:
Transition through various shapes to represent the steps visually.
Tools to Create Flowcharts & Algorithms
Recommended Software:
Pseudocodes.
PowerPoint.
Lucidchart (Web).
Microsoft Visio (Windows, Web).
Draw.io (Web, Windows, Mac, Linux, ChromeOS).
OmniGraffle (macOS, iOS).
Gliffy Diagram.
Quote
"An algorithm must be seen to be believed." - Donald Knuth
LSBU School of Computer Science and Digital Technologies