Web Resources:
CppReference.com,
CPlusPlus.com,
C++ TechLinks
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
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
Content:
Course Goal:
To learn how to make our programs elegant and simple, make their intents clear, and make them quick and reliable.
-
Readings for Lecture #1
Text: order now if you haven't already.
Get familiar with this website.
C vs. C++
C++ Survival Guide, doc -
Syllabus
Describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects. -
Today's Discussion:
Content of the course:
- Syllabus - Design concepts and Principles, C++ implementation, Sockets, Threads, Distributed Systems
-
Four Projects:
Project #1, Project1HelpS17
Build NoSQL database that stores key/value pairs and maintains parent/child relationships. Project #2
Develop source code dependency analyzer using Parser from Repository folder. Project #3
Build C++ code publisher that manages web views of source code with dependency relationship links.
The publisher builds code pages, using dependency analyzer and NoSQL database to support creation of linked pages. Project #4
Remote Code publisher using message-passing communication channel and client with GUI for content management. 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 will your grade 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)We use this grade sheet. You will be expected to demonstrate, by your project output, that you meet all of the requirements
Style (15 points)
Design(20 points)
Functionality (45)
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:
- Visual Studio 2015 from Dreamspark free for SU students or Visual Studio 2015 Community Edition, free for everyone.
- Windows 7 or 10
-
An SU computer account so you can upload homework
Visual Studio and Windows are available in the ECS computer clusters,
CST 3-201, Link 202, Link 274, etc.
Available to you from this website:
- Presentations and external resource links
-
Code Examples - 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
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.
-
Resources in drop down menus at the top of all lecture pages:
Lectures An index of links to named lecture pages Projects Getting started and other resources Notes Small discussions about design Study Guides Collections of links to presentations and code examples Directories Links to the class directories on the college server Blog Extended discussion about things of interest for OOD See Getting Started A summary of good things to look at as you start out
Help and Advice from Instructor and Teaching Assistants (TAs):
- Office Hours
-
Instructor's Help Session
I hold weekly help session in CST 4-201 every Friday morning, starting at 9:00am.
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. -
TA's Help Session
Zilong will hold a help session starting at 5:00pm in CST 4-201.
I've asked him to only answer basic questions, referring sophisticated questions to me.
The intent is to support students who are struggling with the class material.
I don't want well prepared students to dominate this Help session.
-
Looking Ahead:
Notes we will look at next lecture:
- Programming Languages
- C++ Models: Compilation, Computation, and Memory
- C vs. C++, C++ Classes, Templates, C++11
- Why C++? Why not C#?, C++, an assessment
- Software Size Matters!
- Packages Presentation, Package Structure is Important!
- class relationships, class relationships - layout view, ClassRelationships code folder
Project Resources:
Class Resources: