CSci 161 Home Page

CSci 161 is a continuation of CSci 160. It continues to develop mastery of C++ especially in regard to objects and data structures. Just about every other topic is some aspect of classes. This page is always under construction, since documents and examples are posted weekly.

If you are having problems accessing VCSU-MEP, Code Applets or Code Machines or any other Java security issues see this.

Getting the IDE


Get the Community version of Rad Studio, if you do not already have it.

Tests:


The final examination is scheduled for Monday, December 14 at 1:00. The final counts as two tests, one the unit test we never took and the second the comprehensive final.

The assignments


The template function project is similar to the demo project. This will be due on Wednesday, December 9. For one time only the no plagiarism rule is suspended on this one so that I can test by cheat software. Therefore, use as much of the function demo as you can, but attempt to do the disguising that a cheating student would do.
Here is the zip file for the inheritance assignment.. This is a full project, where you have create a derived class. There is a document in the zip file. This will be due on Monday, November 23.
Here is the zip file for the dynamic array class.. This is a full project, where you have add code to the class. There is a document in the zip file. This will be due on Friday, October 30.
Add operator overloads to an existing class.. This will be due on Wednesday, October 21. The
original class is here..
Create a program that will count word lengths and the number of times the word 'the' is seen. This will be due on Monday, September 28.
Create an inventory program using a class containing arrays. This will be due on Monday, September 21.
The first class definition project. This will be due on Monday, September 14. ,

Examples and Presentations


Yet to do.
Recursion - Oh the Glories!
A document showing the Tower of Hanoi code.
Completed.
The final generic linked list demo.
The starting point for the generic linked list demo.
Generic classes.
A zip file containing the template function demo.
A zip file containing the completed template function demo.
Generic functions.
A zip file containing the first template function demo.
Generics.
Below this are presentations on the third test.
A zip file containing the multi-inheritance demo.
Bit operators.
A zip file containing the set calculator demo. This demonstrates bitstring manipulation.
A zip file containing the in-class inheritance exercise.
Multiple inheritance in C++.
Inheritance in C++. Updated 11/13.
A zip file containing the inheritance demonstration program.
Inheritance in general.
Below this are presentations on the second test.
The final linked list demo. One error fixed: line 128 of linkedlist.cpp.
The linked list demo with at the end of class on Wednesday. Two errors: missing return in more and returning pointer through a value parameter.
The linked list demo with at the end of class on Monday.
Dynamic data structures.
The beginning of the linked list demo with sizing and titling changed.
The statistics demo with a vector class.
All the dirt on pointers. This prepares us for greatness.
Try Catch. Error handling.
A Rad Studio version of the try catch demo.
User Defined Conversions.
The updated version of class demo. Contains operator overloads.
Overloading operators.
Classes revisited. The second shot at classes.

Everything below this will be candidates for the first test.
The zip file containing the C-Style string Demo.
C style strings - the privileged array.
Different length C style strings.
Multidimensional arrays.
The zip file containing the Matrix Demo.
A zip file containing the finished statistics/array demo.
A zip file containing the starting point of the statistics/array demo. This includes the GUI and reading items from it, but not the class to contain the array.
Arrays.
Arrays again.
A light introduction to pointers, which is needed for arrays.
The final version of class demo?
The preprocessor.
A zip file containing the first day of the initial class demo.
Defining classes in C++. Rad Studio version. This will be followed by an extended demo.
The course content introduction on structured data.
The concept of technical debt.

Important documents overviewing the course:

The syllabus for CSci 161

Other links


Top jobs and the salaries at MicroSort.
C++ is highest paid language. Does this mean it is hard?
11 rules all programmers should live by. Curt is only in disagreement with the comment rule which is number 4. This neglects the notion of high level comments which code might not capture.
A handy tool is WinMerge. This allows an easy way to see the differences in two source files.

Ten bad coding habits we secretly love.

Bjarne Stroustrup on why learn C++.

C++ 20. Also has a nice overview of previous standards.

Bjarne Stroustrup's FAQ on C++ Standards.

Some commentary on the new things in the latest C++ standard.

A tour thorugh C++ by Bjarne Stroustrup.

Obscure features of C++.

Dangling Pointers.

Stroustrup on C++11.

The differences between C++ and Objective C.

Absolute C++ by Savitch is the optional textbook.

Bjarne Stroustrup's Homepage

This is Bruce Eckel's Mindview page, which is good place to look at his web resources. and Thinking in C++, second ed.

A site of similarly enlightened people CPlusPlus.com.

Return links

Return to Curt Hill's home page.

Last time I updated this page: December 7, 2020.