CS2 Fall 2015
Meetings: MWF 11:30 AM - 12:30 PM, Olin 305
Instructor: Peter Drake
Teaching Assistant: Maggie Dreyer
Text: Sedgewick and Wayne, Introduction to Programming in Java: An Interdisciplinary Approach
Google group: 15fa-cs-172-01@lclark.edu
Policies
Overview
Computer Science II introduces object-oriented programming, data structures, and more sophisticated algorithms than you saw in CS1.
In terms of the ACM’s Computer Science Curriculum 2013, this course addresses the following knowledge areas:
- Algorithms and Complexity (AL)
- Discrete Structures (DS)
- Programming Languages (PL)
- Software Development Fundamentals (SDF)
- Software Engineering (SE)
Learning Objectives
Upon completing the course, you should be able to:
- read and write code in the Java programming language, observing stylistic conventions.
- design and implement object-oriented software systems incorporating both new code and existing libraries.
- solve computational problems using recursion.
- use, implement, explain, and compare various data structures and algorithms. Data structures include stacks, queues, lists, sets, trees, and graphs. Implementations include array-based and linked versions. Algorithms include binary search, insertion sort, merge sort, and depth- and breadth-first search.
Course Structure
This course is structured differently from others you may have taken. It relies heavily on the Process-Oriented Guided Inquiry Learning (POGIL) model. You will work as part of a team of 3-4 students to explore existing programs and write your own. There is strong evidence that this sort of active learning approach is far more effective than traditional lectures. Teamwork skills are also highly valued by employers.
Java Practice
The most important thing you can do is get more practice writing code. Here are some sites that provide automated exercises:
Course Summary:
| Date | Details | Due |
|---|---|---|