Date: Tue, 14 Jan 1997 23:13:07 GMT
Server: Apache/1.0.5
Content-type: text/html
Content-length: 3274
Last-modified: Tue, 14 Jan 1997 18:37:23 GMT
Introduction
CS A10: Introduction to Computer Programming
What you'll learn
How to design and build interactive software systems.
How to use a modern programming environment to code and debug multi-file C and
C++ projects.
How to design language-independent algorithms and data structures.
How to design application program interfaces for new code libraries.
How to write simple C code.
How networked client/server computing works, as exemplified by the World Wide
Web.
Texts
Scheduling Note
This course follows the schedule of the McCormick School of Engineering. That
means that classes will meet during reading week.
Computing Requirements
To do the assignments, you must have ready access to one of the following
platforms:
- a PC-compatible, 386 or better, with Borland's Turbo C/C++, preferrably
version 4.5
- a Macintosh, preferrably 68030 or better, with Symantec's THINK C/C++
- a Unix machine with GNU C/C++ and X-Windows, with either the Athena or
Motif widget set
In addition, no matter which of the platforms you're on,
you also need:
- a computer on the Northwestern network with
- a Web browser, preferrably Netscape 1.1N or better, or the most recent
release of Mosaic
- an FTP program, e.g., FTP on Unix, Fetch on the Macintosh, or FTP Client
for Windows on the PC
Course notes, announcements, assignments, and C/C++ code that
you must have, will be available only via the network.
Topics
Basic
programming language concepts
- Constants (integers, floats, strings) and variables
- Reading and writing data
- Expressions: arithmetic, logical
- Control statements: iteration (for, while), branching
(if, switch)
- Functions: calling, defining, prototyping
- Files
Basic
computer science concepts
- Data structures (strings, arrays, pointers)
- Algorithms and algorithm analysis
Software
development
- Libraries: using, defining (interface and implementation)
- Development environments: files, projects, debuggers
Program
design
- Requirements analysis
- Algorithm and data structure design
- Modules and application program interfaces (API's)
- Coding for maintainability
- Testing and debugging
- Programming-in-the-large
Application
concepts
- Graphics
- Graphical interactive interfaces
- Event-driven programming
Assignments and work load
You learn by doing. There's a lot to learn in this course, so there's a lot of
doing. While the basic concepts will be taught in the lectures and assessed in
the exams, the real learning will occur in the programming assignments.
This is a very time-consuming course.
Comments?
Send mail to
Chris
Riesbeck.