Free Programming Abstractions Course – SEE

Stanford Engineering Everywhere (SEE) offers few computer science courses to students online and at no charge. Programming Abstractions course covers advanced programming topics such as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java.

[et_pb_section fb_built=”1″ admin_label=”section” _builder_version=”3.22″ custom_padding=”0px||29px|||” global_colors_info=”{}”][et_pb_row admin_label=”row” _builder_version=”3.25″ background_size=”initial” background_position=”top_left” background_repeat=”repeat” global_colors_info=”{}”][et_pb_column type=”4_4″ _builder_version=”3.25″ custom_padding=”|||” global_colors_info=”{}” custom_padding__hover=”|||”][et_pb_text admin_label=”Text” _builder_version=”4.14.2″ background_size=”initial” background_position=”top_left” background_repeat=”repeat” hover_enabled=”0″ global_colors_info=”{}” sticky_enabled=”0″]

Stanford Engineering Everywhere (SEE) offers few computer science courses to students online and at no charge. SEE courses include the content offered in an actual campus course including lecture videos, as well as all lecture slides, reading lists and handouts, homework assignments, quizzes, examinations, and when appropriate, solution sets.

One of the courses is Programming Abstractions (CS106B). This course covers advanced programming techniques such as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java.

This course assumes that student has familiarity with good programming style and software engineering issues, and that student can use this understanding as a foundation on which to tackle new topics in programming and data abstraction.

Important topics of this course are:

  • Transitioning to C++, syntax, procedural paradigm
  • Standard C++ and CS106 Libraries
  • Functional and procedural recursion
    Algorithm analysis, sorting, template functions
  • Dynamic arrays and Linked lists
  • Vectors in C++, Stack, and Queue implementation
  • Trees, Hashing, Map, Set, Graphs Implementation

Course Syllabus

Course Materials

[/et_pb_text][et_pb_text _builder_version=”4.8.1″ global_colors_info=”{}”]

Lecture Description Slides
1 About the CS106 Series at Stanford, The CS106 Philosophy, Why take CS106B?, Logistics of the Course, Introducing C++ Lecture01.pdf
2 Similarity between C++ & Java Lecture02.pdf
3 C++ Libraries – Standard Libraries, C++ String Type, C++ string vs Java String and C++ Console I/O Lecture03.pdf
4 C++ Console I/O, C++ File I/O, Stream Operations. Lecture04.pdf
5 Client Use of Templates, Vector Class and Stack, Queue etc. Lecture05.pdf
6 Containers, Maps, Use of Set, Set Higher-level Operations, Why Set is Different Lecture06.pdf
7 Seeing Functions as Data Lecture07.pdf
8 Common Mistakes Stumbled Upon Lecture08.pdf
9 Thinking Recursively, Procedural vs Functional Lecture09.pdf
10 Refresh: Permute Code, Tree of Recursive Calls etc. Lecture10.pdf
11 Backtracking Pseudocode, Sudoku Solver, Sudoku Code, Cryptarithmetic, Dumb Solver, Smarter Solver. Lecture11.pdf
12 Pointer and Pointer Operations. Lecture12.pdf
13 Coding with Linked List Lecture13.pdf
14 Algorithm Analysis, Evaluating the Performance, Analysis of Codes Lecture14.pdf
15 Sorting Techniques Lecture15.pdf
16 More on Sorting Lecture16.pdf
17 Object Oriented Techniques Lecture17.pdf
18 Abstract Data Types, Wall of Abstraction, Why ADTs? Lecture18.pdf
19 Rules of Template Implementation, Explanation of the Working Lecture19.pdf
20 Recap of the Vector-based Implementation for Stack and Linked List Implementation for Stack Lecture20.pdf
21 Buffer and Map as Vector Lecture21.pdf
22 Map as Vector, A different Strategy: Lecture22.pdf
23 Pathfinder Demo, Graphs: Examples, Graphs: Explanation, Implementation Strategies Lecture23.pdf
24 Compare Map Implementations, Hashtable Idea, Hash Functions, Hash Collisions Lecture24.pdf
25 Lexicon Case Study, Lexicon as Sorted Vector, Lexicon as BST, Lexicon as Hash Table Lecture25.pdf
26 Thinking About Design, Runtime Performance, Memory Used, Code Complexity
27 Guest Lecturer: Keith Schwarz, About the C++ Language, Quick History of C++, C++ Philosophy H38-C++sansCS106.pdf

[/et_pb_text][et_pb_text _builder_version=”4.0.9″ global_colors_info=”{}”]Prerequisites: Solid performance in Programming Methodology and readiness to move on to advanced programming topics. A comparable introductory programming course (including high school AP courses) is often a reasonable substitute for our Programming Methodology.

Stanford Engineering Everywhere, https://see.stanford.edu/. License: Creative Commons BY-NC-SA. For more information about using these materials and the Creative Commons license please visit: http://creativecommons.org/licenses/by-nc-sa/4.0/legalcode[/et_pb_text][et_pb_cta title=”Best Free C/C++ Programming Courses” button_url=”https://www.mycplus.com/featured-articles/best-free-programming-courses-online/” button_text=”Free Courses” _builder_version=”4.8.1″ _module_preset=”default” background_enable_image=”off” background_blend=”multiply” link_option_url=”https://www.mycplus.com/featured-articles/best-free-programming-courses-online/” global_colors_info=”{}”]

We have compiled a list of C and C++ Programming courses that could help you learn basic and advanced programming techniques. These courses are offered online by different universities, and they are absolutely FREE.

[/et_pb_cta][/et_pb_column][/et_pb_row][/et_pb_section]

Scroll to Top