Program programming like ocean: CS50

Source: Internet
Author: User
Tags php introduction
Generic program example: the full name of CS50 CS50 is Introduction to Computer ScienceIt is a general idea of Harvard University.

Open a notebook on edx, anyone can repair it, or even some TA to help you transform your career (only program production, excluding other topics such as compile-based production)

For the first time I heard about CS50, this article titled CS50: a "hard nut" that has been selected by more than 800 Harvard students. what is the charm of CS50?

It was not until after the repair was completed recently that we knew where the damage was.

Let's answer the question: Program programming like a sea. Why is the ocean? because of the following issues:Deep and Deep

How deep is it? I remember every example of Cheng's career and career. if you have any background in your work, you will know what I'm talking about.

Zeroth percentile

Binary bitwise, ASCII, RGB, binary search

Introducing the basic program statement: condition determination, change number, circle, comment column, and function

Tutorial: use scratch to compile a program

First region

Start to explain the C statement and explain the compile concept.

Describes various types of operators, such as double, float, int, bool, char, long...

Introduce floating point data difference and overflow

Teach you basic command line operations, such as mv, ls, cd, make, etc.

Homework: compile a simple C program (circled to print stars)

Second Region

Specify function, string, array

And how to use argc and argv compaction to import data

Encryption is also available, such as RSA.

Taught command line Redirecting (>) and Pipe (|)

Industry: String Processing, simple encryption and decryption

Third Region

Search, sort (bubble, insert, select, fast sort, merge), big O

Batch commit and bit operations

Use of GDB

Homework: sorting of O (n ^ 2) and binary search

Fourth region

Explain the problem again

String, index, struct, bitmap format

Processing (fprint/fopen ...)

Malloc, memory allocation

How to use xxd to view the hex

Tutorial: Give you bitmap header files to process bitmap images. for example, enlarge them by two times.

Fifth Region

In-depth understanding of the reporter's experience and goals

Information structure: linked list, queue, stack, tree, BST, tries, and hashmap teach you how to use wget to capture the upload case and how to compile Makefile

Homework: implement dictionary embedding or hashmap

Sixth Region

At the beginning, the website is related to the network, including IP and IPv6.

Domain, nslookup, traceroute, packet

Ports, dns, vpn, http, request, response

Teach you how to use chmod to modify the legal privilege and curl to capture the website

Tutorial: use C to upload an http server (partial functions)

7th percentile

Chrome dev tool, such as html and request

Basic html and css teaching

Php introduction

Get/post statistics

SQL basics

How to use apt-get security kits

Homework: complete the simple php website and access to information

Eighth Week

Shows how to rebuild the program and understand the concept of MVC.

Teach basic SQL syntax

SQL Injection

Industry: a string of Google Map APIs, using jQuery and ajax to make highly interactive websites

Ninth percentile

Introduction to javascript syntax

Parse in json format

DOM model

Event handler, event mechanism

(Since then, there has been no job)

10th percentile

Information security and privacy rights

Like password encryption security (encryption algorithm, salting)

Smart computers

Alimail

Two-factor authentication

Cookies, sessions, and https

It also gave me a little bit of speech recognition, just like how siri backs up.

11th bytes

Introduction between AI and no-person vehicle

It is mentioned that:

Dfs, bfs

Minimax

Evaluation function

Alpha-beta pruning

Ai features of different regions

I also learned a little about machine learning, such as how netflix pushes videos to users.

12th bytes

The entire failover process, coupled with everyone playing a little bit of attention, does not have any programming procedures.

When I was doing this operation, I was just waiting.

Wow! How to compile Makefile, and how to use xxd to view the upload case, or even give you bitmap files. you need to extract the Upload file in this format, then zoom in and then click back!

My most failed job is the http server, because I want to use C for string processing...

From the introduction of the 12th anniversary above, we will know that this story is true.Deep and Deep

After completing the course, you can learn:

  1. Basic skills of programming: change data, train columns, judgment, circle, and function
  2. You learned the target!
  3. Directly operate the notebook to understand what the computer base is doing
  4. Familiar with basic sorting algorithm and data structure
  5. The use of various command line commands (I think this is more practical)
  6. Basic network knowledge (ip, dns, server, port, request, response ...)
  7. Post-end program comment php
  8. Front-end html/css/javascript
  9. Usage and instructions of mysql
  10. Data security (encryption and decryption, SQL injection, buffer overflow)
  11. Machine learning, artificial intelligence, and speaker recognition

I have always been a self-learning program. After I went to college, I was able to learn the program-related procedures.

However, they are all just doing something else. they didn't learn too many things.

But this time I met this story, it really impressed me from the bottom of my heart.

Everything he introduced in his programming is very practical, and some or even others will be used in the near future.

I didn't even use the command line when I was studying it! Because there is no chance to use it.

In addition, although the content of this article has a depth, the old man is humorous when he is on the top of the page. he can make the concept of "birth" very dynamic.

For example, in the binary search method, the old man uses the phone book as an example, and then tore half of it from the middle!

Or when we reach the second stage, there will be several bubbles on the stage. the bright side is 1, and the dark side is 0. in this way, the interaction of the real world deepens the impression.

I am very grateful for some points of attention in the course of teaching.

First, import the cursor from scratch

After completing cs50, I decided to teach people program design, starting with scratch.

Because of its perception, you can clearly see how the program is structured. Moreover, it is fast and has complete internal resources.

If you want to create a role, you just need to drag a role and define the event.

I think 'scratch is the best option for program input.

Second, we need to package the concept that is very difficult to understand first.

For example, it is a string. in C, it is actually char *, or it is a character column formed by char.

But at the beginning, how do you explain to students?

So they just wrote a string type, hid these resources, and waited until they were listed in the lower column, and then told the students again.

Scanf also applies to the concepts of pointer and call by value, which is not necessarily the same at the beginning.

But the program still needs to be written. how can this problem be solved?

Therefore, they are packaged into a GetInt () function, and these operators are blocked.

Third, producer-side IDE

It is not easy to build a development environment

CS50 works with c9 to provide the IDE on idea

You can compile code to check the execution case and use command line to perform operations.

Super convenient!

Last

This example is really hard to understand, but it is also very practical and useful at the same time.

Push to anyone who wants to learn programming

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.