ADVANCED C/C++(LECTURE IN ENGLISH)

  1. Course Description
    This course builds on the foundation created in the first two high-level programming courses (CS 120/170). It presents advanced topics of the C/C++ programming language in greater detail. Such topics include advanced pointer manipulation, utilizing multi-dimensional arrays, complex declarations, and standard library functions. Advanced C++ topics include class and function templates, operator overloading, multiple inheritance, runtime type information, the standard template library, and performance issues.
  2. Course Objectives
    Upon successful completing this course, students should have a deep understanding of C++ programming language design be able to create and compile a project from the command line using be able to use various GNU tools to speed up debugging and error analysis know C/C++ bit manipulation techniques and be able to apply then to minimize memory usage and/or program runtime know C/C++ expression evaluation algorithm and be able to write his/her own complex declarations understand C/C++ conversion rules be able to use aggregation and inheritance to create new classes have a good understanding of function and class templates be able to use STL containers and generic algorithm to solve complex problems
  3. Teachnig Method
    Academic Honesty All homework assignments and exams must represent your own, individual work. It is permissible to discuss assignments (not solutions) with other students in the class, but the solutions must be recognizably your own. Cheating of any kind (copying someone else's work, allowing others to copy your work, collaborating, etc.) will not be tolerated and will be dealt with SEVERELY (at the discretion of the instructor, which usually includes removal from the class with a grade of F.) Please keep in mind that discussing solutions to exams, quizzes, homework, etc. with students that haven't taken the exam or turned in the assignment is also prohibited. Ultimately, you are only wasting your time (and money) because if you can't master the fundamentals covered in this course, you have little hope of succeeding in other courses or as a programmer in the Real World. From The "It-shouldn't-need-to-be-said-but..." Department During class, all electronic devices must be turned OFF. This includes cell phones, pagers, PDAs, game consoles, digital cameras, laptop computers or any other devices. If you absolutely must have a cell phone on for an emergency situation, you must first clear it with me BEFORE class begins. In addition to showing up for class on time, other student responsibilities include proper behavior during class, learning the material, completing assignments correctly, submitting assignments properly and on time, studying for the exams, and participating in class by asking or answering questions during the lectures. Finally, all students are required to bring a pencil (or other writing instruments) and paper to class, to take notes, quizzes and perform other tasks.
  4. Textbook
  5. Assessment
    All homework & Lab assignments will be graded on a pass/fail basis. If a student fails an assignment then it will be marked as incomplete, and the student will be provided with meaningful feedback needed to fix it. The assignment must be resubmitted until it is considered complete. Any incomplete homework or labs at finals week will cause an automatic failure for the course. Attendance is mandatory There are no makeup exams or quizzes. You get 2 free absences. For every lecture/lab that is missed after 2, you will lose one point from your final grade (e.g. a 90 becomes an 89). The only exceptions are if you notify me prior to your absence with a valid reason. (Sleeping, studying for another class, working on your game, etc., are not valid reasons for an absence.) Class participation will boost your grade if you are on the border. (e. g. It is possible to get an A with an overall average of 88.5%)
  6. Requiments
    CS170
  7. Practical application of the course
  8. Reference