CS 202 - Computer Science II

Meeting time: 9:45-11:15am
Room 106 Chapman Building
University of Alaska Fairbanks

UAF CS F202
3.0 Credits, Spring 2010
Prerequisite: CS 201

Instructor: Dr. Orion Lawlor
lawlor@alaska.edu, 474-7678
Office: 201E Chapman
Hours: 2-3 TR (or whenever!)

Required Textbook: Starting out with C++, by Tony Gaddis

ADA Compliance: Will work with Office of Disabilities Services (203 WHIT, 474-7043) to provide reasonable accomodation to students with disabilities.

Course Website: http://www.cs.uaf.edu/2010/spring/cs202
C++ Machines: Chapman lab, or my server via "NetRun"

Course Goals and Requirements

This is the second half of your introduction to C++.  The first half of the semester, up to the midterm, includes fundamental C++ concepts like file I/O, classes and methods, inheritance, and exception handling.  The second half of the semester will cover a variety of data structures including linked lists, stacks and queues, and recursive structures like binary trees.  Throughout, you will learn both the principles and examples of good programming style, and how to work with other programmers.  To succeed, you will need to understand the simple C++ covered in CS 201: variables and arithmetic, looping and branching, arrays and pointers, strings, structures, and pointers.

Calendar

First day of class: Thursday, January 21.  Last day to drop: Friday, February 5.  Spring break: March 6-14. Midterm exam: Thursday, March 18.  Last day to withdraw: Friday, March 26.  Last day of class: Thursday, May 6. Final exam: 3:15pm Tuesday, May 11.

Student Resources

Academic Help: Google, Rasmuson Library, Academic Advising Center (509 Gruening, 474-6396), Math Lab (Chapman Room 305), English Writing Center (801 Gruening Bldg, 478-5246).

Grading

You'll get better grades by attending class, doing homework, and understanding the material than by cramming before the exam.



Your overall grade comes from:

  1. HW: Homeworks and machine problems, to be distributed through the semester.

  2. PROJ: one substantial group project, together with a short presentation of your results.

  3. MT: Midterm Exam.

  4. FINAL: Final Exam (comprehensive).

The final score is then calculated as:

TOTAL = 30% HW + 20% PROJ + 25% MT + 25% FINAL

This percentage score is transformed into a plus-minus letter grade via these cutoffs: A >= 93%; A- 90%; B+ 87%; B 83%; B- 80%; C+ 77%; C 70%; D+ 67%; D 63%; D- 60%; F. The grades “C-”, “F+”, and “F-” will not be given. “A+” is reserved for truly extraordinary work. At my discretion, I may round your grade up if it is very close to a grading boundary. Students taking the graduate course will have extra exam questions, and be expected to complete more complex projects.

Individual assignments and tests
may (rarely) be curved. Homeworks are normally due at midnight on the day they are due. Late homeworks will receive no credit. At my discretion, I may allow late assignments without penalty when due to circumstances beyond your control. Projects that are up to two weeks late may be accepted at a 50% grade penalty (e.g., on-time grade: 86%; late grade: 43%). Everything you turn in must be your own work--violations of the UAF Honor code will result in a minimum penalty equal to THAT ENTIRE SECTION OF YOUR GRADE (e.g., one plagiarized homework question will negate an otherwise perfect grade on all homeworks). Group projects are required; group homeworks are forbidden! However, even substantial reuse of other people's work is fine (and not plagiarism) if it is clearly cited; you'll be graded on what you've added to others' work. Department policy does not allow tests to be taken early; but in extraordinary circumstances may be taken late.

Course Outline (Tentative)

Before Spring Break:

  • Review strings, pointers, structs (Chapters 1-11)

  • File I/O in text and binary modes (Chapter 12)

  • C++ classes = data and responsibility (Chapter 13)

  • Class methods

  • Choose project teams and topics

  • Class inheritance and class hierarchies

  • Polymorphism and virtual functions (Chapter 15)

  • Exceptions and templates (Chapter 16)

After Spring Break:

  • Midterm exam

  • The Standard Template Library (STL)

  • Linked lists (Chapter 17)

  • Stacks and queues (Chapter 18)

  • Recursion (Chapter 19)

  • Binary search trees (Chapter 20)

  • Group project presentations

  • Final exam