|
|
COMP 320 |
|
| Home | Administration | Assignments | Syllabus & Notes | Related Web Links |
|---|
| Administration Home | Assignment & Grading Policies | Textbooks | Anonymous Feedback |
|---|
Class
TTh 9.25a-10.40a, DH 1064
Tutorial
Section 1: Th 2.30p-3.50p, Symonds II
Section 2: Th 7.00p-8.20p, Symonds II
Tutorials will cover additional pragmatic material, especially the C programming language and programming skills, primarily useful for completing the programming assignments. Various programming skills will also be covered.
Course staff
| Newsgroup: | rice.owlnews.comp320 | for questions of general interest |
| Email: | comp320@rice.edu | for questions specific to your assignments or grades |
| Send anonymous feedback to the instructor. | ||
| Role | Name | Email @rice.edu |
Phone | Office Hours | |
|---|---|---|---|---|---|
| Instructor | John Greiner | greiner | x3838 | TTh 1-2p | Duncan 3118 |
| Teaching Assistants | Hyong-Youb (John) Kim | hykim | x5060 | M 3-5p | Duncan 3064 |
| Santashil PalChaudhuri | santa | x2265 | TBA | Duncan 3013 | |
| Apan Qasem | qasem | x2062 | T 4-6p | Duncan 3057 | |
| Lab Assistants | Vishal Patel | vish | T 7-9p | Ryon 102 | |
| Joe Montgomery | montgom | W 9-11p | Ryon 102 | ||
| Lowell Meyer | lowell | M 8-10p | Ryon 102 | ||
| Adam Bordelon | me | W 3-5p | Ryon 102 | ||
The second hour of each labby's and TA's office hours is cancelled during weeks that there is no programming assignment.
There is one formal prerequisite: COMP 212: Intermediate Programming, which in turn has one prerequisite: COMP 210: Principles to Computing and Programming. This course is reasonably self-contained; the major informal prerequisites are some proficiency in programming and familiarity with basic data structures like arrays, lists, and trees. Strong students have been able to successfully take COMP 212 and 320 concurrently, although it is not encouraged.
If you are still unsure whether you have sufficient background, contact the instructor.
Knowledge of the C programming language is not a prerequisite, although it is helpful and somewhat expected that you have used Java in COMP 212, since Java's syntax is based on that of C. The first part of this course includes a crash course on some C fundamentals.
ELEC 326: Digital Logic Design is not a prerequisite, although students typically find its content helpful. COMP 320 and ELEC 326 have a small amount of overlap.
This course is about low-level features in computers and programming, so we use a low-level programming language to emphasize that. Everything in C can be implemented on typical processors in a fairly straightforward manner, and it is thus often considered a high-level assembly language. Similarly, it exposes some details of the underlying machine, e.g., how data is stored in memory.
It is important to get experience in a variety of programming paradigms and languages. COMP 210 uses a mostly-functional language. COMP 212 uses an object-oriented language. COMP 320 uses an imperative language. Each of these has advantages and disadvantagees, which are best understood by personal use of each. (Note: There are other programming paradigms, too.)
To emphasize the importance of code documentation. Good code must be written so that others can understand it, and this requires extensive documentation. In COMP 210 and COMP 212, this is less obvious partly because they use higher-level languages in which code is usually easier to understand.
So you don't avoid the experience of low-level and imperative programming.
Pragmatically, it's easier to provide support code, answer questions, and grade when just using one language.