Butte College Fall 2017
Course Information
Course #/Control #: CSCI 20−2371
Course title: Programming and Algorithms I
Course description: This course is an introduction to the discipline of computer science, with a focus on the design and implementation of algorithms to solve simple problems using a high-level programming language. Topics include fundamental programming constructs, problem-solving strategies, debugging techniques, declaration models, and an overview of procedural and object-oriented programming languages. Students will learn to design, implement, test, and debug algorithms using pseudocode and a high-level programming language. (C-ID COMP 122).
Recommended Preparation: CSCI 4: Introduction to Programming or the equivalent
Student Learning Outcomes: Upon the satisfactory completion of this course, the student will be able to:
  1. Design, implement, test, and debug computer programs using basic computation, simple Input/Output (I/O), standard conditional and iterative structures, and functions.
  2. Use pseudocode and a high-level programming language to implement, test, and debug algorithms that solve simple problems.
  3. Summarize the evolution of programming languages and describe how this evolution has led to the programming paradigms in use today.
  4. Identify and demonstrate different forms of variable binding, visibility, scoping, and lifetime management.
Class meeting time/place: MW 12:00pm-2:15pm, MC 146
Course web page: http://foobt.net/fall2017/csci20_2371
Instructor Information
Instructor name: Boyd Trolinger
Office: MC 152
Office hours: MW 11:30am - 12:00pm, MC 146,
T 8:00 - 10:00am, MC 146,
or by appointment
Phone number: 895-2503
Email: jboydt@foobt.net
Course Materials
Reading: C++ Programming [WIKIBOOKS]
C++ Language [cplusplus.com]
C++ Basics [tutorialspoint.com]
Course Requirements
Reading: Students are expected to complete the readings associated with all course topics, as presented in the course schedule.
Book challenges (submission): Book challenges will be posted on the course website and will require that students use the assigned book and conduct independent research to successfully complete. Book challenges must be submitted by email to jboydt@foobt.net on or before 12:00pm on Friday each week.
Book challenges (self-scoring): The answer keys for book challenges will be distributed after the submission deadline each Friday. Students will self-score their book challenges (subject to review against the original submission, by the instructor) and submit their grades on or before 12:00pm the following Friday.
Programming challenges: Students will complete and submit a programming challenge each week. Programming challenges will be posted on the course website, along with a requirements/scoring rubric. Programming challenges must be submitted by email to jboydt@foobt.net on or before 12:00pm on Friday 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. Programming projects must be submitted by email to jboydt@foobt.net by midnight on their due date (the email must be time stamped no later than 12:00am). Late submission of programming projects will be docked fifty (50) points for each 24−hour period that passes after the deadline, starting at 12:01am.
Final challenge: There will be a final challenge on the day of the scheduled final exam for this course. The final challenge will consist of elements of both book challenges and programming challenges.
Email submissions: The following are required subject lines for submitting assignments by email:
  • Book challenges (submission):
    YOUR_LAST_NAME, Book challenge #_ (SUBMISSION)
  • Book challenges (self-scoring):
    YOUR_LAST_NAME, Book challenge #_ (SCORE)
  • Programming challenges:
    YOUR_LAST_NAME, Programming challenge #_
  • Programming projects:
    YOUR_LAST_NAME, Programming project #_
Late work: Late work will not be accepted for book challenges or programming challenges for any reason. Programming projects may be turned in past the deadline date, but will be docked fifty (50) points per 24−hour period, as described above.
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 as an absence.
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 below are provided as a rough guideline of your progress in the class and should not be considered the final determination of your grade.
Earning levels and grades: Level 10 (A*), 6175 pts and higher (!C++ PRO!)
Level 9 (A), 5850 pts and higher
Level 8 (B), 5200 pts and higher
Level 7 (C), 4550 pts and higher
Level 6 (D), 3900 pts and higher
Level 5, 3250 pts and higher (Level 5 and below earn F)
Level 4, 2600 pts and higher
Level 3, 1950 pts and higher
Level 2, 1300 pts and higher
Level 1, 650 pts and higher
Level 0, below 650 points
Earning points: Book learning challenges - 13 @ 150 pts each, max 1950 pts
Programming challenges - 13 @ 150 pts each, max 1950 pts
Programming projects - 4 @ 500 pts each, max 2000
Final challenge - 600 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.