Computer Science
 

Introduction to Computer Programming

Introduction to Computer Programming
Introduction to object-oriented program design and development. Principles of algorithm formulation and implementation.
C S
142
 Hours3.0 Credit, 3.0 Lecture, 0.0 Lab
 PrerequisitesKnowledge of algebra.
 NoteStudents are allowed only 1 retake of C S 142. This includes students who have failed or withdrawn (received a "W" grade). If after 1 retake, a student needs to retake the course again, the student must wait 1 semester/term before being allowed to take any C S course and must follow the petition process at cs.byu.edu/retake-policy. This policy does not apply to classes dropped before the add/drop deadline. Petitions for exceptions to the policy can be completed at cs.byu.edu/retake-policy.
 TaughtFall, Winter, Spring
 ProgramsContaining C S 142
Course Outcomes: 

Write programs whose complexity reaches a few hundred lines

Use the rudiments of the environment and the resources available to help them program (editors, basic computer architecture, compilers, libraries, reference manuals, on-line help).

Develop programs from an English description.

Write programs on their own, independent of "hand holding" by a TA or an instructor (typically a dozen or so).

Understand and use the basic programming constructs: types (built in types, basic provided types including arrays and strings, type construction), values (constants,variables, assignment statements, and expressions), control structures (sequential flow, conditional statements, and loops), and I/O (basic output to the screen and input from the keyboard, and file I/O).

Understand and use objects (value representation, applicable operations, hidden implementations).

Implement basic recursive algorithms.

Describe and use the basic ideas of some of the more advanced programming constructs,including exceptions, inheritance, and polymorphism.

Understand the importance of the following concepts

  • Abstraction

  • Debugging and Assurance of Correctness

  • Program Development (analysis, specification, design, implementation, testing)