The ocean-like program: CS50

Source: Internet
Author: User
The full name of CS50 is Introduction to Computer, is a knowledge course at Harvard University

There are classes on edx, anyone can fix it, and even a TA will help you change your career (only in the program, not the other kind of paper industry)

The first time I heard of CS50 this lecture was from this newspaper: CS50: What is the charm of a "hard class" that has over 800 Harvard students chosen?

It was not until recently that the course had been completed that I knew where the lesson was.

Start by answering the title's meaning: like the ocean-like programming curriculum. Why is the ocean because of this lesson: Deep and square

How Deep Is it? I remember every week of the course big synopsis with the job, please you have a background of a friend to see, you will know what I am saying

0th Week

Two-step, ASCII, RGB, binary search method

Introduction to BASIC programming language: conditions, variables, loops, arrays, functions

Business: Write a program with scratch

First week

Start with the C language, and the interpretation of Compile's observations

Introduce various shapes, like double, float, int, bool, char, long long ...

Introduction to floating point error and overflow

Teach you command line basic operations, such as MV, LS, CD, make, etc.

Business: Write a simple C program (loop prints the Stars)

Second week

Intro function, String, array

And how to use ARGC, argv to enter the parameters

And we're talking about encryption, like RSA.

Taught command line's redirecting (>) and Pipe (|)

Industry: Strings handled, simplified and decrypted

Third week

Search, sort (bubble, insert, select, Quick Row, merge), Big O

Recursive, bit operation

Use of GDB

Industry: actually O (n^2) Sorting and binary search

Four weeks

Once again, the recursion

string, target, struct, bitmap format

File Management (Fprint/fopen ... )

malloc, memory allocation

To show you the hex of the file with Xxd.

Business: give you bitmap header file, deal with bitmap picture, for example enlarge twice

Five weeks

In-depth interpretation of memories and targets

Information structure: Linked list, queue, stack, tree, BST, tries, HashMap teach you how to use wget files and how to write Makefile

Business: Actually as a dictionary tree or HashMap

Six weeks

This week starts with the internet, including: IP, IPV6

Domain, nslookup, traceroute, envelope

Ports, DNS, VPN, HTTP, request, response

Teach you to use chmod to change your file rights, and curl to grab Web pages

Industry: Write an HTTP server with C (partial function)

Seventh Week

The Chrome dev tool is used like HTML, request

Basic HTML and CSS teaching

PHP Simple

Get/post references

Basic SQL Science Teaching

Teach you to use the Apt-get installation Kit

Work: Complete the simple PHP web and communicate with the information repository

Eighth Week

Show the refactoring code to understand MVC

Teach basic SQL Language method

There is an introduction to SQL injection

Business: Google Map API, using jquery and Ajax to make a more interactive Web page

Nineth Week

JavaScript language Simplified

JSON format solution

DOM model

Event handler, Incident machine

(No business since this week)

Tenth Week

Explore information security and privacy

Like password security (encryption algorithm, salting)

Smart TV

Fishing-Fish Letter

Two-factor Authentication

Cookies, Session, HTTPS

I also talked a little bit about language recognition, like the principle behind Siri's back.

11th Week

Introduction to the game AI and the car

There are references to:

DFS, BFS

Minimax

evaluation function

Alpha-beta Pruning

Ai Characteristics of different games

And a little bit of machine learning, like how Netflix can recommend videos to users

12th Week

The whole course of the trip plus everybody play a little game this week no lesson

When I was doing this class, I was amazed.

Whoa, shove! Actually teaches you how to write Makefile, also teaches you to use the XXD to look at the file case, even gives you the bitmap document, wants you to follow these formats to read the picture to take out, then enlarges afterwards writes back!

Write to my most bulb of the job is the HTTP server that, because to use C to do string management ...

From the above Yangyang sprinkled sprinkled 12 weeks of class durations, I know this course is really deep and broad

A little tidying up, you can learn after you finish:

    1. The basics of programming: variables, arrays, sentences, loops, functions
    2. You learned the point!
    3. Work directly with the memory to understand what's on the computer floor
    4. Familiarity with basic sequencing algorithms and information structures
    5. The use of command line commands (I think this is a bit of a super-practical)
    6. Basic knowledge of the Internet (IP, DNS, server, port, request, response ...) )
    7. Backend Programming language PHP
    8. Front Html/css/javascript
    9. Information about MySQL usage and instructions
    10. Information security (plus decryption, SQL injection, buffer overflow)
    11. Understanding of machine learning, artificial intelligence, and language knowledge

I've always been a self-taught programmer, though I've had a couple of program-related lessons after college.

But it's all just a little bit of a learning thing.

But this time I met this class and really let me praise sighs from the bottom of my heart.

Each of the things he Yi in his course is very practical, and some of them are even more recent.

I didn't even use the command line since I was a student! Because there's no chance to use it.

Besides, despite the depth of the lecture, the teacher is humorous when he is in class and can talk about the concept of living Shibuya.

For example, the second search method, the teacher took the telephone book as an example, and then directly from the middle of tearing half!

or up to two, there are a few lights on the stage, the light is 1, the dark is 0, with this physical interaction to deepen the impression

In the course of teaching, there are a few points that I am very pleased with.

First, enter from scratch

After finishing the CS50, I decided to teach the programming, all to start with scratch.

Because it's visually conscious, you can clearly see how the program is structured, and it's fast and the internal resources are intact.

You want to be a game, drag a few characters, define the event.

I think ' scratch is the best choice for the program.

Second, the concept of a very difficult to understand first packaging

Like a string, in C it's actually char*, or a char-formed array.

But how are you going to talk to the students at the beginning?

So they wrote a string of type out, hid the information, and waited until the end of the array to talk to the students.

And scanf, it towed the concept of pointer and call by value, which does not fit in the beginning

But the program has to have the input, how to do?

So they wrap them up in a GetInt () function and seal them up.

Third, the cloud-side IDE

It's not easy to build an environment.

CS50 works with C9 to provide the online IDE

You can write code, you can see the file, you can use command line, all the work is done on it.

Super Convenient!

The last

This class is really a hard lesson, but it's also a very Zashi and useful lesson.

Recommended to anyone who wants to learn to write a program

  • 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.