Difference between revisions of "CIS 3020 Part 1"

From In The Wings
Jump to navigation Jump to search
Line 97: Line 97:
 
====Should I stay?====
 
====Should I stay?====
 
* If you found the self test to be easy or not difficult in spite of no prior programming experience, then this course should not be too difficult for you.
 
* If you found the self test to be easy or not difficult in spite of no prior programming experience, then this course should not be too difficult for you.
 +
==What is Computer Science?==

Revision as of 16:08, 29 January 2007

Introduction to CIS

Introduction to:

  • The art and science of programming
  • The fundamentals of computer science
  • The basic concepts of Object Orientation:
    • Abstraction - representing the key features
    • Polymorphism - "many forms"
    • Inheritance - reuse of existing code from ancestors
    • Encapsulation - containing and controlling access to

What this course entails

  • This course is not a Java programming course
  • "Introduction" does not mean "easy"
  • Prior programming experience is strongly recommended
    • in none, take CIS 3022/3023
  • This course moves quickly, so attempt assignments early
  • Don't get discouraged if you feel confused after one week of class. You hopefull will feel more comfortable by the 3rd week.

Philosophy

  • Goal is to learn fundamental principles of programming and obtain an overview of the field of computer science.
  • This goal is independant of any language
  • Java is used to make these principles concrete but "learning Java" is not the primary goal of the course.
  • We will not cover most or all of Java.
  • We will teach the basics with emphasis on thinking and analysis.

Class Web Page

WebCT/Vista
Douglas Denkel's Homepage

  • Announcements, homework assignments, etc. will be posted here.
  • You are responsible to be aware of what information is there.
  • Check it frequently -- no less than every other day!

Lecture Notes

  • Copies of the lecture slides are available in the Lectures folder in WebCT/Vista
  • These slides do NOT contain everything on my slides to encourage you to come to class.
  • You are strongly encouraged to print a copy of these notes.
  • Having a copy will make taking notes significantly easier!

Grading

Option 1
15%
20%
30%
-
20%
15%

Option 2
15%
15%
15%
20%
20%
15%


Examination 1
Examination 2
Examination 3
Final
Pop quizzes and in class exercises
Group/Ind Homework Assignments

What to Expect

  • Difficulty: This course has had a drop rate as high as 33%
  • Effort Required: Expect to spend a minimum of 10 hours/week
  • Intended for: Those needing a firm foundation in CS principles (majors)
  • Education Value: Understanding the vocabulary of CS and concepts of OOP (Object-Oriented Programming)

Necessary Skills

  • Helpful to know Java, but not a requirement
  • Prior programming experience is helpful
  • Willingness to work outside of class
  • Willingness to work in groups
  • Self discipline
  • Ability to tolerate frustration
  • Ability to switch between high and low level views
  • Ability to think abstractly
  • Ability to see what is actually there:
       This is the
       the answer
    • The computer executes exactly what you give it
    • The ability to see the duplicate "the" can greatly help in debugging code

Self Test

  1. If (a<b) then x=a & y=b otherwise x=b & y=a
  2. z=0
  3. if (x<=0) goto step 7
  4. z=z+y
  5. x=x-1
  6. goto step 3
  7. print z
  • What did the author of this algorithm intend for it to do?
  • For what values of a & b does the algorithm work as intended?
  • How many times is step 3 executed?

Should I stay?

  • If you found the self test to be easy or not difficult in spite of no prior programming experience, then this course should not be too difficult for you.

What is Computer Science?