Introduction to Programming Concepts in A-Level Computer Science

undefined
 
A Level Computer Science
Topic 1: GCSE Python Recap
 
T
eaching
  
L
ondon 
 
C
omputing
 
William Marsh
School of Electronic Engineering and Computer Science
Queen Mary University of London
 
Aims
 
What is programming?
Recap GCSE Python
Programming concepts
Learning programming
Outline the course
Contents
A level curricula
Materials
undefined
 
What is Programming?
 
What is the essence of Programming?
Do we learn Python or Programming?
 
Problem: Largest Item
 
Find the largest one
 
 
Definition:
One of the numbers in the list
No other number in the list is larger
 
Programmer needs 
a recipe for finding
 it!
27 12 53 13 25 68 18 66 23 15 36
 
Problem: Largest Item
 
Here is a recipe
 
 
 
 
 
 
 
Not yet a program!
largest 
 first item
while more items in list
 
item 
 next item
 
if item greater than largest
  
largest 
 item
 
Programming
 
Recipe / procedure / algorithm for solving a
problem
… in a language understood by a computer
Problem   
   Recipe   
   Program
Problem solving
Writing a Program
 
Computational Thinking
 
Concepts
algorithmic thinking
: developing steps
decomposition
: spotting the parts of a problem
abstraction
: ignoring unnecessary detail
generalisation
: making the specific more general
evaluation
: how good is it?
“... the thought processes involved in formulating
problems and their solutions so that the solutions are
represented in a form that can be effectively carried out by
an information-processing agent”
 
Practical Exercises 1.1 – 1.3
 
Describe a recipe for finding the 
two
 largest
items in a list
 
Challenge Solution
 
Describe a recipe for finding the 
two
 largest
items in a list
flrgst 
 max(first item, second item)
slrgst 
 min(first item, second item)
while more items in list
   item 
 next item
   if item GT slrgst
      if item GT flrgst
         slrgst 
 flgrst
         flrgst 
 item
      else
         slrgst 
 item
 
Challenge – Simpler Solution?
 
Describe a recipe for finding the 
two
 largest
items in a list
largest 
 largest item of list
remove largest from list
second largest 
 largest item of new list
undefined
 
Programming Concepts
 
 
Language Concepts
 
Python Types
 
Python values belong to types:
String
Integer
Floating point
Boolean
List
Types are ‘dynamic’
Try the ‘type’ function
Variable are not declared, but must be initialised
before they are referenced
There are
more types!
 
Python Expressions
 
Python Library
 
The library is a large collection of functions,
methods and module
E.g. random module
Standard library: all Python installations
Other packages: installed when needed
 
Issue
Very complex: need to guide students
 
Practical Exercise 2.4
 
Look up the standard library online; read the
introduction
In Chapter 2, (Built in Functions), lookup and try
the 
bin()
 function
the 
bool()
 function
the 
range()
 function
 
In Chapter 4 (Built in Types), lookup
<<
 operator, e.g. 
10 << 2
divmod(
) function
Behaviour of a slice with 3 arguments: 
[m:n:o]
 
Scope
 
What variables are available at any place?
 
Python uses 
dynamic scoping
:
Variables added by executing an assignment
Other languages are different
 
Local versus Global scope (
simplified
)
Local: inside a function
Global: not in a function
 
Practical Exercise 2.5 – 2.6
 
Try the following program. Can you explain it?
def printX():
    print("This is x:", x)
 
y = int(input("Enter a num> "))
if y % 2 == 0:
    x = y
 
printX()
 
Errors (Practical Exercise 2.7)
 
Syntax error
Letters do not form a Python program
E.g. brackets do not match
Name (Scope) error
Using a name that is not defined
E.g. Reading a variable that has not been initialised
Type errors
Operation not available for these types
E.g. "william" – "iam"
Evaluation error
Expression cannot be evaluated
E.g. "william"[99]
 
undefined
 
Learning Programming
 
 
Axes of
Learning
 
Understanding programs
Can predict result of program
Test it: 
what does this program
do?
Writing programs
Choose expressions and
statements
Find bugs
Test it: 
implement / complete
short program
Solving problem
Problem 
 recipe
Test it: 
solve open problems
Understanding programs
Solving problems
Writing programs
 
Deepening and Mental Models
 
Deeper understanding
Initial understanding may be useful but partial
Challenge and refine
 
Example – assignment
Understanding 1: assignment gives a name to
expression
Understanding 2: assignment overwrites an existing
value in a variable (memory)
Understanding 3: …
 
Example: Understanding Assignment
 
Assignment as naming:
… but what about:
width = 10
height = 17
area = height * width
print(area)
numA = ...
numB = ...
if numA < num B:
   numB = numA
   numA = numB
print("The larger number is in numA")
myFriends = ["John", "Jo"]
yourFriends = myFriends
myFriends.remove("Jo")
yourFriends.append("Jane")
print(myFriends)
lst = [1,3,5,7]
lst[3] = lst[1]
lst[0] = lst[0] + lst[1]
print(lst)
 
Practical Exercises 3.1 – 3.2
 
Explore the sequence of ideas involved in
learning if statements
 
Problem Solving
 
Understand problem
Try example
Simplify the problem
 
Design the solution
What is the input and output?
 
Half-way techniques
Pseudo code
Flow charts
 
Software Development
 
Do you:
Just Write a Program
?
Lifecycle
Describes the process
 
Analyse
Understand problem
 specification
Design
Arrange parts
How to design?
Design
Implement
Test
Analyse
 
Characteristics of a Programmer
 
Analytical
Understanding problems
Think like a computer
Imaginative
Invent solution
Design program
Resilient
Trying different solutions
Looking for bugs
undefined
 
Course Aims and Overview
 
 
Topics
 
1.
Programming and s/w development
Arrays and recursion
Object-oriented programming
Software design techniques
2.
Algorithms and data structures
Sorting and searching
Trees and lists
3.
Computer systems
Computer architecture
How programs are run
4.
Theory of computing
Finite state machines
Language syntax and processing
Computational
Thinking
 
A Level Curricula
 
In transition: new from 2015
A2 and AS separate
Questions combine topics
Differences between boards
Mainly looked at: OCR, AQA
Details differ: themes the same
 
Course Materials
 
Each session
Slides
Practical exercises
References notes
Same sections
Practical work
During slides
After presentation
Folder and web site
 
Summary
 
Programs are recipes for a computer
Recipe to solve a problem
Program in a particular language
 
Learning programming combines
Problem solving
Understanding programs
Writing programs
 
Practical Exercises 3.3
 
Planning a complex program
Slide Note
Embed
Share

This material covers a recap of GCSE Python programming concepts and outlines the course contents for A-level curricula at William Marsh School of Electronic Engineering and Computer Science, Queen Mary University of London. It explores the essence of programming, problem-solving techniques, computational thinking, and practical exercises in a structured manner, preparing students for more advanced programming challenges.

  • Programming Concepts
  • A-Level Computer Science
  • Python
  • Problem Solving
  • Computational Thinking

Uploaded on Sep 30, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. TeachingLondon Computing A Level Computer Science Topic 1: GCSE Python Recap William Marsh School of Electronic Engineering and Computer Science Queen Mary University of London

  2. Aims What is programming? Recap GCSE Python Programming concepts Learning programming Outline the course Contents A level curricula Materials

  3. What is Programming? What is the essence of Programming? Do we learn Python or Programming?

  4. Problem: Largest Item Find the largest one 27 12 53 13 25 68 18 66 23 15 36 Definition: One of the numbers in the list No other number in the list is larger Programmer needs a recipe for finding it!

  5. Problem: Largest Item Here is a recipe largest first item while more items in list item next item if item greater than largest largest item Not yet a program!

  6. Programming Recipe / procedure / algorithm for solving a problem in a language understood by a computer Problem Recipe Program Problem solving Writing a Program

  7. Computational Thinking ... the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent Concepts algorithmic thinking: developing steps decomposition: spotting the parts of a problem abstraction: ignoring unnecessary detail generalisation: making the specific more general evaluation: how good is it?

  8. Practical Exercises 1.1 1.3 Describe a recipe for finding the two largest items in a list

  9. Challenge Solution Describe a recipe for finding the two largest items in a list flrgst max(first item, second item) slrgst min(first item, second item) while more items in list item next item if item GT slrgst if item GT flrgst slrgst flgrst flrgst item else slrgst item

  10. Challenge Simpler Solution? Describe a recipe for finding the two largest items in a list largest largest item of list remove largest from list second largest largest item of new list

  11. Programming Concepts

  12. Language Concepts Concepts Python Example(s) 'abc' "william" 42 3.14159 Literal (Constant) Expression Assignment 2**3**4 "he"+"llo" x > 5 area = length * width x = 7 y = x - 5 if x > 5: Sequence Selection Loop Function call Function definition while x < 7: print("ans=", ans) def area(l, w):

  13. Python Types Python values belong to types: String Integer Floating point Boolean List Types are dynamic Try the type function Variable are not declared, but must be initialised before they are referenced There are more types!

  14. Python Expressions Type Operators Functions/Methods str() abs() pow() len() int() .append() .remove() .split() .count() + - * ** / // % + Numbers String == != > < >= <= Boolean results Boolean operands List and or not in not in [:] len() min() max()

  15. Python Library The library is a large collection of functions, methods and module E.g. random module Standard library: all Python installations Other packages: installed when needed Issue Very complex: need to guide students

  16. Practical Exercise 2.4 Look up the standard library online; read the introduction In Chapter 2, (Built in Functions), lookup and try the bin() function the bool() function the range() function In Chapter 4 (Built in Types), lookup << operator, e.g. 10 << 2 divmod() function Behaviour of a slice with 3 arguments: [m:n:o]

  17. Scope What variables are available at any place? Python uses dynamic scoping: Variables added by executing an assignment Other languages are different Local versus Global scope (simplified) Local: inside a function Global: not in a function

  18. Practical Exercise 2.5 2.6 Try the following program. Can you explain it? def printX(): print("This is x:", x) y = int(input("Enter a num> ")) if y % 2 == 0: x = y printX()

  19. Errors (Practical Exercise 2.7) Syntax error Letters do not form a Python program E.g. brackets do not match Name (Scope) error Using a name that is not defined E.g. Reading a variable that has not been initialised Type errors Operation not available for these types E.g. "william" "iam" Evaluation error Expression cannot be evaluated E.g. "william"[99]

  20. Learning Programming

  21. Axes of Learning Understanding programs Can predict result of program Test it: what does this program do? Writing programs Choose expressions and statements Find bugs Test it: implement / complete short program Solving problem Problem recipe Test it: solve open problems Solving problems Writing programs

  22. Deepening and Mental Models Deeper understanding Initial understanding may be useful but partial Challenge and refine Example assignment Understanding 1: assignment gives a name to expression Understanding 2: assignment overwrites an existing value in a variable (memory) Understanding 3:

  23. Example: Understanding Assignment width = 10 height = 17 area = height * width print(area) Assignment as naming: but what about: numA = ... numB = ... if numA < num B: numB = numA numA = numB print("The larger number is in numA") lst = [1,3,5,7] lst[3] = lst[1] lst[0] = lst[0] + lst[1] print(lst) myFriends = ["John", "Jo"] yourFriends = myFriends myFriends.remove("Jo") yourFriends.append("Jane") print(myFriends)

  24. Practical Exercises 3.1 3.2 Explore the sequence of ideas involved in learning if statements

  25. Problem Solving Understand problem Try example Simplify the problem Design the solution What is the input and output? Half-way techniques Pseudo code Flow charts

  26. Software Development Do you: Just Write a Program? Lifecycle Describes the process Analyse Design Analyse Understand problem specification Design Arrange parts How to design? Implement Test

  27. Characteristics of a Programmer Analytical Understanding problems Think like a computer Imaginative Invent solution Design program Resilient Trying different solutions Looking for bugs

  28. Course Aims and Overview

  29. Topics 1. Programming and s/w development Arrays and recursion Object-oriented programming Software design techniques 2. Algorithms and data structures Sorting and searching Trees and lists 3. Computer systems Computer architecture How programs are run 4. Theory of computing Finite state machines Language syntax and processing Computational Thinking

  30. A Level Curricula In transition: new from 2015 A2 and AS separate Questions combine topics Differences between boards Mainly looked at: OCR, AQA Details differ: themes the same

  31. Course Materials Each session Slides Practical exercises References notes Same sections Practical work During slides After presentation Folder and web site

  32. Summary Programs are recipes for a computer Recipe to solve a problem Program in a particular language Learning programming combines Problem solving Understanding programs Writing programs

  33. Practical Exercises 3.3 Planning a complex program

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#