CS 204
- Advanced Programming
Spring 2007
Description & Course Objectives:
This
course is intended to give advanced programming techniques, as well as
further experience in programming to interested students. Topics covered
will be: advanced object-oriented programming techniques and programming
with classes (function overloading, templated classes, inheritance), pointers,
debugging and profiling, reusable software (using/creating libraries),
visual/GUI programming, programming in UNIX/Linux environments (make files,
shell scripts), exception handling (SW interrupts), multi-threaded programming
and synchronization, real-time programming (hardware interrupts, pipes,
sockets)...
The
intended audience is
Students
should be aware that there will be considerable coursework and substantial
programming assignments (one programming project about every other week,
alternating with CS 202 as much as possible). Also, MS, BIO students who can
take only one CS course in this term should consider taking CS 202 instead, as CS
202 is a prerequisite of CS 301 (Algorithms).
You should read the information given in this page carefully and follow
the rules!
Prereq: CS201
Instructor: Berrin Yanikoglu (berrin@sabanciuniv.edu,
Office Hours (updated to meet your common free hours): Mon. 12:40-1:30pm, Wed. 12:40-1:30pm (you can get help about your
assignments or ask about lecture topics etc. here).
Besides these hours, you can make an appointment by email (plz. do not call me on the phone), to
discuss matters relating to the course with me (I cannot give individual help outside my office hours, but I can discuss your questions, concerns
etc. about the class)
Book:
Main book will be: Beginning Visual C++, by I. Horton (Chp. 4-18; chp.
13-18 will be heavily used for GUI programming);
We will
also use Tapestry for some topics (chp. 9-13; material also covered in Horton
Chp. 4-12 etc.).
Horton is
a good, complete book, but if you don’t want to buy it, you could
probably do away with photocopying 4 or so chapters (GUI) of Horton and
covering the rest with Tapestry.
Reserve
Books:
Beginning
Visual C++, I. Horton – on print and electronic reserve
Practical C++ programming / Steve Oualline.
C++ how to program / H.M. Deitel, P.J. Deitel.
Syllabus:
Please follow the syllabus
for the required reading material. Not all details can be covered in class, so
it is important that you read the required material.
Homeworks: Homeworks
will be given by Thursday morning and be due next Friday (so as to allow
for time for you to have 2 lab times during the homework period: one for
understanding the homework and review, one for help with the last issues. There
will also be help hours on Tuesdays.)
Website:
The official website of the course is here (http://people.sabanciuniv.edu/berrin/cs204
). We will use WEBCT only to
submit/collect homeworks, discussions and announcements.
Questions that may interest other students (most of them) should be asked
on Webct so that the answer benefits all.
Course
Schedule: Mon 14:40 am - 15:30
am ; Wed 15:40 am - 17:30 am at FMAN 1099
Course attendance is strongly encouraged
and will be taken into account in calculating the final grades (attendance/quizzes
may be taken at random times)
Lab
Schedule Thu 17:40 pm - 19:30 pm
Please note the location change for lab sessions (due to a reservation
mistake):
CS 204Lab. A1 -
FENS L058
CS 204Lab. A2 - FENS L065
CS 204Lab. A3 - FENS G032
CS 204Lab. A4 -
FASS G056
There will
be four recitation/lab hours. Lab
hour will be tailored depending on the attending students , but the default
format is to go over the lecture topics using code samples and some
explanations, and debugging help (when homeworks are due).
Labs are
for you to come and ask questions about last week’s topics, or get help
on the parts of your homework that you may need help with. So, you are strongly
encouraged to go and your lecture and lab attendance will be taken into account
in calculating the final grades (if you are in borderlines between grades or
slightly below the passing grade).
Students
can go to any lab section they want until further notice (if there is problems
with space etc.), but you are encouraged to go to your own section to start
with, to evenly distribute students.
If you are
unhappy about what is being done in your lab/recitation hour, please ask the TA
for modification. They are there to help you afterall. Also, you can email me
for changes.
Help Hour Schedule:
In addition to the labs, we
will have help hours most days of the week. You can find the Tas who have graded your homeworks for any objections,
or to get more help on your homeworks. etc.
All help hours will be done in L068 which is
the TA office. You may remember the help hours as most of them are 4-5pm or
1-2pm, except for Wed. after class.
Mon: 11:40-12:30 Cengiz
Tue: 9:40-10:30 Reyyan
Wed: 9:40-10:30 Mehmet and
Wed: 2:40-3:30 Onur
Thu: 9:40-10:30 Reyyan
Fri: 12:40-2:30 Batu
If you have
questions, go to a
help hour OR ask it on WEBCT.
Questions asked to Tas on email may not be
answered, may be delayed, and may be shared on Webct (to benefit others).
It is strictly discouraged to go
to see the Tas in their labs or offices without an appointment.