16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CSC 207: Algorithms and Object-Oriented Design, Grinnell College<br />

Grinnell, Iowa USA<br />

Henry M. Walker<br />

walker@cs.grinnell.edu<br />

http://www.cs.grinnell.edu/~walker/courses/207.sp12/<br />

Knowledge Areas that contain topics and learning outcomes covered in the course<br />

Knowledge Area<br />

Total Hours of Coverage<br />

Software Development Fundamentals (SDF) 16<br />

Algorithms and Complexity (AL) 14<br />

Programming Languages (PL) 12<br />

Software Engineering (SE) 3<br />

Computational Science (CN) 1<br />

Systems Fundamentals (SF) 1<br />

Social Issues and Professional Practice (SP) 1<br />

Brief description of the course’s format and place in the undergraduate curriculum<br />

This course is the third in Grinnell's three-course, multi-paradigm introductory CS sequence. Many students are<br />

second-year students, but the course also attracts third-year and fourth-year students who are majoring in other<br />

fields but also want to expand their background on topics they found interesting in the first two courses. As with<br />

Grinnell's other introductory courses, each class session meets in a lab, and work flows seamlessly between lecture<br />

and lab-based activities. The course includes a significant emphasis on collaboration in pairs during 23 in-class<br />

labs. Additional programming assignments and tests are done individually. All course materials, including<br />

readings and all labs, are available freely over the World Wide Web.<br />

Course description and goals<br />

CSC 207, Algorithms and Object-Oriented Design, explores object-oriented problem solving using the Java<br />

programming language. Topics covered include principles of object-oriented design and problem solving, abstract<br />

data types and encapsulation, data structures, algorithms, algorithmic analysis, elements of Java programming, and<br />

an integrated development environment (IDE) (e.g., Eclipse).<br />

Course topics<br />

Topics and themes covered include:<br />

• Principles of object-oriented design and problem solving<br />

◦ Objects and classes<br />

◦ Encapsulation, abstraction, and information hiding<br />

◦ Inheritance<br />

◦ Polymorphism<br />

◦ Unit testing<br />

◦ Integration testing<br />

• Abstract data types, data structures, and algorithms<br />

◦ Dictionaries<br />

◦ Hash tables<br />

◦ Binary search trees<br />

◦ Priority queues<br />

◦ Heaps<br />

• Algorithmic analysis<br />

◦ Upper-bound efficiency analysis; Big-O Notation<br />

- 460 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!