Menu
Laney College

CIS 61 – SICP

CIS 61 – SICP

COURSE DESCRIPTION

This course uses a problem-solving approach to computer programming that emphasis on design and implementation of functions, representation of abstract forms of data, and the effects of different programming methods on software development.

This course is designed to provide the lower division equivalency to the University of California’s Computer Science Degree requirement for a course in the Structure and Interpretation of Computer Programs (CS61A).

Please note that this course is not an introduction to programming course and should not be confused with CIS-6.

This is a fast-based course that focuses on higher-level programming concepts such as:

  • Expressions and Functions
  • Programming Environments
  • Higher-Order Functions
  • Recursions
  • Trees
  • Sequences and Data Abstraction
  • Linked Lists
  • Iterators and Generators
  • Programming Efficiency and Growth
  • Classes and Objects
  • Inheritance and Interfaces
  • Scheme – Macros and Streams
  • Declarative Programming – SQL

We will be using Python as the primary programming language. However, the goal of the course is to learn programming principles that would apply to any programming language.

You will learn how to:

  1. Develop programs that are concise and elegant, in a clear and well-planned manner;
  2. Understand and effectively implement a programming methodology that focuses on working with single input-output functions;
  3. Effectively and elegantly reduce the complexity of a programming problem into smaller, simply defined components.
RECOMMENDATIONS

Prior programming experience and algebra-level math proficiency are highly recommended for this class. Please note that this is not an introduction to a programming course. We will focus on rather advanced programming concepts.
Alternatives to this class are CIS-5 or CIS-6. Both classes will provide an introduction to Python.

Early Preparation for This Course

CIS 61 is an advanced and rigorous course that is not intended for beginner programmers. However, if you choose to take this class and have no prior programming or, in particular, Python experience, I can suggest that you do some early preparation of Python.

Here are two good resources:
LearnPython.org offers some good beginning tutorials. You can go over some of the “Learn the Basics” materials.
Socratica YouTube channel also provides some excellent Python tutorials. You can continue with this early prep throughout the course as well.

SOFTWARE

Python 3 and Sublime Text Editor.

PYTHON​/IDLE​ ​DOWNLOAD​ ​KIT​: ​https://www.python.org/downloads/ – The latest version available. We will use Python 3 in this course

SUBLIME TEXT EDITOR: https://www.sublimetext.com/ – Free to download and use.

Required​ ​Textbook

UC Berkeley has generously allowed downloads of the textbook for free. This book is derived from the classic textbook Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman. John Denero has modified it for Python at UC Berkeley. It is licensed under the Creative Commons Attribution-ShareAlike 3.0 license.
Direct link to the textbook: https://www.composingprograms.com/