CS161 Object Oriented Problem Solving
Overview
·
Resources
·
RamCT
CS161 Overview
Announcement: No recitations the first week of class
CS161 Sections
Course Description
Prerequisites: CS160 or CS153 with a C or better; M124, M126 (both with a C or better).
CS161 is designed to introduce students to object-oriented programming
by building on the understanding of procedural programming and introduction to object-oriented programming obtained
from CS160. As with CS160, the course is structured to interleave
theory, discrete math, and programming concepts as needed to
motivate and explain problem solving using object-oriented programming.
The core of the course is explaining objects: how they represent data
and how they are defined and used in Java. Fundamental concepts such
as inheritance and polymorphism are introduced and explained in the
context of programming assignments. Data structures such as
linked lists and recursive algorithms such as binary search serve to
connect theory (recursion, induction and counting) to programming operations
(e.g., creating, searching and maintaining).
A student completing this course should be able to
- implement object-oriented programs and understand the
underlying principles
such as encapsulation, abstraction and reuse;
- design and build more complex programs (multiple files and
multiple objects) by dividing problems into parts that are easily solvable;
- design more efficient programs by understanding basic algorithms,
analyzing their complexity and understanding how they are implemented in
hardware and software;
- and relate concepts from theory to programming and architecture,
such as how recursion
is programmed and implemented in hardware and when it is an appropriate
programming technique.
This course is essential for majors and other students who
intend to use object-oriented programming to solve problems and who
intend to write complex software. The course would be useful to any
student intending to pursue Computer Science or Information Technology as
a career.
Textbooks
Data Abstraction and Problem Solving with Java: Walls and Mirrors, 3rd edition
Janet J. Prichard and Frank M. Carrano
Addison-Wesley
Discrete Mathematics and its Applications, sixth edition
Kenneth R. Rosen
McGraw-Hill
Instructors
Ross McConnell: Sections 1 and 220
Computer Science Building 466
Office Hours: MWF after class; if you can't make them, you
can come to my CS520 office hours, MWF 10:50, CSB 325. You can attend
other recitations besides the one you are assigned to, and ask for help
from the T.A.
emailmy three initials {AT} @cs.colostate.edu (my middle initial is M)
Russ Wakefield: Section 2
Room 240 Computer Science Building
Office Hours: T/TH 9-11
waker {AT} cs.colostate.edu
Graduate Teaching Assistants
Nissa: Room 130, Computer Science Building
Office Hours: Mon. 3-5, Wed. 9-11
Amanda: Room 130, Computer Science Building
Office Hours: Fri. 11-1
Nathan: Room 130, Computer Science Building
Office Hours: Fri. 3-5
Lectures
- Sections 1 and 220: MWF Clark C 248, 2:00-2:50
- Section 2: TR Wagar 232 12:30-1:45
Recitations
All recitations meet in the Computer Science Building, Room 215.
No recitations the first week of class
- L01: M 11:00a - 12:40p
- L02: W 11-00a - 12:40p
- L03: W 4-00p - 5:40p
- L04: R 2:00p - 3:40p
- L05: R 4:00p - 5:40p
- L06: F 10:00a - 11:40a
Recitation attendance: You are expected to attend one
recitation a week.
All students are expected to conduct themselves professionally. We
(the instructor and the GTA) assume you are familiar with the
policies in the
student information sheet for the department. The guidelines
outlined in these documents will be followed in this course.
The following is the
C.S. Department Code of Ethics.
Copyright © Colorado State University. All rights reserved.