EdX

Introduction to Computer Science and Programming (edX)

Introduction to Computer Science and Programming (edX)

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 simultation requiring a large amount of data and substantial resources. This course aims at introducing learners with no prior knowledge to basics and key concepts of computer science. By following the lectures and exercises of this course you will have an understanding of algorithms and you will get a real experience of programming using the language Ruby.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Do you want to learn more about data and to get a basic 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. The video lectures in this course are delivered in English accompanied by English transcripts. This English version comprised of 5 units is the revised original Japanese course previously released with same topic.
We will start by learning more about the notion of computation and data and see 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.

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

Syllabus

Introduction
Who is Professor Watanabe?
Introduction to Computer Science
Instructions for Users

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

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Python for Data Science (edX) EdX
University of California, San Diego,UC San DiegoX

Python for Data Science (edX)

Learn to use powerful, open-source, Python tools, including Pandas, Git and Matplotlib, to manipulate, analyze, and visualize complex datasets. In the information age, data is all around us. Within this data are answers to compelling questions across many societal domains (politics, business, science, etc.). But if you had access to a large dataset, would you be able to find the answers you seek?

Self Paced
Self-Paced
Big Data Capstone Project (edX) EdX
University of Adelaide,AdelaideX

Big Data Capstone Project (edX)

Further develop your knowledge of big data by applying the skills you have learned to a real-world data science project. This project will give you the opportunity to deepen your learning by giving you valuable experience in evaluating, selecting and applying relevant data science techniques, principles and theory to a data science problem. This project will see you plan and execute a reasonably substantial project and demonstrate autonomy, initiative and accountability.

Self Paced
Self-Paced
IoT System Design: Software and Hardware Integration (edX) EdX
Waseda University,WasedaX

IoT System Design: Software and Hardware Integration (edX)

Start developing your own Internet of Things (IoT) system with this exploration of the interaction between software and hardware. This course is designed to teach you how systems are developed using IoT technology. Many engineers and developers tend to focus on a single discipline - either software or hardware. However, in today’s connected age it's critical to have a comprehensive understanding of both disciplines and how they are intertwined.

Self Paced
Self-Paced
Data Science: Probability (edX) EdX
HarvardX,Harvard University

Data Science: Probability (edX)

Learn probability theory — essential for a data scientist — using a case study on the financial crisis of 2007–2008. In this course, you will learn valuable concepts in probability theory. The motivation for this course is the circumstances surrounding the financial crisis of 2007–2008. Part of what caused this financial crisis was that the risk of some securities sold by financial institutions was underestimated. To begin to understand this very complicated event, we need to understand the basics of probability.

Self Paced
Self-Paced
Laboratorio di Programmazione (edX) EdX
University of Naples Federico II,FedericaX

Laboratorio di Programmazione (edX)

Impara a risolvere problemi complessi attraverso l'uso del computer e avvicinati alla magia degli algoritmi. Il linguaggio di programmazione è uno degli strumenti che abbiamo per interpretare e risolvere i problemi di tutti i giorni. Un linguaggio che è alla base di problemi comuni, come le previsioni del tempo o l'analisi della deformazione di una struttura di un'auto in un incidente stradale.

Self Paced
Self-Paced
Introduction to Data Science (edX) EdX
IBM

Introduction to Data Science (edX)

Learn about the world of data science first-hand from real data scientists. The art of uncovering the insights and trends in data has been around for centuries. The ancient Egyptians applied census data to increase efficiency in tax collection and they accurately predicted the flooding of the Nile river every year.

Self Paced
Self-Paced
Introducción a la programación en C: Instrucciones de control y ficheros de texto (edX) EdX
Universidad Autonoma de Madrid

Introducción a la programación en C: Instrucciones de control y ficheros de texto (edX)

En este curso aprenderás sobre condicionales, bucles y ficheros de texto en el lenguaje de programación C, uno de los más utilizados. Este curso en línea te permitirá continuar aprendiendo sobre conceptos para desarrollar habilidades de programación en el lenguaje C. Ahora los programas comienzan a cobrar vida y a volverse más interesantes.

Self Paced
Self-Paced
JavaScript Introduction (edX) EdX
World Wide Web Consortium - W3C,W3Cx

JavaScript Introduction (edX)

Learn JavaScript, a Web development programming language, to add interactivity to your Web pages, and become an expert Web developer. This computer science course is an initiation to JavaScript programming and has been designed to help Web developers have an understanding of the basic concepts of the language. This course was developed in partnership between W3C and University Côte d'Azur.

Self Paced
Self-Paced
Introducción a la programación en C: Funciones y punteros (edX) EdX
Universidad Autonoma de Madrid

Introducción a la programación en C: Funciones y punteros (edX)

En este curso aprenderás cómo hacer programas modulares a través de funciones y punteros en el lenguaje de programación C, uno de los más utilizados. Este curso en línea te permitirá aprender más conceptos para ampliar tus habilidades de programación en el lenguaje C. Ahora resolveremos los problemas de forma modular, dividiendo el código en pequeñas partes definidas como funciones.

Self Paced
Self-Paced
CS50's Introduction to Computer Science (edX) EdX
HarvardX,Harvard University

CS50's Introduction to Computer Science (edX)

An introduction to the intellectual enterprises of computer science and the art of programming. This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50 teaches students how to think algorithmically and solve problems efficiently.

Self Paced
Self-Paced