CS 260-01 -- Spring 1999
SYLLABUS

Instructor: Richard Varron, Programmer I, WPUNJ                                     Phone: 1-973-720-3307
Section: CS 260-01                                                                                      Time: MW  11:00-12:45
Room:  R205                                                                                                 Mailbox: Atrium
Office Hours: MW 12:30-1:30 (College Hall 220 call first); MTWR 3:30-4:30 Y125; by appointment.
E-Mail:                                         rich@wpc.wpunj.edu
E-Mail For Non-text Material:  varronr@gw.wpunj.edu
Forums:                                       CS 260-01 FORUMS CONFERENCE
Prerequisites: CS 230 syllabus , MATH115 or equivalent
Reading and Programming Assignments (3rd and 4th editions)
Departmental syllabus for this course
Syllabus from the University of Colorado's Discrete Structure's Course which uses the same book so that you can compare      what we cover with what some other universities are doing.

These are the tentative scores on the final. The scores ranged from 35 to 95 with an average score of 64 and a standard deviation of 16. I am going to go over the tests again tonight to make sure that I did not miss any answers.

Score on Final Grade on Final % #
80-100 A 22% 5
70-79 B 17% 4
57-69 C 30% 7
46-56 D 9% 2
30-45 F 22% 5
Average Score: 64 high: 95
low: 35
   

This is the tentative grade distribution for the course along with a comparison with the historical grade distribution for the course. This assumes that all asignments are handed in and there are no changes on the second reading of the tests. Any close grades were resolved in favor of the student. The average grade was 2.9 or slightly below B. (The average grade for those who attended was 3.0 or B.) The historical average grade for this course is 2.5 or between a B- and C+.

Grade For CS260-01
Spring 1999

    Grade Distribution For CS260: 92-98
Grade

# of  grades

% of  grades

(Average grade:2.9 or just below B)

Expectation value for grade in this course: 2.5 or between a B- and C+
A 6 25% 10%
A- 2 8% 12%
B+ 1 4% 10%
B 6 25% 16%
B- 1 4% 9%
C+ 1 4% 9%
C 6 25% 9%
C- 0 0% 7%
D+ 0 0% 2%
D 0 0% 7%
F(did not attend) 1 4% 18%

new_tiny.gif (189 bytes)Areas of study for the final. The final is May 3, 11:00-1:30 in R205

A 50-regular graph with 100 vertices has 2500 edges. Each vertex is of degree 50 so there are 50 edges coming out of every vertex for 5000 edges (50*100). BUT, each out edge also forms the in edge for some other vertex. Therefore, of the 5000 edges, half a duplicates, so we get 5000/2 or 2500.

    Since we cover the two sections on regular grammars and their recognition (10.3/4), the only new item for Monday is a few short remarks on Turing machines.
     The rest of the time on Monday and Wednesday will be spent reviewing for the final. My general idea for these two days is to have people either work in small groups on problems and/or have people come to the board (especially since we have two blackboards) and work on problems. With graphs, trees and transition diagrams, it is easier to think through problems on a blackboard. While I will answer questions at some point, I want you to initially work together on the problems. What you should be able to do is to explain to me (and others) how you are developing your answers. (I also want to see how you are attacking problems so that I can give you tips on how to take a test.)
    One last point. If you look at page xv in your text, you will see that we have covered all of the core material that the author recommends for a sophmore level course along with 2 of the optional sections (ch 8/10) directed at computer science majors. You should be proud of the work that you have put into this course. Even if you do not completely understand every last concept, you have a basic foundation for most of the computer science courses that you will be taking in the future. The payoff for this course will come when you take your subsequent courses and find that you already know the basics thus allowing you to work on more advanced topics. In the computer field, every time you bybass a chance to learn something new, you fall further behind.       

  



This is the CS department prereq chart. Compare this with your homework diagram.

new_tiny.gif (189 bytes)The next 6 classes will be covering one section  each. We should be able to cover the sections in less than a period, so we will have time for review questions. Depending on the time used for questions, we may want to cover a little more than a section a day and then use the last day or so to review. I am open to either idea. At this point I want to do the two sorts and then cover formal grammar and finite state machines. The first draft of the test I did had a few questions on 6, more on 7, the most on 8 and a little less on 10. If there are areas that you want to cover, let me know by e-mail so that I can get an idea of what people are interest in.     

new_tiny.gif (189 bytes)On Wednesday we will look at  traversing a tree, pre/in/postfix notation and how to evaluate them (8.3) and the use of trees to represent context-free grammars (derivation trees in section10.1). [I want to look at context-free languages at this point as another example of the use of trees in CS; if we don't cover them completely, we will do them when we do 10.1.] These are important topics to know before you take Data Structures as much of the course deals with tree transversal. We will also discuss recursive searches, another major topic in Data Structures. This will give you some of the basic concepts that you will need for Data Structures. This material is also used in Compiler Construction and understanding how computers parse language. On Monday, April 12, we will look at using trees in sorting. We will look at the Bubble Sort and Merge Sort.  This is another major area that comes up in Data Structures. [Sections 8.5 and 8.6 on spanning trees, will have been covered when we do graphs.]   I made these adjustments on the asssignment page.

After we finish with trees, we will take a look at a few topics in Modeling Computation. The first topic is a discussion of formal language theory and related grammar. (This also includes a section on how to write notation for a language/grammar) These include phase structure, context-sensitive, context-free and regular grammars. This is important for Compiler Construction as well as in Language Design and Artificial Intelligence. We will start by looking at context-free langauges and how trees and stacks can be used to model them. Next we will look at Finite State machines in more detail with and without output. These machines model regular grammars. This topic  is also useful in Compiler Construction as well as Automata. It also is a way to model making change in a Coke machine. Next, we will look at the recognition of Languages, particularly Regular Grammars.  Lastly, we will deal with Turing Machines which can recognize all 4 types of grammars. Turing machines can do anything a computer can do. This is a fascinating area of computer sciences as it connects human language theory with computer language theory and is an active area of research. It also gives us an insight into how we think both as humans and as machines. I did much of my Master's Degree in Second Language Acquisition and there is a lot of crossover between teaching someone a second language (English) and a second language (C++). In fact, I studied Norm Chomsky's theories in both my English and Computer Classes. I also did work on teaching a second computer language to people. The problems of computer language interference are the same as you see with ESL (English as a Second Language). If you learned C as your first language, you will tend to write programs in other languages with a "C accent." The book that I use to teach ESL has more tree diagrams than our text book..    

Something to think about: Is it possible to take a walk through each of the 6 gates on campus such that you only go through each gate once? That is, is there a Hamilton path that connects all six gates. If so, is there a minimum path that can be taken? This is one of the subjects of section 7.5 and 7.6. This problem is known as the Traveling Salesman Problem and is an NP problem; that is, it can't be solved in polynomial time. (See section 2.2, p 110 for an explanation of P/NP problems. I delayed this discussion until we had some real P/NP problems to discuss.)

new_tiny.gif (189 bytes) There is a writing assignment due for chapter 7. There is a selection of questions from the "Writing Projects" section at the end of chapter 7. I want you to choose one topic and write a 2 to 3 pager paper on the topic. It is due 4/7/99. The purpose is to get you to do some additional reading on a topic covered in the chapter as well as to get you to do some independent work. There may be a test question based on the reports..

new_tiny.gif (189 bytes) I ran off a few samples of graphs that represent scheduling of tasks. These were done using SAS. These graphs were done from inputs of project order, earliest start time, project length etc. This gives you some idea how graphs can be used in modeling real world situations.

Project 2 has been posted so that you can get started on it.

Most of the tests looked pretty good. (See answers and explanations on Answer Page.). Every question on the test was answered by at least one person. I counted partial answers as almost full credit when the work was shown and did not take off for arithmetic errors. I think that I have given credit for anything that was close enough to question. If there were several ways a question might be read, I accepted any correct answer. If you have questions on the grading, check the Answer Page first. If there is something I overlooked, I will be more than happy to change the grade. The number of correct answers ranged from 8 to 21 with an average of 13.2, a median of 13  and a standard deviation of 3.3.(The percent correct range was from 40% to 100% with an average of 65% which is a rather standard distribution with a mean at C. This means that there was no real need for a curve.)

The distribution of grades for this test (subject to change) is listed below. I also included the grade distribution for this course over time so that you can get a sense of the grading pattern for this course over the last 8 years. In some years the D/F rate was over 30%. The answers with explanations are on the Answer Page.

Grades on Mid-Term

Grade Distribution For CS260: 92-98
Grade

# right

# of test in grade range

% of tests in grade range

Expectation value for grade in this course: 2.5 or between a B- and C+
A 18+ 3 14% 10%
A- 16-17 2 9% 12%
B+ 14-15 5 23% 10%
B 12-13 5 23% 16%
B- 11 4 18% 9%
C+ 10 1 9% 9%
C 8-9 3 14% 9%
C- N/A 0 0% 7%
D+ N/A 0 0% 2%
D N/A 0 0% 7%
F N/A 0 0% 10%


 

There are a number of topics that are included in the Departmental syllabus for this course in chapters 1-4 that we have not fully covered. These include Predicates and Qualifiers (1.3), Complexity of Algorithms (2.2), Methods of Proof (3.1), Induction (3.2), Recursion(3.3/5.1/5.2) and Program Correctness (3.6). I held off on these topic since they are easier to understand in the context of the practical problems of Graphs and Trees. For example, many of the proofs of Graphs Theory use inductive reasoning. When it comes to Scanning Trees, recursion is a natural way to talk about the process. When we talk about Minimal Spanning Trees, the Traveling Salesman Problem and Euler/Hamiltonian paths, we will have examples to explain the differences between problems with P and NP complexity which are hinted at in section 2.2.

In many ways, the second half of the semester gives us a chance to explore some of the uses of the the material we talked about in earlier chapters. You will see how matrices are applied in the programming of graphs and trees. You will see how recursion is used to solve real problems (rather than the trivial problems mentioned in section 3.3 which could be better solved via non-recursion). The second half of the semester also gives us a chance to discuss real problems in computer science such as sorting, searching, transversing trees and graphs and finding the best solution to these problems as well as examining their complexities. This will give you a foundation in such courses as CS342 Data Structures, CS372 Design and Analysis of Algorithms  and CS 440 Database Management It also gives us a chance to look at networks CS430 Data Communications and Computer Networks and how they are designed. Lastly, the section on Modeling Computation gives us a way to look a CS420 Compiler Construction  and language theory which is used in CS282 Programming Languages. In short, the material in the second half provides an overview of many of the courses that you will be talking in the future as well as the basic terminology that you will need to know. It also provides a way to see how these diverse subjects are linked.       

new_tiny.gif (189 bytes)FOLLOW UP DISCUSSION AND CLARIFICATIONSnew_tiny.gif (189 bytes)

Check  CS 260-01 FORUMS CONFERENCE for additional discussions / questions or to post a question or comment.

I also use  CS 260-01 FORUMS CONFERENCE for explanations of items presented in class that may need additional clarification and/or details. Forums allows HTML pages to be posted. I can update Forums quicker than the WEB pages, so an initial comment may appear in Forums followed up by something in Notes. Check both source; if it is in notes, I won't post it to forums though I may put a reminder there.

If you find any errors or items that are not clear on the WEB pages, e-mail me.

   

Required For: Linear Programming and Operations Research (CS 330)
                        Computer Architecture (CS 341)
                        Data Structures (CS 342)
                        Computer Calculus (CS 360)
                        Computer Simulation (CS 362)
BACKGROUND OF INSTRUCTOR


  1. Deadlines to Drop Course
  2. Texts
  3. Class Policies
  4. E-Mail, Forums, Listservers and Other Electronic Media
  5. Grading
  6. General Guidelines For Typing Papers
  7. Plagiarism
  8. Academic Integrity Policy


Deadlines to Drop Course

1/15/99              100% refund
2/17/99              50% refund
3/3/99                 last day to drop class

Texts 

Discrete Mathematics and Its Applications, Kenneth Rosen, 4th Edition. (3rd ed. can be used.) ($80.00)

The bibliography contains additional titles that may be of interest.


Course Objectives

The goal in this course is to explore the mathematical foundations of Computer Science in order to provide you with the tools to be able to read more advanced literature in Computer Science. Topic covered include Set Theory, Mathematical Reasoning, Analysis of Algorithm Complexity, Number Theory, Probability, Combinatorial Analysis, Functional Analysis, Graph Theory, Trees, Topology, Coding Theory, Game Theory, Language Theory and Finite State Machines.

There are three fundamental aspect to this course.

If you glance at the book, you will find that it is filled with unfamiliar material and notations. Most of these topics are not covered in detail in most lower level math courses, or are just skimmed over.  However, after reading the book step by step and working through the examples, you will be able to relate many of the concepts to material that you are already familiar with. In some ways, there are no assumptions in this course. All terms must be defined before they are used and all rules must be derived before they can be applied. On occasion, alternative notations in common use will be presented so that you will be able to read a variety of texts.  

What will be expected of you? The most important task that you can do is to read the material to be covered before class. When you read the text, you should go over all the examples; if you have questions, make sure that you make notes on specific items that are not clear. If you do not read the material ahead of time, you will be lost in class. The second task that you need to accomplish is to be actively engaged in the subject. You need to look for connections and expansions on previously covered themes. 

The teaching method includes lectures along with some in class projects. For the most part, we will be following the book; however, when other parts of the book relate to the topics under discussion, these will be pointed out. In additions, applications that are not in the book will also be pointed out. I will be including material from other sources when there is a need to apply material in the text or when there are different was of approaching a subject. On occasion, I will be presenting advanced material that will not be included on the mid-term or final. These examples will give you something to think about after the course is over and you have the time to explore these topics in more depth. These will be so indicated. Other than these topics, everything covered or assigned may be on the test. Unannounced quizzes will be given, though I generally will post them on the WEB.

If you get lost after spending a reasonable about of time working on a topic, let me know. There is frequently an alternative way to look at a problem that may make it easier to see a solution.

Since we will not be able to get to all the material in class, I will be putting material on the WEB that will expand on the material covered in class or clarify point that were left unresolved in class. A more general discussion Forum will be provided as outlined below. In addition, I will be linking you to WEB sites that may give you some additional material or a different insight.

In terms of compute programming, a variety of languages will be used. These include Microsoft Access SQL , C, JavaScript and Java  as well as other languages for specific projects. There may also be some written research projects. The projects will be geared to practical applications of the ideas that you learn.


ATTENDANCE:

Since each section builds on the previous section, regular attendance is required. Attendance is taken daily. 6 absences will result in a grade of "F" at the discretion of the instructor. Your computer disks, textbook, homework and notes are an integral part of your attendance and class participation. Not being prepared for class will result in a lost of your class grade for the day (an absence).  Game playing, non-class related discussions or other disruptive behavior will result in lost of class participation grade (an absence) for that day.

GRADING:

There will be a mid-term and a final each worth 40%. 20% of your grade will be based on homework/projects/quizzes. Quizzes are not announced or,  if they are, they will be posted to the this WEB site.Plagiarism, Collusion, and/or Cheating will result in an "F" for the assignment and/or the course. Homework will be collected at random. You are expected to have your homework done and available in class on the date due.
 

E-JOURNAL:

As part of this course, you will be required to participate in an electronic journal. At least once a week, you will submit your reactions in the class FORUM. The information in FORUMS is available to all in the class. If you want to address one or more people individually, you can also send them an E-mail message. This method of responding will allow you to share your ideas with other in a written form and give you a chance to get feedback to your comments and questions. E-mail is available from almost any campus computer open to students. It also gives me a chance to respond to questions outside of class. it also provides you with the ability to share links and sources with each other.

If there are extenuating circumstances for absences or handing in assignments late, the reason should be submitted in a well written formal E-mail message as soon as is feasible.

Requests for extensions should be made via E-mail prior to the due date outlining the reasons for the extension and including what work has been done thus far. In addition to writing practice, this will provide you with the communications skills needed in today's business world by having you present your concerns and requests in writing. As in any business situation, how you state your case will have an effect on whether or not your request will be granted. As in business, there will be times when you need to call because of time constraints and then follow up in writing. Verbal request must be followed up in writing.

 
If there are any problems with getting an assignment done or any other complications during the semester, feel free to either see me before class or call me. I work full-time as a programmer in College Hall and I am in from 6:30am until 3:00pm and I am logged on constantly.


E-MAIL, FORUMS AND OTHER ELECTRONIC MEDIA

FORUMS

The class will be using a product called FORUMS. This product allows you to use a net browser such as NETSCAPE or INTERNET EXPLORER to read and post messages to various class forums. A forum is an organized discussion on a specific topic within a conference. Within a forum, there are various threads or subtopics. It will be possible to organize a forum on a particular paper, a specific problem  anything else related to class. It should also be possible to post your papers for others to review. As a general rule, the FORUMS are not restricted to members of the class.

Other sources of information: On NETSCAPE / WWW, WPUNJ has a home page at  http://www.wpunj.edu. It has information on E-mail, campus events and much more such as other listservers that may be of interest to you either for this course or other courses that you are taking.
 


  

GRADING 

Midterm                 40%	            Final             40%
Projects                10%                 Homework          10%

      

   

                                     GRADES

  • C good understanding of material in the Basic Sections.
  • B solid grasp of material in the Basic Sections and a fair grasp of the material in the Advanced Section.
  • A solid grasp of material in the Basic section along with a good understanding of the material in the Advanced section and Related Sections.
  • D fair understanding of the material in the Basic Section.
  • F inadequate understanding of material in the Basic Section. Plagiarized assignments, handing in work done for another class, 6 or more absences, failure to turn in work, copying assignments (including journals, cheating or any other violation of the Academic Integrity Policy (see attached or Student Handbook pp. 28-30).

  

READ CAREFULLY

 
 
 

Plagiarism is trying to pass off someone else's work as your own without proper citation. This includes not only paraphrasing material from outside sources without citation but also includes using programs and work from your sources without citations. It includes taking ideas from sources without attribution (including a classmate's work). It also includes copying from your source by changing a few items here and there.  In all respects, your work should be your own voice except where you have indicated that you have incorporated ideas from others. Remember, it is not improper to use outside sources-- in fact it is frequently a good idea to do so-- as long as you clearly indicate what are your ideas and what are the ideas of others. 

If you work with a classmate on a work, put both your names on both papers to indicate the collaboration. If only part of the work was worked on jointly, then cite those parts. Not only is this the correct thing to do, but it avoids the problem of who was/were the original writer(s) when, by sharing ideas, you come up with a work that is similar to someone else's. In any event, both works/programs should be distinct with each writer contributing his or her own ideas. (i.e.. if two people are working on an assignment, the ideas may be similar, but the papers should be written by each person.) Work which is in whole or substantially identical will both receive an "F" since it is plagiarized unless there is proper citations. 

If you are unsure about what constitutes plagiarism or what you need to avoid it, make sure you ask or put a note on your work. 

Why is plagiarism frowned upon? The reason is that you are submitting work that was done by others and handing it in to be graded as you own work. In addition, it is not fair to the people that do their own work. The minimum penalty is an F on the paper. Subsequent violations may result in an "F" for the course. (See Student Handbook for College policy.) 

You are the visitor to this site.