Lecture #1 - Introduction to OOD

Discuss Projects, Exams, Class Mechanics

Web Resources:

CppCon - 2014, Going Native 2013
Herb Sutter's Blog, Herb Sutter on C++11, Herb Sutter keynote - Going Native 2012
Scott Meyer's Blog, S.M. on thread suspension, S.M.: C++11 Sampler
Stroustrup's Home Page
Code Project, Boost Library
Excellent C++ Q&A, Excellent reference - CppReference.com, CPlusPlus.com, C++ TechLinks

Course Goal:

Learn how to make our programs elegant and simple, make their intents clear, and make them quick and reliable.


This lecture is an introduction to the CSE687 course. Today we discuss topics to be covered in this course, its projects, examinations, and grading. We then introduce the notion of packages and discuss common notation to be used throughout the course.
  1. Readings for Lecture #1

    Text: order now if you haven't already.
    Get familiar with this website.
    C vs. C++
    C++ Survival Guide, doc
  2. Syllabus
    Describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects.
  3. Today's Discussion:

    Content of the course:
    • Syllabus - Design concepts and Principles, C++ implementation, Sockets, Threads, Distributed Systems
    • Course Summary
    • Four Projects:
      Project #1, Project1HelpS2019
      Single-User TestHarness, enables running a set of test stored procedures on production code. Project #2
      Multi-User TestHarness core, provides facility for executing sets of stored procedures, loaded as DLLs, on a production baseline. Project #3
      Remote TestHarness prototypes: Message-passing Communication Channel and Process Pool Project #4
      Remote TestHarness, using message-passing communication and Client graphical user interface. Code Grade Sheet, doc
    • Midterm:
      Here are Instructor's Solutions for last year's midterms.
    • Typical Lecture:
      Most often contains a discussion of a design idea, concept, or principle, a relevant slide presentation, and a walk through of code. My goal is to do these things in about equal measure, although it doesn't always work out to be that balanced. Occasionally we will spend most of the class period discussing one of the required projects. Pertinent questions are always welcome.
    How your grade will be determined:
    • The projects you submit count 2/3 of your grade:
      Projects are compiled, run, tested against the Project Statement requirements, and evaluated for:
      Structure (20 points)
      Style (15 points)
      Design(20 points)
      Functionality (45)
      We use this grade sheet.
      You will be expected to demonstrate, by your project output, that you meet all of the requirements
      from the Project Statement.
    • Your midterm performance counts 1/3 of your grade:
      You can find Instructor's Solutions to each of the four midterms from last year here.
      In the morning session we hand out Midterms #1 and #2, alternately, and
      in the afternoon session we hand out Midterms #3 and #4, alternately.
      The midterm exam is closed book, but you will be allowed to bring in one sheet of notes.
    Things you need:

    Available to you from this website:

    • Code Examples page
    • Code Demos Directory - linked from lecture pages
      The easiest way to retrieve sample code is to go to the code folder,
      right-click on the project's zip file and save-target.
    • Repository\Cpp - Directory holding reusable component parts
      Contains reusable packages that you may use in your projects and elsewhere.
    • Lecture pages (this page is the first)
      Each lecture page is a container for discussion text and links to presentations, code, and external resources.
    • Presentations and external resource links
    • Resources in drop down menus at the top of all lecture pages:
      Courses An index of links to pages for all the courses I teach
      Lectures An index of links to named lecture pages
      Projects Project Statements, getting started and other resources
      CodeSnaps Webpage views of important source code
      Notes Small discussions about design
      Resources Links to reference materials
      Directories Links to the class directories on the college server
      Blog Extended discussion about things of interest for OOD
      About Information about me and this website
      See Projects > Getting Started, A summary of good things to look at as you start out. Also see About > Help for help with this site.

    Help and Advice from Instructor and Teaching Assistants (TAs):

    • Office Hours
    • Instructor's Help Session
      I hold weekly help sessions in CST 4-201 every Friday morning:
      • CSE686 - IP : 9:00 am to 10:30 am
      • CSE687 - OOD : 10:30 am to 12:00 Noon
      I won't lecture, but will answer almost any question.
      We often talk at the board with a running dialog about a variety of technical topics.
      Occasionally I will do an interactive code demo.

CST strip