colmooc

Computational Thinking


Computational thinking
is a systematic and creative approach to problem solving. It involves analysis and formalization of complex problems, understanding and designing algorithms, as well as divergent and convergent ways of thinking.

Note: This is a self-paced open course without assignments or peer interaction and its purpose is to provide useful material and directions for people interested in computational thinking or programming, in general.

 

 

Enrollment Period: August 5 – September 15

Course Attendance: Free

Course Certificate: Not available

Enroll to Course / Visit the course
Published: 9 Sep 19
Subject: Computer Science
Language: English
Length: 4 weeks
Level: Introductory
Multimedia: EN
Type: Instructor-Led Training
Effort: 3-5 hours / week
Prereq.: No prior experiece is needed
Aarhus University
Institution:: Aarhus University
License: Creative Commons BY NC SA

About the Course

Computational thinking is a problem solving method that uses concepts and ideas from Computer Science. However, as this course will demonstrate, you do not have to be a computer scientist to use computational thinking. On the contrary, computational thinking has been marked as a fundamental 21st Century skill that is essential for everyone in any field.

Problem solving with computational thinking involves four steps: decomposition (breaking down a complex problem into smaller ones), pattern recognition (identifying patterns in data and sub-problems), abstraction (focusing only on the essential), and algorithm design (creating a solution “recipe”).

Finally, the course can also be seen as a preparatory course for participants that want to continue their education with another course on programming.

What you will learn

  • Apply computational thinking steps on problem-solving tasks.
  • Analyze and compare the complexity of different algorithms.
  • Design and represent your own problem-solving algorithms using natural language, flowcharts, and pseudocode.
Skip Syllabus Description

Week 1: Computational thinking

Topics: Computational thinking, examples, mind maps.

Vocabulary: Abstraction, algorithm, algorithm design, automation, data analysis, data collection, data representation, decomposition, parallelization, pattern recognition.

Practice: Drawing diagrams with draw.io. Self-assessment quiz.

Assignments: Identify a problem, decompose it, and draw its mind map.

Peer assessment: Assess each other’s mind maps.

Chat activity: Given a problem, discuss its algorithm, through CT steps.

 

Week 2: Algorithms

Topics: Search algorithms (linear, jump, binary), sort algorithms (bubble sort, merge sort).

Vocabulary: Linear search, jump search, binary search, bubble sort, merge sort.

Practice: Self-assessment quiz.

Assignments: Create a description of an algorithm in natural language.

Peer assessment: Assess each other’s algorithms.

Chat activity: Given a problem, discuss the best and most efficient algorithm.

 

Week 3: Algorithm complexity

Topics: Algorithm complexity, flowcharts.

Vocabulary: Algorithm complexity, constant, exponential, factorial, flowchart, linear, linearithmic, logarithm, logarithmic, quadratic, square root.

Practice: Describe a known algorithm through a flowchart. Self-assessment quiz.

Assignments: Write an algorithm and describe it through a flowchart.

Peer assessment: Assess each other’s flowcharts.

Chat activity: Given a problem, discuss the algorithm represented through a flowchart. Discuss variations and characteristics of the flowchart and the respective algorithm.

 

Week 4: Pseudocode

Topics: Pseudocode, conditional statements, repetition statements

Vocabulary: IF, IF…ELSE IF, FOR, WHILE.

Practice: Describe an algorithm through pseudocode. Self-assessment quiz.

Assignments: Write an algorithm and describe it through pseudocode.

Peer assessment: Assess each other’s pseudocode

Chat activity: Discuss the algorithm represented through pseudocode. Discuss variations and characteristics of the pseudocode and the respective algorithm.

Instructors

panpapa.jpg

Dr Pantelis M. Papadopoulos

Dr Pantelis M. Papadopoulos is an Associate Professor at the Centre for Teaching Development and Digital Media at Aarhus University, Denmark (pmpapad@tdm.au.dk). He holds a PhD in ICT in Education from the Department of Informatics at Aristotle University of Thessaloniki, Greece. Before joining AU, he held academic positions in Aristotle University of Thessaloniki, Greece; United Nations University, Macau SAR, China; and Carnegie Mellon University in Qatar, Qatar.

His research interests include educational technology, computer supported collaborative learning, innovative and emerging technologies in education, and learning analytics. The outcomes of his research have been published in more than 60 international journals and conferences. He is a member of the EU Network of Excellence Kaleidoscope, the Institute of Electrical and Electronics Engineers (IEEE), the International Society of the Learning Sciences (ISLS), and the Association for the Advancement of Computing in Education (AACE).

Share the course

This project has been funded with support from the European Commission. This publication reflects the views only of the author, and the Commission cannot be held responsible for any use which may be made of the information contained therein.