Syllabus CS204 spring2022-MTDatesAdded
Syllabus CS204 spring2022-MTDatesAdded
3 credits
Prerequisite CS201
Description and objectives
This course aims to provide programming experience and to give advanced programming techniques. In
this way, students would be more prepared to data structures and several other junior and senior level CS courses.
CS204 is a prerequisite course for several CS courses including data structures. Thus, it is a must course for CS
students and students who will take advanced CS courses.
The programming language that will be used in this course is C++; we will use Visual C++ 2012 as the
development environment. However, you can use any other Visual C++ version provided by the university. We do
not guarantee correctness for the free versions that you obtain somewhere else. We do not support VS Code, Xcode
or any other development environment. Especially, we do not support MacOS.
CS204 heavily depends on CS201. Thus a good CS201 background is needed. We will NOT make a
review of CS201 topics.
Topics planned to be covered
Introduction (overview of basic concepts, Visual C++ environment, preprocessor directives, compiler, compiler
options, linker, libraries, debugging)
Pointers and dynamic memory allocation
Linked lists
Stacks and queues
Templates, templated classes and functions
Advanced issues on classes and object oriented programming
Data representation, bitwise operations
Inheritance, polymorphism and advanced object oriented design
Exception handling
Programming with threads
Visual programming and graphical user interfaces (if time permits)
Instructor
Albert Levi, FENS 1091, ext. 9563, [email protected]
Office Hours: whenever I am in my office (generally I am in my office, even during pandemic). Whenever you
have a question you can drop by or write me an email or DM via WhatsApp (see the list above); we can always
meet online.
Assistants: Detailed assistant information (office hours, etc.) will be available at SUCourse+. All office hours are
being held online. See the details at SUCourse+.
Textbook(s)
Main texts are "Ivor Horton's Beginning Visual C++ 2012", by Ivor Horton, ISBN: 978-1-118-36808-4.
"A Computer Science Tapestry" (CS201 book)
Reference books are "Starting out with C++ Early Objects", 7th edition, by T. Gaddis, J. Walters, G. Muganda
"Objects, Abstraction, Data Structures and Design using C++" by Koffman and Wolfgang.
We may not stick to the textbooks; you are responsible material covered in class too. Thus it is very
important to attend to lectures.
Schedule
Lectures: Monday 9:40-11:30 (FENS G077), Wednesday 12:40-13:30 (PAC HALL FENS G077). If you will join
online, you have to login to zoom with account that use your sabanci email address.
Lecture Zoom link: https://sabanciuniv.zoom.us/j/91441627917?pwd=UUdIQnRhcmtPSjVaT2V3b2NVYXM1UT09
Labs: Sections A1, A2, A3: Thursday 12:40 – 14:30, B1, B2: Thursday 14:40 – 16:30, C1, C2, C3: Friday 10:40 –
12:30, D1, D2, D3: Friday 14:40 – 16:30. B3 will close after add drop; those who are registered to B3 must attend
B1 or B2 starting first week. There might be more section closures, please follow my announcements.
All labs will be held online. The links and TA information will be made available at SUCourse+.
Homework (Take Home Exams)
There will be 7 or 8 programming homework assignments that might also be considered as take home exams. Late
penalty is 10% of full grade (only one late day is allowed). You must submit your own work! No group works!
Collaboration will not be considered as an excuse for plagiarism!
Formal development environment of CS204 is MS Visual Studio 2012 (running on a Windows computer) and the
homework assignments will be graded primarily using it. If you use another MS Visual Studio version provided by
Sabancı University software repository, you may do so provided that you specify which version you use at the
beginning of the homework. Use any other development options at your own risk (gcc, Xcode, VS Code, VS over
Mac, anything over Mac, etc.). In the past, different behaviors have been experienced in different development
environments. That is why, I have to standardize it. For technical help for installation, please refer to the guides at
SUCourse+.
Grading
Midterm 1 (22%) – around week 7. It is April 18, 2022, Monday, 9:40 -11:30, Lecture Hours.
Midterm 2 (22 %) – around week 11-12. It is May 29, 2022, Sunday, 16:40 - 18:30.
Final (32%) – will be scheduled by student resources
Homework assignments (20%) – The homework assignments are not of equal weight and individual weights will
be determined at the end of the semester. Homework grading will mostly be based on correctness of the
execution; not based on how big is the mistake or how hard you work for it. Thus please test your code very
carefully. No debugging will be done during grading. No code/file changes are allowed after the submission.
If you submit wrong file, we cannot grade your work. If you have mistyped even a single character that
causes a compilation error, we cannot do anything. Even if you find out your mistake later, we do not allow
code changes.
Physical Attendance Encouragement Grade (4%): This is 100 for everyone at the beginning of the semester and
provided that overall physical attendance will not drop below a certain threshold, I will give 100 to everyone
at the end of semester. However, if physical attendance drops consistently below 105 people (calculated as
70% min. YÖK attendance rule * 60% YÖK's min physical lectures rule over 250 enrollments), the deal of
100 for everyone will be cancelled and I will switch to another method for this 4%, of which the details are
currently unknown. Definitely, this method will be to encourage physical attendance.
In line with the order of the university administration and higher education council (YÖK), all exams will be
performed face-to-face.
The lectures will be streamed via zoom and the recordings will be made available later. I am not planning to
remove the recordings until the end of the semester. However, I will not consider zoom attendance as real
attendance. Attendance will be taken among the physical attendees. The effect of attendance to grading has been
explained above (Physical Attendance Encouragement Grade).
Since the PAC HALL's reduced capacity is sufficient to cover the entire class, we will not apply rotation for
Wednesday lectures. On Mondays, we are in FENS auditorium of which the reduced capacity is 25% less than the
enrollment; we will decide if a rotation will be needed after seeing the physical attendance rate in the first two
weeks. For physical attendance, please wear your masks all the time in class and respect the physical distance. The
seats that you are not allowed to seat are clearly marked with a cross.
The labs are fully online and they will not be recorded and shared.
Use of SUCourse+ and Communications
We will make announcements via SUCourse+ that you will also receive as emails. Some announcements may be
sent as plain email or the quick ones via WhatsApp group.
We have a WhatsApp group for the class that I also participate (of course you might have another one without me).
The invite link for it is https://chat.whatsapp.com/HMoVgETSrnK54gbzImQvWX
All lecture materials, homework and assignments will be posted at SUCourse+. The submissions will also be there
unless otherwise stated.
Lecture materials will be posted as PowerPoint file without annotations made in class. Sample codes discussed in
class will also be shared.
Summary Policy on Plagiarism and Homework Trading (see the full version at SUCourse+)
A plagiarized homework may or may not be a verbatim copy of another homework. Verbatim copies are of course
plagiarized ones. However, if a homework is derived from another one by partially changing some parts, this action
is also plagiarism. Cooperation and working together is not an excuse. A common fallacy is that the graders cannot
catch a program that is developed by partially changing another program. Believe it or not, such programs are
caught very easily. There are software products available to catch such cases, and we use them. When a plagiarism
case is detected, sanctions are applied to all parties regardless of the actual source of the homework. These
sanctions are as follows.
For the first time, all plagiarized homework owners receive –100 (minus hundred).
Second time, the student fails the course automatically.
Plagiarism, Homework Trading, Illegal Local and Remote Help and Cheating
will not be tolerated. See the related policy at SUCourse+