Butte College Fall 2018
Course Information
Course #/Control #: CSCI 20−1823
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: TTh 2:00pm-4:15pm, MC 146
Course web page: http://foobt.net/fall2018/csci20_1823
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
Reading/viewing: Introduction to Programming with Ruby
Object Oriented Programming with Ruby
Ruby Screencasts
CodesDope Ruby
Ruby Programming
Airbnb Ruby Style Guide
Ruby Language Documentation
Additional readings linked in the course schedule
Course Requirements
Reading: Students are expected to complete the readings associated with all course topics, as presented in the course schedule.
Exercises: Students are expected to complete the exercises associated with all course topics, as presented in the course schedule.
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.
Late work: 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 in a row will be dropped from the course. NOTE: arriving late for class will be counted 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 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: Programming projects: 4 @ 750 = 3000 pts
Final project: 500 pts
Total possible points: 3500 3000 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.