CS 415: Introduction to Computer Science I
(Coordinator: Mark Bochert)
Theory and practice of computer science. Algorithm development and analysis; data abstraction techniques; elementary data structures; dynamic memory manipulation; debugging; and program design issues. Computer systems and applications. Intended for CS majors.
Software development and programming languages (Department outcomes 1 and 4):
- Discuss and identify the concepts of encapsulation, abstraction, inheritance, and polymorphism
- Design, implement, test, and debug programs involving basic computation, simple I/O, standard conditional and iterative structures, plus the definition of instance variables and functions/methods within the context of multiple classes involving some class hierarchy.
- Identify and use good programming style.
- Develop simple event-driven programs that respond to user events and exception conditions raised during execution.
- Analyze and explain the behavior of simple programs and fragments of larger programs.
- Choose appropriate conditional and iteration constructs for a given programming task and apply them properly.
- Apply the techniques of structured (functional) decomposition to break a program in to smaller pieces, demonstrating appropriate use of method overloading and overriding.
- Describe how the class mechanism supports encapsulation and information hiding, and the nature of the relationship between a class and an object of that class
Data structures (Department outcome 2):
- Write programs that make use of arrays and lists.
- Weekly programming assignments (50%)
- Semi-weekly labs, weekly recitations (20%)
- Weekly written quizzes and 2 written exams (15%)
- Weekly programming quizzes and 2 programming exams (15%)
This course meets 6 hours per week, 2 hours in lecture, 3 hour in a computer lab, and 1 hour of group work in recitation. CS 415 and CS 416 are a sequence – the topics listed below are normally taught within CS 415, although the actual distribution of some of the topics between the two courses varies somewhat from year to year.
- Classes and objects
- Inheritance, interfaces, polymorphism
- Expressions and conditionals
- Exceptions and exception handling
- Arrays and wrappers
- Algorithm Development
Sanders and van Dam, Introduction to Object-Oriented Programming in Java: A Graphical Approach.