CSCI 473/680

Organization of the Course

This is the main web page for CSCI 473/680 in Spring, 2018.

There are two sections of the course:

We have a web site (of which this is the main page) and a Blackboard site, which you can reach through this URL:

     https://webcourses.niu.edu/webapps/portal/frameset.jsp

Information about the course can be found on the web pages and also on Blackboard.


Contact Information

The instructor is Harry Hutchins.

     Office:        PM 465
     E-Mail:        t90hch1@cs.niu.edu
     Office Hours:  1:00--4:00 on Tuesday and Friday
                    (I am sometimes in my office at other times as well.)

We have two teaching assistants:

     Name:          Robert Durham
     Office:        FR 226
     E-Mail:        z1676896@students.niu.edu
     Office Hours:  10:00--11:00 Monday and Wednesday
                    12:00--2:00 Tuesday and Thursday

     Name:          Dinesh Sandadi
     Office:        FR 226
     E-Mail:        z1797942@students.niu.edu
     Office Hours:  2:00--5:00 Monday and Wednesday


We have a syllabus for the course.

The Department of Computer Science has recently adopted a set of rules for the administration of exams. (This is a PDF file.) You should read this document and pay attention to it. Misbehavior during an exam in the future is likely to result in serious consequences.


Announcements

We will not have class on Monday, January 15, as that day is Martin Luther King, Jr.'s birthday, a holiday.

Graduate students in the class are actually registered for CSCI 680. Each of them needs to meet an additional requirement to give a presentation in class on some topic related to the course.

We will have Quiz 1 on Friday, February 2. This involves topics we have encountered thus far: sorting, namespaces, booleans, properties, etc.

We will have Quiz 2 on Friday, February 16. This involves more topics we have run into recently: arrays, lists, strings, how parameters are passed, the idea of an interface, etc.

We will have Test 1 on Friday, February 23. We have a review sheet for the test.

Graduate students in the course are actually enrolled in a section of CSCI 680. Each of them will need to give a presentation in class on some topic relevant to the course sometime in the last few weeks of the semester. I will be sending out e-mail about this.

We will have Quiz 3 on Friday, March 9. It is mostly about indexers, properties, delegates and exceptions.

We will have Quiz 4 on Monday, March 26. It is mostly about delegates, exceptions and charts.

We will have Test 2 on Friday, April 6. We have a review sheet for the test. The first part of the test is a take-home part, passed out on Wednesay and due on Friday. If you were not in class on Wednesday, you can download a copy. Choose one of these two: this one or this one (not both).

We will have Quiz 5 on Monday, April 16. It is about recent topics including mouse events, charts, graphics, etc.

We will have Quiz 6 on Monday, April 30. It is about the Timer class, the keyboard, a mention of threads, and Assignment 5.

We will have our last exam on Wednesday, May 9. The earlier class will have its exam from 8:00 to 9:50, and the later class will have its exam from 10:00 to 11:50. We have a review sheet for the test.


Notes on various topics

Program Structure

Control Structures

Types

Arrays

Strings

Classes

Methods

Properties

Console I/O

File I/O

Indexers

Interfaces

More on Interfaces

Delegates

Predicates

Events

Exceptions

Example of Possible Exceptions

More Exceptions

Collections

Assorted Vocabulary

Forms

Form Controls

More Classes and Form Controls

Notes on RDBs

Example 1 of RDB Tables

Example 2 of RDB Tables

A note on SQL

Classes for Database Work

Introduction to Charts

Classes for Charts

Drawing in a Form

Regions

Mouse Events

Images

Timer and StopWatch Classes

Dialogs

Modal Dialogs

ToolTips

Threads

LINQ

ArrayList Class

LinkLabel control

Keyboard events

We sometimes may need to format numbers neatly. Here is a page about this.


Demo Programs

These are all just text files. I have renamed them, as otherwise they would all be called just "program.cs".

Array Demo 1

Dictionary Demo 1

Event Demo 1

Fractions

Hello World

Indexer Demo 1

Indexer Demo 2

Indexer Demo 3

Interface Demo 1

Interface Demo 2

Interface Demo 3

List Demo 1

Parameter Demo 1

Property Demo 1

String Demo 1

Switch Demo 1

Here are some database examples. They are not all written to use the same server we are using in Assignment 3.

Database Practice Demo 1

Database Practice Demo 2

Database Practice Demo 3

SQL Interactive Demo


Assignments

Assignment 1 This is due on Friday, Feb. 2.

Assignment 2 This is due on Friday, Feb. 16.

Assignment 3 This is due on March 8. We have input files: Room.txt, Office.txt and Class.txt, all text files.

Assignment 4 This is due on Wednesday, March 28. We have input files: A4Numbers1.txt, A4Numbers2.txt and A4Numbers3.txt, all text files.

Assignment 5 This is due on Wednesday, April 18.

Assignment 6 This is due on Tuesday, May 1.

Extra-Credit Homework, a MS Word file. This is due on Thursday, May 3. Correction as of April 30: in question 8, the word "virtual" should be "abstract". (Sorry about that.)