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

Policies

Overview

Computer Science II introduces object-oriented programming, data structures, and more sophisticated algorithms than you saw in CS1.
 
CS 171 (Computer Science I) is a prerequisite for this course. You are not expected to have any prior experience with Java.

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:

Course Summary
Date Details Due