Year 1 Computer Programming - Lecture 1
Year 1 Computer Programming - Lecture 1
Lecture - 1
Tutors
Mr. Richard Kay - Email: richard.kay@bcu.ac.uk
Dr. Andrew Stokes - Email: andrew.stokes@bcu.ac.uk
Mr. Stish Sarna - Email: Stish.Sarna@bcu.ac.uk
Mr. Besher Alhalabi - Email: Besher.Alhalabi@mail.bcu.ac.uk
Dr. Martyn Ratcliffe - Email: Martyn.Ratcliffe@bcu.ac.uk
Dr. Khaled Mahbub - Email: Khaled.Mahbub@bcu.ac.uk
Dr. Shadi Basurra - Email: Shadi.Basurra@bcu.ac.uk
Demonstrators:
– To help you out with your programming tasks and programming assessments
Lab Sessions:
Wk1 – Wk12
1 lab session per week (2 hours each session), teacher supported
practical and assignment works.
Completed lab work should be submitted weekly on Moodle. The labs
will be assessed through the 48 hours coding challenge.
You are advised to keep a logbook for formative and regular self
assessment purpose.
You should regularly review and update your logbook based on your lab
works.
Moodle
Design &
Specification Validation Evolution
Implementation
The process of establishing what services are required and the constraints
on the system’s operation and development.
Design &
Specification Validation Evolution
Implementation
Design &
Specification Validation Evolution
Implementation
As part of the design process, you need to draw a user case diagram for
the system.
In this system a HR officer can create and update employee records.
However, HR manager should verify and accept the data/changes provided
by the HR officer before it is stored into the system.
Payroll manager should be able to print employee pay slip, process
employee salary payment and produce HR management reports. HR
management reports should be checked/viewed monthly by the HR
manager.
From the above system requirements:
– Name of the boundary
– What are the actors?
– What are the use cases?
– Identify the relationships between actors and use cases?
CMP4266 , School of CS & DT, Birmingham City University.
Major Design Activities
Design &
Specification Validation Evolution
Implementation
Architectural design, where you identify the overall structure of the system,
the principal components (sometimes called sub-systems or modules), their
relationships and how they are distributed.
Interface design, where you define the interfaces between system
components, and between the system and users (Known as GUI)!
Component design, where you take each system component and design
how it will operate.
Database design, where you design the system data structures and how
these are to be represented in a database.
Design &
Specification Validation Evolution
Implementation
Testing stages
– Development or component testing
- Individual components are tested independently;
- Components may be functions or objects or coherent groupings of
these entities.
– System testing
- Testing of the system as a whole. Components that have been
separately developed and off-the-shelf systems may be integrated
with newly developed components. The complete system is then
tested.
– Acceptance testing
- Customers test a system to decide whether or not it is ready to be
accepted from the system developers and deployed in the customer
environment. Primarily for custom systems.
Design &
Specification Validation Evolution
Implementation
(Based on: Tony Gaddis, “Starting Out with Python”, 3/E, Pearson Education)
The part of the computer that actually runs programs is known as Central
processing unit (CPU).
All data in a computer is stored in sequences of 0s and 1s. i.e. all the
instructions used in a program should be supplied to CPU in a
representation using only 0 and 1, which CPU can interpret and execute.
This representation is known as machine language.
– Example: 10110000 this is an instruction for an Intel microprocessor. It tells the
microprocessor to move a value into the CPU.
Impractical for people to write in machine language
High-Level language: allows simple creation of powerful and complex programs (e.g. Python,
C#, Java)
– No need to know how CPU works or write large number of instructions
– More intuitive to understand
– Example: In a high level language like Python, we will be able to display the message Hello world on
the computer screen with following simple instruction:
print("Hellow World")
To do the same thing in assembly language would require several instructions, and an intimate
knowledge of how the CPU interacts with the computer’s screen.
When you start Python in interactive mode, you will see a prompt In[n]:
– Indicates the interpreter is waiting for a Python statement to be typed
– “In[n]” to indicate that Python is waiting to accept user input
– Prompt reappears after previous statement is executed
– Error message displayed If you incorrectly type a statement
Statements entered in interactive mode are not saved as a program
Launch Spyder IDE App from the grid list on Anaconda Navigator.
Using the Spyder IDE interactive mode, on the prompt ln[1]: try the
following:
– print("Hello World!")
– 2+2
– x=5
– print(x)
– print 98