0% found this document useful (0 votes)
34 views29 pages

1 Introduction

This document provides an overview of the COMP1001 Introduction to Computational Thinking course for Arts and Social Science students. The course aims to develop students' logic and problem-solving skills through learning to code in Python and use Excel. It will cover computer fundamentals, technical proficiencies, and computational thinking. Students are provided tips for success, including managing time and staying engaged. Computational thinking is introduced as a problem-solving process involving decomposing problems, recognizing patterns, abstracting details, and designing algorithms.

Uploaded by

Hao f
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views29 pages

1 Introduction

This document provides an overview of the COMP1001 Introduction to Computational Thinking course for Arts and Social Science students. The course aims to develop students' logic and problem-solving skills through learning to code in Python and use Excel. It will cover computer fundamentals, technical proficiencies, and computational thinking. Students are provided tips for success, including managing time and staying engaged. Computational thinking is introduced as a problem-solving process involving decomposing problems, recognizing patterns, abstracting details, and designing algorithms.

Uploaded by

Hao f
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

COMP1001

Introduction to Computational Thinking

for Arts and Social Science


Course Acknowledgments

• Darryl Hill
• Andrew Runka
• Other instructors from the past
Course Outcomes

• Computer Fundamentals
• how information is stored
• how computers operate
• how to use computers to solve problems
• Technical Proficiencies
• learn to code in Python
• learn to use Excel (more efficiently)
• learn to debug (find and fix mistakes)
Course Outcomes - Fundamental

• Develop logic skills


• which you already have
• Learn to think through a problem
• Use Python and Excel to make many common tasks easier
• Learn how to automate routine tasks
• your supervisor will see you’re getting results
• you’ll be doing less tedious work to get them
Course Presentation and Resources

• Zoom, Discord, and Brightspace


• Discord - student, TA, and instructor interactions
• Brightspace - course content, quizzes and assignment submissions
• Course Textbook: How to Think Like a Computer Scientist
• Peter Wentworth et al.
• Interactive online edition by Brad Miller et al.
• w3schools Python
Tips for Success

• Time management is your most important skill right now


• especially during COVID
• Don’t fall behind on the lectures
• you won’t be able to catch up at the end of the semester
• Do some work every week
• preferably at a scheduled time
• Make yourself at home on Discord
• meet your TA’s, fellow students, instructor
Tips for Success

• If you make an effort in this course you will likely do well


• Have fun with it
• There will be some frustrating moments
• Overcoming frustration and succeeding is a great feeling
What is Computational Thinking?

https://www.tinythinkers.org/benefits
Why Computational Thinking?

• Things that involve computers:


• almost everything these days
• More and more of the world depends on computers
• how many apps do you use a day?
• how long do you spend on your phone?
• We are in a computer environment much of the time
• this lecture depends on dozens of technologies
Why Computational Thinking?

• How does it all work?


• is it complicated? (Yes and No)
• All of these things operate on the same fundamental
principles
• how computers work
• in many ways this is well understood
• Understanding how things work on a low level will help you
understand their power and limitations on the high level
Why Computational Thinking?

• Use these apps and technology more efficiently


• Make tedious problems easier
• a few simple tools can automate many tasks
• Think your way through a problem instead of getting
frustrated
• you will still get frustrated ☺
What is Computer Science?

• Computer science is the systematic study of the feasibility,


structure, expression, and mechanization of the methodical
procedures (or algorithms) that underlie the acquisition,
representation, processing, storage, communication of, and
access to information.

• http://en.wikipedia.org/wiki/Computer_science
What is Computer Science?

• It is the study of how computers operate on data


• Much of it is mathematical logic (i.e., science)
• Has many sub-categories
• networking, i.e., gaming, Zoom, social media
• User interface design
• phone apps
• web pages
• Artificial Intelligence
Back to Computational Thinking

• Best way to develop computational thinking → programming


• Every computer scientist started by simply making a computer do
what they wanted
• instead of what Microsoft / Apple / Google wants
• Python – puts the fun back in programming
• Let’s try to have fun as we begin learning computer science
The Python Programming Language
Sample Python Program
Sample Python Program
Computational Thinking – Solving a Problem

• Four fundamental steps:


• Decompose the problem into simpler subproblems
• Recognize patterns or consistencies that underlie the
problem
• Abstract away all of the unnecessary details
• foundation of high-level languages
• Design a step-by-step algorithmic solution
Decompose

• Make supper for a group of people


• Make salad
• cut vegetables
• cut lettuce
• cut tomatos
• mix dressing
• Cook steak
• marinade steak
• mix marinade
• start BBQ

Image by Shutterbug75 from Pixabay


Recognize Patterns

• "…notice similarities or common


differences that will help us make
predictions or lead us to shortcuts…"
• spider legs all have similar pattern
• instead of 8 pieces of code (to draw
them), execute 1 piece of code 8 times
Abstraction

• Baking a cake?
• do you need to know the chemistry involved?

• Driving a car?
• do you need to know exactly how the brakes work?
• if two cars have a different brake systems (disc or drum) does it
matter?

Image by /www.cleanpng.com/
Algorithmic Solution

• Any recipe is an algorithm


• series of specific steps you can
follow that result in tasty dessert
• What are the steps needed to
draw the spider?
• determine position
• draw legs
• draw body (with colour)
• etc
Computational Thinking - Draw Spider
• Decompose - need to draw legs. body,
head, face, but they can all be done
separately
• Recognize patterns - legs all look the
same, body, head and eyes are all circles
• Abstract Away Details – we don’t know
“how” the computer draws the pixels on the
screen, but we can still do it using simple
commands in python
• Design Algorithm:
• draw 8 legs
• draw body
• draw head
• draw face
How do Computers Work?

• Store and manipulate information with voltages/electricity


• the basic unit of information is a bit (short for binary digit)
• a bit can hold one of two values: 0 or 1

• A sequence of bits can represent numbers,


words, documents, pictures, etc.

• Some joke that …

“Coffee goes in the programmer,


programs comes out of the computer”

Image by Engin Akyurt from Pixabay


How do Computers Work?

32 space Space
33 ! Exclamation mark • ASCII/UNICODE tables
34 " Double quote provide a translation of
35 # Number
numbers to keyboard
characters
36 $ Dollar sign
37 % Percent • If the computer reads
38 & Ampersand ‘33’, it outputs ! to the
39 ' Single quote screen
Computer Capabilities

• A computer can
• read a number
• decide on an output number according
to the input and its instructions
• perhaps modifying the original number
• stores the output number
(not necessarily in the same place)

A Turing Machine
That’s about it.
Seems pretty simple... but it is actually a lot.
Projet Rubens, ENS Lyon / CC BY (https://creativecommons.org/licenses/by/3.0)
GabrielF / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Computer Capabilities

• A computer can
• read a number
• decide on an output number according
to the input and its instructions
• perhaps modifying the original number
• stores the output number
(not necessarily in the same place)

A Lego Turing Machine


That’s about it.
Seems pretty simple... but it is actually a lot.
Projet Rubens, ENS Lyon / CC BY (https://creativecommons.org/licenses/by/3.0)
GabrielF / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
What is a Program?

• An algorithm is a set of step-by-step precise instructions


• A program is an algorithm written in a language that a
computer can understand and execute, like Python
• A programming language consists of a (small) set of
instructions that allow a program to use Input/Output, make
decisions, repeat something, compute something, etc.
Next?

• Log into our discord server

• Install Python on your computer


• ask on discord or at office hours if you need some help

• Read and start Assignment 1

You might also like