CIS 3020 Part 1
Contents
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 |
Option 2 |
|
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