YoVDO

Intro to Computer Science

Offered By: University of Virginia via Udacity

Tags

Computer Science Courses Web Development Courses Python Courses Quantum Computing Courses Algorithms Courses Software Engineering Courses Data Structures Courses

Course Description

Overview

In this introduction to computer programming course, you’ll learn and practice key computer science concepts by building your own versions of popular web applications. You’ll learn Python, a powerful, easy-to-learn, and widely used programming language, and you’ll explore computer science basics, as you build your own search engine and social network.



Why Take This Course?

You’ll learn the programming language Python, and you’ll explore foundational concepts in computer science. Most importantly, you’ll start thinking like a software engineer by solving interesting problems (how to build a web crawler or a social network) using computer programming.

This course is a first step into the world of computer science, and whether you want to become a software engineer, or collaborate with software engineers, this course is for you. You’ll be prepared for intermediate-level computer science classes when you’ve mastered the concepts covered in this course.

Build a Search Engine

Throughout this course, you’ll build a search engine by learning about and producing key search engine components including a crawler, an index and a page rank algorithm. As you build these pieces, you’ll be learning about and practicing computer science skills that will ready you for intermediate level computer science courses.

Build a Social Network

At the end of the course we will give you a set of relationships (i.e. strings of phrases like "Dave likes Andy, Kathleen and Kristy") and you will use your new computer science skills to organize these relationships into a social network. With your new social network, you can explore relationships and gain insight into how you fit into your own social networks.


Syllabus

Lesson 1: How to Get Started
  • Interview with Sergey Brin
  • Getting Started with Python
  • Processors
  • Grace Hopper
  • Variables
  • Strings and Numbers
  • Indexing Strings
  • String Theory
Lesson 2: How to Repeat
  • Introducing Procedures
  • Sum Procedure with a Return Statement
  • Equality Comparisons
  • If Statements
  • Or Function
  • Biggest Procedure
  • While Loops
  • Print Numbers
Lesson 2.5: How to Solve Problems
  • What are the Inputs
  • Algorithm Pseudocode
  • Optimizing
Lesson 3: How to Manage Data
  • Nested Lists
  • A List of Strings
  • Aliasing
  • List Operations
  • List Addition and Length
  • How Computers Store Data
  • For Loops
  • Popping Elements
  • Crawl Web
Lesson 4: Responding to Queries
  • Data Structures
  • Lookup
  • Building the Web Index
  • Latency
  • Bandwidth
  • Buckets of Bits
  • Protocols
Lesson 5: How Programs Run
  • Measuring Speed
  • Spin Loop
  • Index Size vs. Time
  • Making Lookup Faster
  • Hash Function
  • Testing Hash Functions
  • Implementing Hash Tables
  • Dictionaries
  • Modifying the Search Engine
Lesson 6: How to Have Infinite Power
  • Infinite Power
  • Counter
  • Recursive Definitions
  • Recursive Procedures
  • Palindromes
  • Recursive v. Iterative
  • Divide and Be Conquered
  • Ranking Web Pages
Lesson 7: Past, Present, and the Future of Computing
  • Past of Computing
  • Computer History Museum
  • First Hard Drive
  • Search Before Computers
  • Present of Computing
  • Slac and Big Data
  • Open Source
  • Future of Computing
  • Text Analysis
  • Energy Aware Computing
  • Computer Security
  • Quantum Computing

Taught by

Sebastian Thrun and David Evans

Tags

Related Courses

Design Computing: 3D Modeling in Rhinoceros with Python/Rhinoscript
University of Michigan via Coursera
A Practical Introduction to Test-Driven Development
LearnQuest via Coursera
FinTech for Finance and Business Leaders
ACCA via edX
Access Bioinformatics Databases with Biopython
Coursera Project Network via Coursera
Accounting Data Analytics
University of Illinois at Urbana-Champaign via Coursera