Skip to main content

TokyoTechX: Introduction to Computer Science and Programming

The term “Computation” refers to the action performed by a computer. A computation can be a basic operation and it can also be a sophisticated computer simulation requiring a large amount of data and substantial resources. This course aims at introducing learners with no prior knowledge to the basic key concepts of computer science. By following the lectures and exercises of this course, you will gain an understanding of algorithms by programming using the language Ruby.

5 weeks
2–3 hours per week
Self-paced
Progress at your own speed
Free
Optional upgrade available

There is one session available:

8,758 already enrolled! After a course session ends, it will be archivedOpens in a new tab.
Starts Mar 28

About this course

Skip About this course

Do you want to learn more about data and gain programming experience? If yes, this is the right course for you to start!

“Big data”, “data science”, “data-mining” and “artificial intelligence” are all popular terms that are often encountered nowadays in the academic and in business worlds.

Computer Science is a field where the usage of computers and “computations” have continuously evolved. As computational power increases, computation becomes an indispensable tool for solving complex problems and making predictions. We are now able to “compute” various things from DNA sequencing to aerodynamics simulations and weather forecasting.

In this course, you will learn the essence of computer science. You will obtain an overview of cutting-edge computer science as well as learn the basics and introductory level knowledge of computer science, while experiencing, designing and writing your own simple programs. This revised course consists of 5 weekly units. A separate course covering the same content is also offered where the lectures are given in Japanese.

The course begins by introducing the notion of computation and data and how things work inside a computer. Before jumping into advanced topics like encryption and cryptanalysis, we will discover important notions like "arrays", "characters" and "strings" and we will know more about functions and subroutines throughout the lectures. Along the way we will practice with exercises to have a hands-on experience and deeper understanding of the explained notions. All exercises have files that can be downloaded and used. A detailed explanation about setting up the environment to run the programs using the language Ruby is provided at the beginning of the course.

By the end of this course you will be able to write your own programs for encryption and decryption of English texts. The course concludes with a general overview of the recent progress and research trends in the computer science field. This last part covers topics discussing the nature of computation as well as applications of computation in our modern society such as simulations, data mining and artificial intelligence AI.

At a glance

  • Language: English
  • Video Transcript: English
  • Associated skills:DNA Sequencing, Encryption, Artificial Intelligence, Computer Simulation, Ruby (Programming Language), Algorithms, Computer Science, Forecasting, Cryptanalysis, Data Mining, English Language, Big Data, Data Science, Writing

What you'll learn

Skip What you'll learn

What is data (corresponding to an atom of data)?
What is a computation (the one that corresponds to the atom of the computation)?
Basic information security: encryption, decryption, and crypto-breaking
Private key cryptosystems and public key cryptosystems
Representative examples of utilization of computations in present society (Computer simulation, Data mining)
Installation of software and the programming environments (editor, shell)
How to use the programming environments (editor, shell) for computations
Basic programming using “Ruby on Rails,” a programming language

Introduction

Who is Professor Watanabe?
Introduction to Computer Science
Instructions for learners on how to study this course

Unit 1: What is Computation?

Learning Objectives

1.1 What is computation?

1.2 Data is Numbers

1.3 Inside the Computer

1.4 Programming with Ruby

1.5 Time to Practice 1

Quiz 1

Unit 2: What is Programming? (Part 1) Arrays

Learning Objectives

2.1 Arrays, Basic Concepts

2.2 How to Use arrays

2.3 Time to Practice 2

Quiz 2

Unit 3: What is Programming? (Part 2) Characters and Strings

Learning Objectives

3.1 Characters and Strings

3.2 Caesar Encryption

3.3 Time to Practice3

Quiz 3

Unit 4: What is Programming? (Part 3) Functions and Subroutines

4.1 Functions and Subroutines

4.2 Cryptanalysis

4.3 Time to Practice 4

4.4 Modern Encryption

Quiz 4

Unit 5: Summary and Appendix (Introduction to Research on Computation)

Learning Objectives

5.1 Brief Summary of this course

5.2 Appendix 1.1: On the Nature of Computation, Computability

5.3 Appendix 1.2: On the Nature of Computation, P ≠ NP Conjecture

5.4 Appendix 2.1: Applications of Computation, Simulation

5.5 Appendix 2.2: Applications of Computation, Data Mining

5.6 Appendix 2.3: Applications of Computation, AI (Artificial Intelligence)

Quiz 5

Learner testimonials

Skip Learner testimonials

"I really liked the complexity of the exercises, and how the professor walked through the steps of how it can be done." - Previous Learner

"The material was explained in full details and that was very helpful." - Previous Learner

"Everything was very well structured and I liked Professor Watanabe’s style of teaching." - Previous Learner

Interested in this course for your business or team?

Train your employees in the most in-demand topics, with edX For Business.