inflearn logo

Computational Thinking (Part 2) - Problem Solving Through Software

Along with reading, writing, and arithmetic, computational thinking is a skill that everyone living in the AI era must possess. Computational thinking can be simply defined as thinking like a programmer or a computer scientist. This course faithfully reproduces an actual university semester-long course and covers essential content for people encountering programming for the first time or beginners planning to major in computer science. Through this course, people without a background in computer science or with a humanities background can also develop the ability to communicate easily with professional programmers. Even in an era when learning prompts for AI vibe coding is necessary, this course helps you develop the ability to give AI more accurate and effective instructions through computational thinking.

(5.0) 8 reviews

41 learners

Level Basic

Course period 12 months

Algorithm
Algorithm
software-design
software-design
Business Problem Solving
Business Problem Solving
Algorithm
Algorithm
software-design
software-design
Business Problem Solving
Business Problem Solving

What you will gain after the course

  • You can learn to think like a programmer or computer scientist.

  • Beginners who are just starting to code can become familiar with computational thinking.

  • Can apply computational thinking to various fields to solve problems.

  • You can learn basic concepts for coding rather than programming language syntax.

A must-take course before learning programming (coding) for the first time

  • A course suitable for beginners from a humanities background who want to build basic knowledge of programming (coding) as general education.

  • A course for beginners with no background knowledge in programming who want to get started with vibe coding.

  • A course for those who have learned programming language syntax but have been unable to enter the coding field due to feeling overwhelmed by coding.

  • Before taking Computational Thinking (Part 2), it’s best to take Computational Thinking (Part 1) first!!

We have brought the university lecture over as-is

Who should definitely take the Computational Thinking course?

  • This course is a faithful adaptation of a university semester-long course (including both Parts 1 and 2), and you will learn how to think like a programmer or computer scientist.

  • It covers essential content for people who are new to programming or are beginners planning to major in computer science.

  • It clearly explains concepts with examples so that non-majors and people with humanities backgrounds can easily communicate with professional programmers.


Textbook referenced in this course

What You'll Learn 📚

Section (1), Chapter 7: Data Organization

  • Understand the importance of naming variables.

  • Understand how data is organized and stored in memory.

  • Understand how indexing is used when a list is stored in memory as an array.

  • Understand how linking is used when implementing linked lists, which are convenient for adding or deleting items.

  • Examine examples of graphs being used in road networks, subway lines, airline routes, and so on.

  • Define graphs mathematically and implement them in memory.

  • Define trees and examine various examples of their use.

Section (2), Chapter 8: Data Processing

  • Understand the architecture of a von Neumann stored-program computer.

  • Understand that the von Neumann architecture is similar to how cell-based spreadsheets operate.

  • Understand that arithmetic operations, formulas, and functions in cell-based spreadsheets are similar to the principles of programming.

  • Understand how strings such as email addresses and date formats are handled in programs.

  • Explore various patterns in strings and different pattern rules.

  • Understand how to represent various patterns using regular expressions and apply them.

Section (3), Chapter 9: Software Verification and Validation

  • Understand why errors occur in computers.

  • Understand that software design and implementation are similar to architectural design and construction.

  • Understand that the procedures for verifying software correctness and supervising construction are similar.

  • Understand requirements, design verification, and product validation for software.

  • Understand the advantages and limitations of AI vibe coding and the need for review and verification.

  • Understand why software testing is used for software verification and validation, as well as the limitations of testing.

  • Understand the need for documentation, scenarios, test cases, and test reports for software testing.

  • Understand the difference between black-box testing and white-box testing for software testing.

  • Examine various detailed examples of black-box testing and white-box testing.

Section (4) Chapter 10: The Limits of Computation

  • Understand improvements in computer performance and the physical limitations of Moore’s law.

  • Understand that computational performance can be defined by storage capacity and processing speed.

  • Understand why it is difficult for the performance of multicore processors to continue improving.

  • Examine examples of benchmarking being used to measure computer performance.

  • Understand methods for evaluating algorithm performance and the performance difference between linear search and binary search (including sorting).

  • Understand algorithm time complexity and impractical (exponential-time) algorithms.

  • Understand that an impractical classical algorithm may exist as a practical solution on a quantum computer.

  • Understand that there are uncomputable problems, such as the halting problem, that can never be solved.

  • Understand what the Turing test and CAPTCHA aim to measure in relation to artificial intelligence.

Section (5), Chapter 11: Concurrent Actions

  • The soccer matches in a soccer tournament can be compared to running programs, and the number of soccer fields to the number of CPUs.

  • Understand that assigning each match to a soccer field is analogous to concurrency in CPU scheduling.

  • Understand that spinning many plates at once is similar to the concepts of parallelism and concurrency in computers.

  • Understand how concurrency can be used to improve performance through the operation of a sorting network.

  • Understand the fundamental constraints that prohibit concurrent execution (dependencies and race conditions).

  • Explore the potential of concurrency for performance improvement and how shared resources constrain concurrency.

  • Understand how race conditions (TOCTOU) can cause errors.

  • Be able to recognize and explain deadlock and livelock situations.

Section (6) Chapter 12: Information Security

  • Understand the components of security and common forms of cybercrime (malware, identity theft, phishing, etc.).

  • Understand how authentication technologies and personal authentication work.

  • Understand cryptographic concepts (symmetric-key encryption, public-key encryption, signatures, message authentication, certificates, etc.).

  • Understand security breach mitigation strategies (firewalls, antivirus, software updates, backups, logs, etc.).

  • Can recognize and apply the basic security principles of attack mitigation strategies (protecting weak links, reducing the attack surface, defense in depth, compartmentalization, etc.).

  • Understand how openness, such as that of open-source software, contributes to security.

Notes Before Taking the Course

Prerequisites and Notes

  • An understanding of the graphs of nth-degree functions and exponential functions from the high school curriculum will be very helpful.

  • The lecture video quality (audio/video) is not optimal and may be updated in the future.

  • Questions can be answered through the Q&A section.

Recommended for
these people

Who is this course right for?

  • Beginners or non-majors who want to acquire essential concepts in the field of computing

  • A beginner who is new to programming but wants to build a foundation for vibe coding in the future

  • Non-specialists who want to communicate smoothly with programmers implementing business scenarios

Need to know before starting?

  • No special prior knowledge is required, but you should be open to computational thinking (enrollment in Computational Thinking Part 1 is required).

Hello
This is strandkings

Career Verified

102

Learners

18

Reviews

4.9

Rating

2

Courses

e-mail: strandnero@gmail.com

Worked at a venture firm, Samsung Electronics, and ETRI / Worked at IT companies in Silicon Valley, USA and London / 17 years as a professor at a university in Seoul (Computer Science department)

System Software/Linux Operating System/Computer Security/Internet Communication/Mobile Computing/Mobile Communication Network/Network Security/Mobile Security/Quantum Computing/Quantum Communication/Quantum Cryptography

More

Curriculum

All

25 lectures ∙ (14hr 12min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

8 reviews

5.0

8 reviews

  • jucicoola1462님의 프로필 이미지
    jucicoola1462

    Reviews 14

    ∙

    Average Rating 5.0

    5

    63% enrolled

    • pk30000002371님의 프로필 이미지
      pk30000002371

      Reviews 5

      ∙

      Average Rating 5.0

      5

      33% enrolled

      • jy07533212님의 프로필 이미지
        jy07533212

        Reviews 5

        ∙

        Average Rating 5.0

        5

        17% enrolled

        • phc93142856님의 프로필 이미지
          phc93142856

          Reviews 5

          ∙

          Average Rating 5.0

          5

          33% enrolled

          • supee12296306님의 프로필 이미지
            supee12296306

            Reviews 3

            ∙

            Average Rating 5.0

            5

            100% enrolled

            Similar courses

            Explore other courses in the same field!

            25% off for new members

            $45.00

            25%

            $55.00