CS201

Introduction to Computing

FALL 2022-2023

Course Description

The objective of this course is to introduce students to the field of computing and problem solving with the help of an object-oriented programming language (C++). Hence the course will cover many C++ features in detail as needed so students will also be learning a structured programming language.

Through the lectures, quizzes, take-home exams, and interactive recitations students will learn how to design algorithms based on object-oriented programming paradigms.

Lecture Links

  • CS201A:

    • Monday 09:40-11:30 FENS G077

    • Wednesday 12:40-13:30 FENS G077

  • CS201B:

    • Monday. 15:40-17:30 FASS G062

    • Wednesday 16:40-17:30 FENS G077

Course Contents at SUCourse+

Textbook

  • A Computer Science Tapestry, 2nd Edition, Owen L. Astrachan

  • NOT available in bookstore anymore but available at the library and online.

  • We may not stick to the textbook all the time, you are responsible for all material covered in class.


Course Tools and Installation Guide

VPN Setup Guide:

Install Visual Studio 2012 on Windows

Note: You may download VS2012 ZIP file from our Google Drive, please scroll above to see the folder.

C++ Programming with Xcode on macOS

Install Windows 10 & Visual Studio 2012 on macOS

Note: You may download Windows for VirtualBox from our Google Drive, please scroll above to see the folder.

Instructors

Exam Dates

  • Midterm: To Be Announced

  • Final: To Be Announced

Tentative Grading (might change)

  • Midterm Exam (34%):

  • Final Exam (36% ): Scheduled by Student Resources

  • Take-home Exams (25% total): 5 or more will be assigned and they are not of equal weight

  • Participation (5% total): Recitation participation will be monitored throughout the semester

Important Notice about grading: Weighted average is not the only criterion in letter grading!

  • If your exams' weighted average is below 30, you will fail the course even if your total grade is equal or above the overall passing grade. (Having exams’ weighted average greater than or equal to 30 does not mean that you will pass the course.)

  • If you do not attend all recitations, all of the homework assignments, midterm and final exams as well; then you will get an NA grade.

  • If you miss the midterm or the final exam and if you do not take the make-up exam for that missing exam; then you will directly get an F grade.

GradeChecker Tool

We apply an automated grading process on the homework assignments. You can use GradeChecker (http://learnt.sabanciuniv.edu/GradeChecker/) to check your expected grade, before submitting your homework assignment. Just a reminder, you will see a character ¶ which refers to a newline in your expected output.

Starting this semester we plan also to use CodeRunner, a similar tool that is embedded in SUCourse+. Guidelines will be shared during the semester.

GradeChecker can be pretty busy and unresponsive during the last day of the submission. Thus, leaving the submission to the last minute is not a good idea.

GradeChecker and Sample Runs together give a good estimate of how correct your implementation is. However, we may test your programs with different test cases and your final grade may be different from what you saw on GradeChecker.

Submit your homework assignment via SUCourse+ ONLY! GradeChecker is not considered as a submission. Any other methods (paper, email, etc.) are not acceptable, either.

The internal clock of SUCourse might be a couple of minutes skewed, so make sure you do not leave the submission to the last minute. Do not forget that "No successful submission on SUCourse on time = a grade of 0 directly for that homework assignment."

Make-up Policy

No make-up is allowed for the quizzes and/or homework assignments. Students automatically get 0 (zero) from the respective quiz/homework grade if any of them is missed.

Make-up is only allowed for the midterm and final examination to those with an official report from the University Health Center and to those with an official permission notice from the university for participating in a university event on the date of the exam in question. Students must submit their reports/notices to one of the instructors before the exam in question. The ones having other excuses should contact the instructors within the day of the exam to be missed and then the instructors will decide whether these students are allowed to take the make-up exam. Any excuses to be brought to the attention of the instructors after the exam will not be considered. No exceptions to these rules!

Dates and details of the make-up examinations will be announced later.

Make-up examinations will be written and oral.

Exam/Submission Review Policy

Students are allowed to object to their midterm and final examination, as well as their homework assignments and quizzes. You can only object to your grades within 7 days after the respective grade is announced. Grade bargaining will absolutely not be tolerated.

Plagiarism Policy (Academic Integrity)

Policies and FAQ

Additional Notes

Students are responsible for every announcement made in lecture/SUCourse or sent via email. Students are expected to check their Sabanci University mail inboxes regularly as important announcements will be sent to them via email. Not attending the class/online lecture, not following SUCourse, not checking emails regularly is not an excuse, in case they miss something.

Course Components

Lectures: Lectures are the main building blocks of this course. The content delivered in the lectures will be tested in quizzes, homework assignments, midterm and final examinations. Attendance is not mandatory; however, students are recommended and encouraged to attend the lectures for their own good. OFFLINE LECTURE MATERIALS WILL BE SHARED WITH THE STUDENTS THROUGH SUCOURSE BEFORE THE REGULAR LECTURE HOURS.

Recitation Sessions: Recitation sessions are student-centered learning hours conducted by TAs of this course. Attendance is mandatory and makes up 5% of the overall grad. There will be a total of twelve regular and two exam preparation recitation sessions. Every recitation session will consist of two hours. Each one of the exam preparation recitation sessions will be held before the related exam. In those recitation sections, TAs will solve sample questions to help students get ready for the exams. Students are expected to bring their laptops to all the recitations. Recitations are quite important to practice the topics. Attendance to recitations is mandatory.

Midterm and Final Exams: There will be only one midterm and one final examination in this course. Students will be graded based on their comprehension of the content and their ability to transfer their knowledge gathered from the lectures, recitations, and homework assignments into practice. The exam dates will be announced later. If any plagiarized work is submitted for the midterm or final exam, you will fail the course automatically.

Homework Assignments: There will be at least 5 homework assignments during the semester, all of which will be graded. All of the homework assignments are designed to bring the students the ability to apply their knowledge into practice. Our experiences show that doing homework assignments with a good understanding is the best way to prepare for the midterm and final exams.

Tentative Course Outline

  • Week 1: Introduction to Programming Languages, Data Representation (bits and bytes), basic programming structure and concepts: identifiers, literals, symbols, variables, screen input/output (cin and cout)

  • Week 2: Basic data types (int/double/char/bool) and basic arithmetic operations with their precedence, first C++ program with Visual MS Studio

  • Week 3: Functions with/out return values, function prototypes, parameter passing (pass by value and by reference)

  • Week 4: Conditional statements (if-else), nested else-if statements, logical operators (&&, ||, !)

  • Week 5: String class, loops (while, for, do-while)

  • Week 6: Loops (while, for, do-while), char data type

  • Week 7: File I/O, console stream cin, input and output file streams, string streams

  • Week 8: Midterm (Tentative, Lectures may resume)

  • Week 9: Structs, enum, vectors/arrays and vector operations: sequential/binary search, insert/delete to a vector

  • Week 10: Sorting (selection and insertion sort) and introduction to algorithm complexity analysis, vector of structs, matrix

  • Week 11: Classes and objects: using class Robot class with a ready-to-use GUI

  • Week 12: Classes and objects: using and modifying existing classes such as Dice, RandGen, Date and Robot

  • Week 13: Recursion

  • Week 14: Pointers, linked lists