CS 204  - Advanced Programming

Spring 2007

SYLLABUS

LECTURES

HOMEWORKS

Lectures 2006

Tapestry book

Tapestry SourceCode

GRADING POLICY

Homework PolIcy

PLAGIARISM PolIcy

    

     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 FENS students who need more than “basic” programming skills: CS students should take this course (most preferably but not absolutely, in their 2nd year), as well as interested EL, ME, MS... students. It is probably an overkill for those who want to write simple engineering programs that do not require visual, real time or other advanced concepts/components.

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, FENS 2056)

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.