0% found this document useful (0 votes)
24 views

Syllabus CS204 spring2022-MTDatesAdded

Syllabus ca

Uploaded by

Asu Ulusoy
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Syllabus CS204 spring2022-MTDatesAdded

Syllabus ca

Uploaded by

Asu Ulusoy
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

CS 204 – Advanced Programming – Spring 2022

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.

Attendance Policy, Hybrid System and Zoom Recordings


Hybrid lectures are different than the online ones that you attended during remote education. The main difference is
that my focus during the lecture cannot be the camera; I have to address to people in class. Moreover, the camera is
not going to be the laptop camera that used to show my face, but the auditorium's camera that shows me from a
distance. There could be some voice issues as well. Thus the online participants may experience some
concentration issues during lectures.

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.

Other Rules and Remarks


- Weighted average is not the only criterion in letter grading; exam average may also be taken into consideration.
Discrepancies between homework and exam averages will also be considered in letter grading and
unexplainable discrepencies may reduce the homework contribution to overall grade.
- Students are expected to attend all classes, recitations/labs. In CS204 you will continue to learn a programming
language and it is much easier to learn a programming language when a person explains it. You have to spend
more time to compensate a missed class. So absenteeism does not buy time.
- Students are responsible for the material covered in class even if it is not part of the lecture notes published on
the website (Sometimes we explain some stuff on the board). That is why attendance is important.
- Students are responsible to check their emails (Sabanci University accounts) and SUCourse+ daily for any
announcements related to this course.
See SUCourse+ for other, but important, details

Homework Submission and Grading Policy of CS 204


- All homework submissions must be done until the specified deadline. If you submit on the exact deadline time,
then you are late. That means if the deadline is 21:00, then the latest second that you can submit is 20:59:59.
- Late homework submission is allowed, but only for one day (24 hours). Late submission penalty is 10 points.
- Homework submission must be done only to SUCourse+. Email or other type of submissions are not allowed.
- You will be able to resubmit your homework until the deadline.
- If you resubmit your homework after the deadline, but during the late submission period, your homework will
be treated as late.
- No modification is allowed after SUCourse+ closes. Thus, please make sure that you've submitted the correct
homework. If you submit wrong file or if a crucial file is missing, we cannot grade your homework and you get
zero (0). Sometimes, the students argue the local computer's system time as a proof of timely completion of a
wrongly submitted homework; we cannot accept such local proofs and we cannot accept any file other the ones
submitted to SUCourse+. No exceptions to this rule.
- We do not allow code changes after SUCourse+ closes either. We grade whatever you submit to SUCourse+.
This rule holds even if one character change increases your grade from 0 to 100.
- The only exception to no-code-change policy is to fix compatibility problems that might really happen if you
use MacOS, Xcode, etc. In such a case, you have to inform the grader how to fix this compatibility problem for
your code to work in MS Visual Studio. If the grader accepts that the change is only for compatibility reasons,
then your grade will be given after applying 10-to-20 points penalty. Please keep in mind that you are not
allowed to fix algorithmic problems or other coding mistakes in that way.
- Homework grading may be done via a demo and you may be questioned about your homework during the
demo.
- Homework grading is mostly based on correct execution. We generate some test data for grading and this
test data is never given out before the deadline. Moreover, the test data will always be different than the sample
runs given in the homework document. If your homework executes wrongfully against this test data, your grade
will be lowered accordingly no matter how big is your programming bug and no matter how hard you work for
it. Sometimes the bug is too simple, but it may cause your program to work totally wrong and you may get very
low grades. Sometimes, you mistype a character that causes some compilation errors. This are too unfortunate
but we have nothing to do. In order to avoid such cases, please test your program thoroughly before the
submission and make sure that the submitted version is the most up to date one. And please do not write us to
complain about this policy and its outcomes within the semester; you know it at the beginning of the semester
and you take this course by knowing this policy.
- We do not debug your code during grading to understand where the problem is. As mentioned in the
previous bullet, we just test your code and grading is not based on how big your bug is.
- Testing is your responsibility. We do not use grade checker or any other online tool in order to give you a
feedback about the correctness of your program before the deadline. However, depending on the suitability of
homework, we will provide some sample runs together with the project specification. However, we do not
guarantee that sample runs cover all of the edge and corner cases. Nevertheless, it is your responsibility to test
your program against all possibilities in order not to lose points due to some bugs.
- Other grading criteria include modularity of the code, coding style, commenting, efficiency, etc.

Rules to submit a medical report to take a make-up exam in CS 204


- All medical reports must be issued or approved by the health center. Please make sure that external medical
reports are given to health center at last at the end of the report coverage. If it is going to be delayed for some
reason, please let the instructor know about it.
- If possible, let the instructor know about your medical issue and your unavailability for the exam before the
exam.
- If there is a non-medical reason for missing an exam, this issue must be brought to instructor's attention before
the exam.
- Those who will take the makeup exam should apply for it by following the course announcements; We will not
follow up on the makeup exam takers via the medical reports.
- According to university rules, a person with a medical report cannot attend physical lectures and cannot attend
exams.

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+

You might also like