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

Applications of Linear Algebra Part 2 (edX) EdX
Davidson College,DavidsonX

Applications of Linear Algebra Part 2 (edX)

Explore applications of linear algebra in the field of data mining by learning fundamentals of search engines, clustering movies into genres and of computer graphics by posterizing an image. Our world is in a data deluge with ever increasing sizes of datasets. Linear algebra is a tool to manage and analyze such data. This course is part 2 of a 2-part course, with this part extending smoothly from the first. Note, however, that part 1, is not a prerequisite for part 2.

No sessions available
4 Weeks
Introduction to Java Programming - Part 2 (edX) EdX
The Hong Kong University of Science and Technology - HKUST,HKUSTx

Introduction to Java Programming - Part 2 (edX)

The first MOOC to teach the fundamental elements of Java programming and data abstraction. Do you want to become a better problem solver? This Java course will provide you with a strong understanding of basic Java programming elements and data abstraction using problem representation and the object-oriented framework.

Self Paced
Self-Paced
Computing for Data Analysis (edX) EdX
Georgia Institute of Technology,GTx

Computing for Data Analysis (edX)

A hands-on introduction to basic programming principles and practice relevant to modern data analysis, data mining, and machine learning. The modern data analysis pipeline involves collection, preprocessing, storage, analysis, and interactive visualization of data. In the course, you’ll see how computing and mathematics come together.

Aug 19th 2024
13-24 Weeks
Big Data Analytics Using Spark (edX) EdX
University of California, San Diego,UC San DiegoX

Big Data Analytics Using Spark (edX)

Learn how to analyze large datasets using Jupyter notebooks, MapReduce and Spark as a platform. In data science, data is called “big” if it cannot fit into the memory of a single standard laptop or workstation. The analysis of big datasets requires using a cluster of tens, hundreds or thousands of computers. Effectively using such clusters requires the use of distributed files systems, such as the Hadoop Distributed File System (HDFS) and corresponding computational models, such as Hadoop, MapReduce and Spark.

Dec 5th 2023
5-12 Weeks
Introduction to Linux (edX) EdX
Linux Foundation,LinuxFoundationX

Introduction to Linux (edX)

Never learned Linux? Want a refresh? Develop a good working knowledge of Linux using both the graphical interface and command line across the major Linux distribution families. Develop a good working knowledge of Linux using both the graphical interface and command line, covering the major Linux distribution families.

Self Paced
Self-Paced
MyCS: Computer Science for Beginners (edX) EdX
Harvey Mudd College

MyCS: Computer Science for Beginners (edX)

In this fun and creative introduction to computer science for learners of all ages, you'll learn and apply concepts by programming in Scratch. How do computers work? What do computer scientists do? What does it take to make a computer or a computer program work? We answer these questions and more with MyCS: Computer Science for Beginners.

No sessions available
5-12 Weeks
Introduction to Java Programming - Part 1 (edX) EdX
The Hong Kong University of Science and Technology - HKUST,HKUSTx

Introduction to Java Programming - Part 1 (edX)

Learn the fundamental elements of Java programming and data abstraction. Do you want to become a better problem solver? This Java course will provide you with a strong understanding of basic Java programming elements and data abstraction using problem representation and the object-oriented framework.

Self Paced
Self-Paced
Advanced Algorithmics and Graph Theory with Python (edX) EdX
Institut Mines-Telecom,IMTx

Advanced Algorithmics and Graph Theory with Python (edX)

Strengthen your skills in algorithmics and graph theory, and gain experience in programming in Python along the way. Algorithmics and programming are fundamental skills for engineering students, data scientists and analysts, computer hobbyists or developers. Learning how to program algorithms can be tedious if you aren’t given an opportunity to immediately practice what you learn. In this course, you won't just focus on theory or study a simple catalog of methods, procedures, and concepts. Instead, you’ll be given a challenge wherein you'll be asked to beat an algorithm we’ve written for you by coming up with your own clever solution.

Sep 4th 2023
5-12 Weeks
Wiretaps to Big Data: Privacy and Surveillance in the Age of Interconnection (edX) EdX
Cornell University

Wiretaps to Big Data: Privacy and Surveillance in the Age of Interconnection (edX)

Explore the privacy issues of an interconnected world. How does cellular technology enable massive surveillance? Do users have rights against surveillance? How does surveillance affect how we use cellular and other technologies? How does it affect our democratic institutions? Do you know that the metadata collected by a cellular network speaks volumes about its users? In this course you will explore all of these questions while investigating related issues in WiFi and Internet surveillance.

No sessions available
5-12 Weeks