CS368 Home Page

CS368: Learning a New Programming Language: C++ for Java Programmers, Fall 2018

Lecture:

  • Lecture: 1132 Noland, W: 12:05 pm - 12:55 pm

Instructor:

  • Michael Doescher
      1346 Computer Sciences
      mdoescher@wisc.edu

  • Office Hours:
    • Tuesday 4-6 PM
    • and by appointment

Teaching Assistant:

  • Yue Gao
      4241 Computer Sciences
      gy@cs.wisc.edu

  • Office Hours:
    • TBD
    • and by appointment

Course Announcements:

  • The CS 368 website is under construction for the fall 2018 semester.
  • This section of CS 368 covers C++
  • There is no required textbook for this course.
  • We will be using the Canvas Learning Management System for posting homework assignments and grades.
  • See the Canvas page for the schedule of topics, links to the on-line readings, homework assignments, and code from lecture.
  • Please Notify Michael Doescher within the first two weeks of classes if:
    • You participate in religious observances that may conflict with course requirements.
    • You have a VISA from the McBurney Disabillity Resource Center.

Activate your CS account

Course Description:

CS 368 gives students an introduction to modern C++ programming. The course covers input/output, strings, using containers, iterators, and algorithms from the C++ standard library or Standard Template Library, object oriented programming, memory management, etc. The course is offered Credit/No Credit and may not be taken for a grade.

Prereqs: Successful completion of an introductory programming course or the equivalent. Students are expected to be able to draw upon information from prior (high school) math and science classes.

Learning Objectives:

  • Write C++ programs making use of the abstractions provided by the language
  • Read and understand C++ code
  • Make use of C++11/14 features for writing efficient C++ code
  • Understand the lower level details of memory management like pointers and references

Textbook:

There is no required textbook. The weekly course readings will come from resources available online and will provide information, examples, and exercises regarding implementation in C++.

Recommended Resources:

Course Grading:

Your grade is based on:

  • Attendance : make sure to sign the attendance sheet at each lecture
  • 7 Homework Assignments : homework assignments are due roughly every other week beginning in week 3

Students meeting both of the following requirements will receive 1 credit (i.e., a grade of CR) for the course:

  1. Attendance at at least 12 of the 15 lectures
  2. Cumulative score of 70% or better on the assignments

If a student misses more than 3 lectures, then for each lecture missed (beyond 3), the cumulative score on the assignments required to earn credit for the class is increased by 5 points. For example, if a student attends 10 of the 15 lectures, credit will be given if the cumulative score on the assignments is 80% or better.

Schedule:

Below is an overview of the weekly schedule of topics:

  1. Intro to CS 368 / Getting Started with C++ / Eclipse
  2. Input / Output / Strings / Formatted Output
  3. Types / Constants / Enumerations / Structures / Functions
  4. enum / struct / array / vector / string 
  5. Pointers / Arrays / Dynamic Allocation / Memory Management
  6. Reference Variables
  7. Parameter Passing Modes
  8. Classes / Multi-file compilation 
  9. Copy Constructors / Copy Assignment / Data Pointer Members
  10. Operator Overloading
  11. Inheritance / Exception Handling
  12. Explicit member / non-member function pairs
  13. File I/O
  14. Templates / Containers
  15. Iterators / Generic Algorithms / Function Objects