Programming Methodology

CS106A

Stanford School of Engineering


Description

Introduction to the engineering of computer applications emphasizing modern software engineering principles: program design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style and the built-in facilities of respective languages.

CS106A introduces computer programming for people who have not programmed before. To learn programming, you need to do a lot of guided programming, and have a lot of help at hand-that's CS106A. Recently, CS106A has switched to using the Python programming language and lab-style coding in lecture. But at its heart, it is still CS106A - introduce the world of computers to a broad audience.

Prerequisites

No prior programming experience required.

Topics include

This course will cover all the important topics of basic programming in Python: types, numbers, strings, functions, linear collections, dictionaries, logic, decomposition, good programming style, whole-program structure, text, file-processing, debugging, and performance. This course will also touch on more advanced topics you might want in the future, including lambdas, comprehensions, modules, and Jupyter notebooks. Python is a huge language with many advanced features, and CS106A does not do the whole thing. CS106A teaches the important core features, and you will be able to solve real programming problems with just this course.

Notes

Python 3/ PyCharm

This course will use Python version 3. At first you will just use parlante.org so you don't need to install anything. Later we will do larger exercises where you will need a computer with Python 3 installed on it. You will also need to install the free PyCharm development environment. Detailed instructions will be provided.

It is best to have your laptop during the lecture. This course will experiment integrating little exercises within lecture. Education research shows that doing a little activity with what you just saw helps a lot with learning.

Note on Course Availability

This course is typically offered Autumn, Winter and Summer quarters.

The course schedule is displayed for planning purposes – courses can be modified, changed, or cancelled. Course availability will be considered finalized on the first day of open enrollment. For quarterly enrollment dates, please refer to our graduate certificate homepage.

073 Autumn 2020-21 Online

Not Yet Available

Dates:September 14 - November 20, 2020
Units: 3.00-5.00
Instructors:
Delivery Option:
Online
Fees:
For Credit $4,056.00-$6,760.00
Notes:

Pre-registration Dates: August 10 to September 4, 2020

Computer Science Department Requirement
Students taking graduate courses in Computer Science must enroll for the maximum number of units and maintain a B or better in each course in order to continue taking courses under the Non Degree Option.

Pre-registration for this course will secure your enrollment request and ensure timely processing of your application for potential course approval. Please note: course enrollment will be confirmed after September 1, 2020; after completing your pre-registration, no further action is required on your part.

 

This course may not currently be available to learners in some states and territories.