CS 113 - Spring 1999 - Computer Science II with Intensive C
Syllabus
- Professor:
- Steve Homer
Room MCS 281, phone (617) 353-8927
E-mail: homer@cs.bu.edu
Office hours: Tuesday and Thursday 10-11 and Wednesday 10:30-11:30.
- Teaching Fellow:
- Rob Pitts
Room MCS 223, phone (617) 353-3381
E-mail: rip@cs.bu.edu
Office hours: TBA
Texts
"C by Dissection", by Kelley and Pohl, Addison-Wesley, and "Data
Structures, Algorithms and Software Principles in C", by Thomas
Standish, Addison-Wesley.
Recommended: "The C Programming Language", by Kernighan and Ritchie.
Content
The purpose of this course is to learn the fundamentals of programming
and data structures in a high level language. The course is intended
for students that already have some experience programming. It is
therefore assumed that you have such experience.
The course has two parts. In the first part we will cover the C programming
language. This will be done in the first three weeks of the semester.
In the second part we will study a number of important data structures
and related algorithms, such as stacks, queues, and sorting algorithms
(see the list below). You will also learn how to create and understand
recursive algorithms, to organize programs using modular programming
techniques (and maintain them using separate compilation), and to
properly document a program.
The material we will cover during the semester is:
- Brief Introduction to Unix and Emacs
- Introduction to C, Primitive data types, Operators and Expressions
- Control Flow (if-then, switch, while, do-while)
- Functions
- Pointers and Arrays
- Structures
- Recursion
- Linked Lists, Stacks, and Queues
- Trees
- Sorting and Searching
- Graphs
- Hashing
Finally, we will attempt to put all this in the context of Computer
Science as a scientific discipline. In particular, some of the
currently active topics in the field will be discussed as they relate
to various aspects of programming.
Grading
There will be approximately 6 programs, a midterm and a final.
The course grade will be based on:
homework | 50% |
midterm | 20% |
final | 30% |
Points will be taken off for late homework and incompletes will not be
given.
Assignment #0:
-
Get a computer account by running 'new' on csa.
-
After you log on for the first time, type 'help ethics' and read
through the BU Computing Ethics policy.
-
Run Netscape (type 'communicator' at the prompt) and open the
document:
http://www.cs.bu.edu/faculty/homer/113
-
Take a look at the various pointers on the class home page. In
particular, you will need to know about Unix, Emacs and how to use
email, some of which will be covered in discussion sections.
Note: Important course information will be communicated via
e-mail and the course web page. You are responsible for all
information distributed by these means.