This course introduces computational and algorithmic thinking for students with no computing background. Explains computer organization, networks, and architectures. Emphasises understanding of key computational concepts such as abstractions, algorithms, efficiency, correctness and the basics of visual programming. Covers main principles of algorithmic problem solving, such as iteration, recursion, searching, and sorting, and concepts such as concurrency and randomness. Introduces the main principles of artificial intelligence and data science. Discusses computational thinking in economics, medicine and healthcare, neuroscience and sports,and examines security, privacy and ethical concerns. In laboratories, students solve computer science problems,with the guidance of staff.