CSCI 201: Software Development

Prof. David Wilczynski

General Information

Course Overview

Prerequisites. It is expected that you already know how to do "object-oriented" programming using C++ and Java.

Software development is about building applications that run on computers. It is much more than algorithm design, selecting a programming language, or coding. Those are important, but for larger applications we need a larger perspective, or system view. And we must worry more about the creation process, often called software engineering.

You will be taught about writing code that is part of a system by immersing you into existing bodies of code. The approach is more like mentoring than teaching. You will be asked to enhance existing projects. The result is to teach you about Software Development in the way you will encounter it in industry. We will cover several theoretical topics, but always as it applies to the systems you are working on.

Materials

· Website: http://www-scf.usc.edu/~csci201/

· Materials on Website:

o The class topics: CSCI201Curriculum.htm

A guide to agents: AgentRoadmap.htm

We won't be covering all the topics in those documents. All reading assignments and code downloads are given at Lectures/Lab . The date shown there is the date a reading should be done by. There is a lot of reading, but you are encouraged to skim where appropriate.

Assignments

Programming assignments are graded on thorough testing, documentation, and style, as well as correctness. All work to be submitted for the class is to be done individually unless an assignment specifies otherwise.

Grading 

Assignments and Programming: 30%

2 midterms: 40% (20% each)

1 final: 30%

 

A = 92%      A- = 90%

B+ = 88%    B = 82%      B- = 80%

C+ = 78%   C = 72%      C- = 70%

Exams will be scaled to match these ranges.

Extra credit may be available on assignments for use in deciding borderline cases.             


Last modified January 4, 2006 by David Wilczynski, dwilczyn@usc.edu