Introduction

As a society, we have become dependent on computer applications to enable myriad daily tasks including communication and social networking, scheduling, data storage and retrieval, and shopping, as well as the workflows of industry and academia. Everyone is downloading the latest “apps” for their mobile computing device. But what are applications, and how are software programs developed?

CS108 is an introduction to applications programming. Students develop an understanding of the fundamental constructs and patterns present in all programming languages, with a focus on developing applications for end-users. While learning to program, students practice the skill of abstract thinking by decomposing complex problems into logical subtasks.

Computer programming is taught as a tool to apply to solving problems in other disciplines, and the course culminates with students developing an application related to their major course of study or another area of personal interest.

Catalogue Description

Introduction to programming suitable for students not majoring in computer science. Topics include: application decomposition and abstraction; data manipulation and programming with databases; graphical user interfaces; debugging. Assignments will include applications in science, commerce, games, the Web, and social networking.

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: 1 September 2011