/AltCS

Syllabus, readings, labs, assignments for AltCS

Primary LanguageJupyter Notebook

description
This is the welcome page for Alternative Computer Science.

Welcome!

{% hint style="info" %} The calendar is on Trello. Here is the ics file. {% endhint %}

This is Alternative Computer Science, aka MS 059 SC. As the name suggests, the idea behind this class is to provide an alternative approach to learning Computer Science. We will proceed by making analog things (some of which compute in some way), identifying the information contained or generated by these things, and them translating them into Python code.

{% hint style="info" %} NOTE: This is a living document that will change and grow over time. {% endhint %}

Description

Fifty years ago all computers were analog: they found answers by reading changes in a physical model to describe a problem. The course will introduce students to analog computation by solving problems best done with non-digital techniques. We will cover the history of traditional topics in computer science by showing how they emerged from analog computation. We will then map the analogs to algorithms and write code to reproduce the original solutions.

Key Value
Course Number MS 059 SC
Title Alternative Computer Science
Faculty Member Douglas Goodwin
Semester of First Offering Fall, 2019
Proposed Frequency Yearly
Goals
  1. To appreciate some real-world problems that computation solves.
  2. To consider the relationship between analog and algorithmic computation.
  3. To become familiar with several concepts that propelled the development of computer programming.
  4. To use the Python programming language.
Objectives
  1. Investigate fundamental CS concepts by building analog devices.
  2. Identify algorithms that will produce the same results as the analog computers.
  3. Learn how to convert analog processes into algorithms.
  4. Learn how to implement algorithms with Python code.
Anticipated Outcomes
  1. Gain skills in modeling problems with analog materials
  2. Gain facility in extracting algorithms from analog processes
  3. Learn how to translate algorithms into code
  4. Gain some facility with a computer programming language
Intellectual rationale for the course Most Computer Science courses jump into applications of symbolic manipulation without considering the history and development of these abstractions. This course is designed to introduce the student to computers, programming, and some of the key ideas on which the field of computer science is based. This introduction is completed in three parts: through readings, lectures, physical labs, and coding.
Where will this be placed in the College's general curriculum? This class will help students majoring in Media Studies to meet major requirements for MS majors. It will serve as an elective in all other cases.
Where will this be placed in the department/program major? This course meets introductory production requirements for the MS major.
Are there similar or substantially overlapping courses already offered in Claremont? If so, please describe the need for the proposed course and its relationship to other CC offerings?

There are other Introductory Computer Science classes offered in the 5Cs. However this one studies the historical and conceptual backdrop of computation and students will see how analog computation was replaced by algorithms and then implemented in hardware and software.

This class is offered to help satisfy the overwhelmingly high student demand for CS and MS classes.

Will this course fulfill one of the following? No, the course will not fulfill a GE requirement
Does the library have adequate resources to support this new course? All course materials will be availble online
Scripps Course Credit 1.0 course
Grading Letter Grade
Special Course Fee NA
Prerequisite Course(s) None
Is the course repeatable for credit? No
**Activities, Assessment, Points**
Activity Assessment Points
Labs: Analog and Code Submit documentation on Google Colab 35
Submit completed code assignments Jupyter Lab notebooks 35
Code dictation Read some code to your partner. Get it to run through discussion & without showing the solution. 15
Reading Summaries Write a 1-3 paragraph summary of the reading 15

Logistics

The homework and exercise scaffolds are kept in a git repository. You may check these files out on your machine to work on them locally, or click on the [open in colab] button to complete the assignments online.