| |
| |
| |
Writing a C# Program | |
| |
| |
Getting Ready to Program | |
| |
| |
A First Program | |
| |
| |
Problem Solving: Recipes | |
| |
| |
Algorithms-Being Precise | |
| |
| |
Implementing Our Algorithm in C# | |
| |
| |
Writing and Running a C# Program | |
| |
| |
Interrupting a Program | |
| |
| |
Typing an End-of-File Signal | |
| |
| |
Software Engineering: Style | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Native Types | |
| |
| |
Program Elements | |
| |
| |
Comments | |
| |
| |
Keywords | |
| |
| |
Identifiers | |
| |
| |
Literals | |
| |
| |
Operators and Punctuators | |
| |
| |
Console Input/Output | |
| |
| |
Program Structure | |
| |
| |
Redirection | |
| |
| |
Simple Types | |
| |
| |
Declaration and Initialization | |
| |
| |
The Implicit Conversions | |
| |
| |
The Explicit Conversions | |
| |
| |
Enumeration Types | |
| |
| |
Expressions | |
| |
| |
Precedence and Associativity of Operators | |
| |
| |
The Dot Operator name.name | |
| |
| |
Relational, Equality, and Logical Operators | |
| |
| |
Software Engineering: Debugging | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Statements | |
| |
| |
Assignment and Expressions | |
| |
| |
The Statement Block | |
| |
| |
The if and if-else Statements | |
| |
| |
The while Statement | |
| |
| |
The for Statement | |
| |
| |
The do Statement | |
| |
| |
The reak and continue Statements | |
| |
| |
The switch Statement | |
| |
| |
The goto Statement | |
| |
| |
Software Engineering: Debugging | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Methods: Functional Abstraction | |
| |
| |
Method Invocation | |
| |
| |
Static Method Definitions | |
| |
| |
The return statement | |
| |
| |
Scope of Variables | |
| |
| |
Top-Down Design | |
| |
| |
Problem Solving: Random Numbers | |
| |
| |
A Simulation: Probability Calculations | |
| |
| |
Invocation and Call-By-Value | |
| |
| |
Call-By-Reference | |
| |
| |
The out Parameter | |
| |
| |
Recursion | |
| |
| |
Problem Solving: Mathematical Methods | |
| |
| |
Method Overloading | |
| |
| |
Programming Style | |
| |
| |
Software Engineering: Program Correctness | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with C++ and Java | |
| |
| |
| |
Arrays | |
| |
| |
One-Dimensional Arrays | |
| |
| |
Indexing an Array Element | |
| |
| |
Array Initialization | |
| |
| |
Array Member Length | |
| |
| |
An Example: Summing an Array | |
| |
| |
Passing Arrays to Methods | |
| |
| |
The System.Array.Copy() Method | |
| |
| |
Finding the Minimum and Maximum of an Array | |
| |
| |
The foreach statement | |
| |
| |
Array Methods and Properties | |
| |
| |
A Simple Sorting Method | |
| |
| |
Searching an Ordered Array | |
| |
| |
Recoding BinarySearch recursively | |
| |
| |
Big-Oh: Choosing the Best Algorithm | |
| |
| |
Type and Array | |
| |
| |
Booleans: The Sieve of Eratosthenes | |
| |
| |
char:Counting characters with a buffer | |
| |
| |
double:Overloading Accumulate() | |
| |
| |
Two-Dimensional Arrays | |
| |
| |
Two-dimensional Initializer Lists | |
| |
| |
Jagged Two-dimensional arrays | |
| |
| |
An Elementary Simulation: The Game of Life | |
| |
| |
The Game of Life: Design | |
| |
| |
The Game of Life: Implementation | |
| |
| |
Software Engineering | |
| |
| |
Array loop idioms | |
| |
| |
Counting from Zero | |
| |
| |
Debugging and Testing Code | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Classes and Abstract Data Types | |
| |
| |
Type class , Operator dot, and new() | |
| |
| |
Member Access Operator | |
| |
| |
INSTANCE Methods | |
| |
| |
Access: Private and Public | |
| |
| |
An Example: Customer | |
| |
| |
Class Scope | |
| |
| |
The dot Operator, namespaces and class names | |
| |
| |
Nested Classes | |
| |
| |
The standard class string | |
| |
| |
An Example: Flushing | |
| |
| |
The this Reference | |
| |
| |
static Members | |
| |
| |
const Members | |
| |
| |
A Container Class Example: CharStack | |
| |
| |
Properties AND DATA Hiding | |
| |
| |
Software Engineering: Class Design | |
| |
| |
Trade-Offs in Design | |
| |
| |
Unified Modeling Language (UML) and Design | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Constructors, Conversions, and Operator Overloading | |
| |
| |
Classes with Constructors | |
| |
| |
The Default Constructor | |
| |
| |
Improving the Point Class | |
| |
| |
Constructing a Stack | |
| |
| |
The Copy Constructor | |
| |
| |
Classes with Destructors | |
| |
| |
Members That Are Class Types | |
| |
| |
Polymorphism Using Method Overloading | |
| |
| |
ADT Conversions | |
| |
| |
Overloading and Signature Matching | |
| |
| |
Overloading Operators | |
| |
| |
Unary Operator Overloading | |
| |
| |
Binary Operator Overloading | |
| |
| |
Static Constructors | |
| |
| |
Software Engineering: When to Use Overloading | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Inheritance | |
| |
| |
A Derived Class | |
| |
| |
More Unified Modeling Language (UML) | |
| |
| |
A Student ISA Person | |
| |
| |
virtual methods: Dynamic Determination | |
| |
| |
Overloading and Overriding Confusion | |
| |
| |
A Canonical Example: Class shape | |
| |
| |
Abstract Base Classes | |
| |
| |
Everyone's ancestor class Object | |
| |
| |
Methods and boxing/unboxing | |
| |
| |
Generic methods | |
| |
| |
An Example: Predator-Prey simulation | |
| |
| |
Interfaces | |
| |
| |
Interface and Multiple Inheritance | |
| |
| |
Odds and Ends | |
| |
| |
Sealed Classes | |
| |
| |
is and AS | |
| |
| |
internal access | |
| |
| |
Labeling derived methods new | |
| |
| |
Software Engineering: Inheritance and Design | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Input/Output | |
| |
| |
Console Output | |
| |
| |
Formatted Output | |
| |
| |
User-Defined Types: Output and Format() | |
| |
| |
ToString overriding | |
| |
| |
Creating a user defined format | |
| |
| |
Console Input | |
| |
| |
StandARd Methods for characters | |
| |
| |
Console Input for an Array | |
| |
| |
Files | |
| |
| |
Text Files | |
| |
| |
Example: A word count program | |
| |
| |
Network IO | |
| |
| |
Software Engineering: I/O | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Exceptions and Program Correctness | |
| |
| |
Using the Assert()method | |
| |
| |
C# Exceptions | |
| |
| |
Throwing Exceptions | |
| |
| |
Rethrown Exceptions | |
| |
| |
Exception Expressions | |
| |
| |
Exception Object Standard Methods | |
| |
| |
try Blocks | |
| |
| |
Handlers | |
| |
| |
Finally Code | |
| |
| |
Converting Assertions to Exceptions | |
| |
| |
Standard Exceptions | |
| |
| |
Software Engineering: Exception Objects | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
Container Classes | |
| |
| |
Self-Referential Structures | |
| |
| |
A Linked List Implementation of a Stack | |
| |
| |
A Doubly Linked List | |
| |
| |
More Operations on Lists | |
| |
| |
Implementing ToString()for Class IntDList | |
| |
| |
A Generic Stack | |
| |
| |
Iterators | |
| |
| |
Using Iterators to Implement the method Append() | |
| |
| |
Deleting objects | |
| |
| |
Software Engineering: Code Reuse | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C# Compared with Java and C++ | |
| |
| |
| |
OOP Using C# | |
| |
| |
OOP Language Requirements | |
| |
| |
ADTs: Encapsulation and Data Hiding | |
| |
| |
Reuse and Inheritance | |
| |
| |
Polymorphism | |
| |
| |
OOP: The Dominant Programming Methodology | |
| |
| |
Designing with OOP in Mind | |
| |
| |
Class-Responsibility-Collaborator | |
| |
| |
CRC Cards | |
| |
| |
Design Patterns | |
| |
| |
A Further Assessment of C++ | |
| |
| |
Why C++ Is Better Than Java | |
| |
| |
A Short Rebuttal | |
| |
| |
Software Engineering: Last Thoughts | |
| |
| |
Dr. P's Prescriptions | |
| |
| |
C++ Compared with Java | |
| |
| |
| |
ASCII Character C des | |
| |
| |
| |
Operator Precedence and Associativity | |
| |
| |
| |
String Library | |
| |
| |
| |
Constructors | |
| |
| |
| |
Methods | |
| |
| |
| |
Global Operators | |
| |
| |
| |
Visual Studio for C# | |
| |
| |
| |
Advanced Topics | |
| |
| |
| |
Preprocessor Directives | |
| |
| |
| |
Debugging with assertions using diagnostics library | |
| |
| |
| |
Delegates | |
| |
| |
| |
Params Signature | |