Introduction

As a society, we have become dependent on computer applications to enable myriad daily tasks including communication, scheduling, data storage and retrieval, and shopping, as well as the workflows of industry and academia. But what is computer software, and how is it developed?

CS108 is a programming-based introduction to computer science for students not majoring in computer science. The course develops basic computer programming skills and algorithmic thinking, with an emphasis on developing interactive, database-driven applications for the World Wide Web (i.e. Facebook).

Students develop an understanding of the fundamental constructs and patterns present in all programming languages, with a focus on developing applications for users. While learning to program, students practice the skill of abstract thinking and decomposing complex problems into logical subtasks, as well as a tool to apply to solving problems in other disciplines.

Catalogue Description

Introduction to object-oriented and procedural programming, including: understanding fundamental constructs and patterns present in programming languages; using abstraction to simplify complex problems into concrete subtasks; methodical and efficient programming and debugging. Suitable for students not concentrating in Computer Science.

Core Competencies

Teaching/Learning Method

This course will follow a rigorous schedule of assignments. Each assignment corresponds to a section of the course content and textbook. Failure to keep up with the assignments will result in your failing the course. Each session builds on the prior session and is a required building block for the following section. It is very difficult for you to be successful in the course if you miss any class sessions.

Why Python

Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. Some of its distinguishing features include:

More at http://www.python.org/about/.

Who Uses Python?

Python is used successfully in thousands of real-world business applications around the world, including many large and mission critical systems. Success stories include YouTube.com, Google, Honeywell, Philips, AstraZeneca and George Lucas's Industrial Light and Magic.

More at http://www.python.org/about/success

What You Need to Know About Computer Programming

I believe anyone can succeed at learning to program. This is a first course in computer programming, and there are no formal pre-requisites. The only expectation of students' computer skills before taking this class is to be comfortable with using email, web browsing, and copying and pasting text. In addition, familiarity with high school-level algebra (e.g. MA 118) is assumed.

In addition, you will need time, and this is more important than you can imagine. Many people believe that computer programming is extremely difficult, and that the code is written in some arcane syntax understandable only by experts. Although some parts of the process are indeed complex, most of the source code required for homework assignments can be easily understood.

So, what makes programming so hard? It's not the difficulty: It's the time required to achieve any decent results. The homework assignments will take time, so make sure you have plenty of it.

Adapted from text in "Core Techniques and Algorithms in Game Programming," Daniel Sanchez-Crespo Dalmau.


Created by: Aaron Stevens, azs@bu.edu
http://www.cs.bu.edu/courses/cs108/
Last update: 10 March 2011