Butte College

Course Outline

2026-2027 Catalog

CSCI 4 - Introduction to Programming Concepts and Methodologies

Catalog Description

Transfer Status
CSU/UC
Unit(s)
3.00
  • Lecture: 42.50 Contact hours/85.00 Out of class hours/127.50 Total hours/2.50 Unit(s)
  • Lab: 25.50 Contact hours/0.00 Out of class hours/25.50 Total hours/0.50 Unit(s)
  • Total: 68.00 Contact hours/85.00 Out of class hours/153.00 Total hours/3.00 Unit(s)

Course Description: This course introduces students to the fundamental concepts of programming. Students will learn about the software development life-cycle, algorithms, and the design, implementation, and testing of programs using an object-oriented programming language. (C-ID COMP 112).

Objectives

Upon successful completion of this course, the student should be able to:

  1. Describe the software development life-cycle.
  2. Describe the principles of structured programming.
  3. Describe, design, implement, and test structured programs using currently accepted methodology.
  4. Explain what an algorithm is and its importance in computer programming.

Course Content

Topic Titles / Suggested Time Topic

Lecture

Lecture topics and suggested hours
TopicsLec Hrs

Software life-cycle including design, development, styles, documentation, testing and maintenance

2.50

Procedural versus objected oriented programming

  • Survey of current programming languages
2.50

Program design tools and programming environments

2.50

Documentation

2.50

Coding conventions

2.50

Data types, variables, expressions, sequential processing

2.50

Arrays

  • Declaring and allocating arrays
  • Multiple-subscripted arrays
6.25

Control structures

  • Selective structures: if and switch
  • Repetitive structures: loops
5.00

Algorithms including simple sorting and searching

5.00

File Input/Output (I/O)

  • Files and streams
  • Sequential access files
2.50

Error handling

1.25

Passing parameters by value and by reference

5.00

Principles of testing and designing test data

2.50
Total Hours:42.50

Lab

Lab topics and suggested hours
TopicsLab Hrs

Program design tools and programming environments

1.50

Documentation

1.50

Coding conventions

1.50

Data types, variables, expressions, sequential processing

1.50

Arrays

3.75

Control structures

3.75

Algorithms including simple sorting and searching

3.00

File I/O

1.50

Error handling

0.75

Passing parameters by value and by reference

4.50

Principles of testing and designing test data

2.25
Total Hours:25.50

Methods of Instruction

  1. Collaborative Group Work
  2. Demonstrations
  3. Homework: Students are required to complete two hours of outside-of-class homework for each hour of lecture
  4. Lecture
  5. Multimedia Presentations

Methods of Evaluation

  1. Quizzes
  2. Homework
  3. Lab Projects
  4. Mid-term and final examinations

Examples of Assignments

Reading Assignments

  1. Read the section in your text on loops. Be prepared to discuss the problem of infinite loops in class.
  2. Read the documentation for exception handling for the programming language you are using for your class project. Be prepared to present a short example in class.

Writing Assignments

  1. Write out, in detail, an algorithm for searching for a specific value in an array of integers, and implement your algorithm in a short program.
  2. Using the sample program provided by the instructor, correct the formatting to follow the coding convention required in the class, and write documentation for all of the functions in the program. Be sure your documentation includes comments for the parameters and return value if applicable.

Out-of-Class Assignments

  1. Design and fully document a set of test data that would be appropriate for the sample program provided by the instructor. Be prepared to answer the following question in class: would the sample program pass or fail a test against your data?
  2. Design and implement a short program that opens a text file and searches for and counts the number of occurrences of a given string. Make sure your program is case-insensitive and ignores punctuation.

Recommended Materials of Instruction

Savitch, Walter; Mock, Kenrick. (2017). Problem Solving with C++. Pearson, 10th. 978-0134448282.

Deitel, Paul; Deitel, Harvey. (2017). C++ How to Program. Prentice Hall, 10th. 978-9332585737.

Al Sweigart. (2019). Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners. No Starch Press, 2nd. 978-1593279929.

Minimum Qualifications

Computer Science (Masters Required)

Computer Information Systems