16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Course textbooks and materials<br />

Free Online Texts:<br />

Scratch for Budding Computer Scientists, David J. Malan.<br />

Learning with Python: Interactive Edition, Brad Miller and David Ranum (based on material by Jeffrey<br />

Elkner, Allen B. Downey, and Chris Meyers).<br />

Optional Text:<br />

Python Programming: An Introduction to Computer Science (2nd ed.), John Zelle.<br />

Why do you teach the course this way<br />

This course was revised in 2011 to use Python. Previously, it was taught in Java using an object-oriented<br />

approach. It was felt that the overhead of the language was too much for beginners, and the object-orientated<br />

approach was not ideal for the range of students taking this course (which include business, graphic design, and<br />

journalism majors). A scripting language, such as Python, allowed for a stronger problem-solving focus and<br />

prepared non-majors to take high-demand courses such as Web Programming and Mobile Development.<br />

Body of Knowledge coverage<br />

KA Knowledge Unit Topics Covered Hours<br />

SDF Algorithms and<br />

Design<br />

SDF Fundamental<br />

Programming<br />

Concepts<br />

SDF Fundamental Data<br />

Structures<br />

SDF Development<br />

Methods<br />

concept & properties of algorithms; role of algorithms in problem<br />

solving; problem solving strategies (iteration, divide & conquer);<br />

implementation of algorithms; design concepts & principles (abstraction,<br />

decomposition)<br />

syntax & semantics; variables & primitives, expressions & assignments;<br />

simple I/O; conditionals & iteration; functions & parameters<br />

arrays; records; strings; strategies for choosing the appropriate data<br />

structure<br />

program correctness (specification, defensive programming, testing<br />

fundamentals, pre/postconditions); modern environments; debugging<br />

strategies; documentation & program style<br />

8<br />

8<br />

8<br />

6<br />

PL<br />

PL<br />

PL<br />

AL<br />

Object-Oriented<br />

Programming<br />

Basic Type<br />

Systems<br />

Language<br />

Translation<br />

Fundamental Data<br />

Structures and<br />

Algorithms<br />

object-oriented design; classes & objects; fields & methods 3<br />

primitive types; type safety & errors 1<br />

interpretation; translation pipeline 1<br />

simple numerical algorithms; sequential search; simple string processing 4<br />

SP History history of computer hardware; pioneers of computing; history of Internet 1<br />

- 451 -

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

Saved successfully!

Ooh no, something went wrong!