Butte College
Spring 2019
COURSE SYLLABUS
CSCI 21
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. (C-ID COMP 132).
Recommended Preparation:
CSCI 20: Programming and Algorithms I or the equivalent
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:
TTh 11:00am - 1:15pm, MC 146
Course web page:
http://foobt.net/spring2019/csci21_3939
Instructor Information
Instructor name:
Boyd Trolinger
Office:
MC 152
Office hours:
MTWTh 1:15 - 2:00pm, MC 146
or by appointment
Phone number:
895-2503
Email:
jboydt@foobt.net
Course Materials
References:
C++ Tutorial
Standard C++ Library reference
Stanley B. Lippman, C++ Primer (recommended)
Additional readings linked in the course schedule
Course Requirements
Labs:
Students will complete weekly lab assignments associated with all course topics, as presented in the course schedule. Lab assignments must be presented to the instructor, during lab meeting time, before the end of the second lab meeting each week.
Programming Projects:
Students will complete and submit four (4) programming projects over the course of the semester. Successful completion of programming projects will require that students spend a significant amount of time outside of class writing and testing code and applications, and managing time to make steady and constant progress. Late submission of programming projects will be docked fifty (50) points for each 24−hour period that passes after the deadline.
Final Project:
A final project will be completed on the day of the scheduled final exam for this course.
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 in a row will be dropped from the course.
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.
Grades
Computing your semester grade:
Semester grades are computed as the percentage of points you earned against the total possible points. Letter grades are awarded as follows -- A (90% and above), B (80% and above), C (70% and above), D (60% and above), F (below 60%).
Earning points:
assignments
each
possible
Labs
15
100
1500
Projects
4
500
2000
Final
1
300
300
Total possible
3800
Miscellaneous Information
A course outline is on file in the department office. If a student would like to have a copy, please request one from the instructor.