Course description

Contents:
Introduction to Computer Science Series at Stanford - Similarity between C++ & Java:syntax - variable types - operators - control structures-C++ Libraries - Standard Libraries - C++ Console I/O-Client Use of Templates - More Containers - Seeing Functions as Data: Specific Plot Functions - Common Mistakes Stumbled Upon -Thinking Recursively -Refresh: Permute Code - Backtracking Pseudocode

Pointer Movie - Coding with Linked List - Algorithm Analysis - Selection Sort - Partitioning for Quicksort - Sort Template with Callback-Abstract Data Types - Rules of Template Implementation-Live Coding: Recap of the Vector - based Implementation for Stack-Buffer: Vector vs Stack - Map as Vector - Pathfinder Demo - Compare Map Implementations - Lexicon Case Study - Final Showdown - About the C++ Language, Quick History of C++, C++ Philosophy

What will i learn?

Requirements

skill expert

Free

Lectures

27

Skill level

Beginner

Expiry period

Lifetime

Certificate

Yes

Related courses

Beginner

Memory Systems

0

(0 Reviews)

Compare

Overview In this course, we first provide a comprehensive overview of memory systems, taking an approach that covers both fundamentals and recent research. We first introduce fundamental principles and ideas, covering DRAM and emerging memory technologies as well as many architectural concepts and ideas related to memory organization, memory control, processing-in-memory, and memory latency / energy / bandwidth / reliability / security / QoS. We discuss major challenges facing modern memory systems (and the computing platforms we currently design around the memory system) in the presence of greatly increasing demand for data and its fast analysis. We examine some promising research and design directions to overcome these challenges. On the research-related part of course (sprinkled across topical lectures), we discuss the following key research topics in detail, focusing on both open problems and potential solution directions: Fundamental issues in memory reliability and security and how to enable fundamentally secure, reliable, safe architectures Enabling data-centric and hence fundamentally energy-efficient architectures that are capable of performing computation near data Reducing both latency and energy consumption by tackling the fixed-latency/energy mindset Enabling emerging memory technologies Enabling predictable and QoS-aware memory systems Research challenges and opportunities in enabling emerging NVM (non-volatile memory) technologies Scaling NAND flash memory and SSDs (solid state drives) into the future

Free

22:36:25 Hours