Butte College Spring 2018
Course Information
Course #/Control #: CSCI 21−3939
Course title: Programming and Algorithms II
Course description: This is a software engineering course, focused on the application of software engineering techniques for the design and development of large programs. Topics include data abstraction, data structures and associated algorithms, recursion, declaration models, and garbage collection. Students will learn to design, implement, test, and debug programs using an object-oriented language.
Student Learning Outcomes: Upon the satisfactory completion of this course, the student will be able to:
  1. Design and implement programs that use arrays, records/structs, strings, linked lists, stacks, queues, hash tables, and trees.
  2. Design, implement, test, and debug recursive functions and procedures.
  3. Evaluate the tradeoffs in lifetime management of data when using manual memory management versus reference counting or tracing garbage collection.
  4. Explain how abstraction mechanisms support the creation of reusable software components.
  5. Design, implement, test, and debug programs in an object-oriented language.
  6. Compare and contrast object-oriented analysis and design with structured analysis and design.
Class meeting time/place: MW 12:00-2:15pm, MC 146
Course web page: http://foobt.net/spring2018/csci21_3939
Instructor Information
Instructor name: Boyd Trolinger
Office: MC 152
Office hours: MW 11:30am-12:00pm, MC 152
MW 2:15pm-2:45pm, MC 152
TTh 11:15am-12:00pm, MC 152
or by appointment
Phone number: 895-2503
Email: jboydt@foobt.net
Course Materials
Recommended text: Stroustrup, "The C++ Programming Language", 4th edition (C++11)
Course Requirements
Assigned reading: See links in course schedule
Programming challenges: One (1) each week
See links in course schedule
Submit by email to jboydt@foobt.net
Due no later than 12pm/noon each Friday (email timestamp)
No late submissions accepted for any reason
Programming projects: Four (4) over the course of the semester
See links in course schedule
Submit by email to jboydt@foobt.net
Due no later than 12pm/noon on their due date (email timestamp)
Late submissions docked fifty (50) points each 24-hour period
Unique contribution: One (1) during the semester
Contribute something of substance to the benefit of everyone in the class
Accept an instructor-provided challenge or propose your own
Examples: presentation, demonstration code, song/skit, et al.
Final challenge: One (1) on the day of the final exam
Draws on skills acquired over the course of the semester
To be completed during the final exam period
Course Policies
Participation/Drop policy: Regular attendance and active participation in this course is a requirement. The best learning environment for everyone is created when all students are present and engaged in the material. Any student who misses more than four (4) class meetings or four (4) assignments in a row (whichever comes first) will be dropped from the course. PLEASE NOTE: arriving late for class will be counted just the same as an absence.
Honesty and integrity: All of the work you do in this course must be your own, unless otherwise directed by the instructor (for example, pair or group activities). Cheating or plagiarism on any assignment will result in a zero for that assignment.
Computing your semester grade: All semester grades are computed as the percentage of points you earned against the total possible points. Letter grades are awarded as follows -- A (90%), B (80%), C (70%), D (60%), F (below 60%). The levels and achievements (where applicable) are listed only to provide a rough guideline of your progress in your class and should not be considered the final determination of your grade.
Level 10 (A*) : 5700 pts and higher (!C++ PRO!)
Level 9 (A) : 5400 pts and higher
Level 8 (B) : 4800 pts and higher
Level 7 (C) : 4200 pts and higher
Level 6 (D) : 3600 pts and higher
Level 5 : 3000 pts and higher (Level 5 and below earn F)
Level 4 : 2400 pts and higher
Level 3 : 1800 pts and higher
Level 2 : 1200 pts and higher
Level 1 : 600 pts and higher
Level 0 : below 600 points
Earning points: Programming challenges - 16 @ 150 pts each, max 2400 pts
Programming projects - 4 @ 600 pts each, max 2400 pts
Unique contribution - 1 @ 600 pts, max 600 pts
Final challenge - 1 @ 600 pts, max 600 pts

Total possible - 6000 pts
Miscellaneous Information
A course outline is on file in the department office. If you would like to have a copy, please request one from the instructor.