Catalog Description
- Transfer Status
- CSU/UC
- Unit(s)
- 3.00
- Lecture: 34.00 Contact hours/68.00 Out of class hours/102.00 Total hours/2.00 Unit(s)
- Lab: 51.00 Contact hours/0.00 Out of class hours/51.00 Total hours/1.00 Unit(s)
- Total: 85.00 Contact hours/68.00 Out of class hours/153.00 Total hours/3.00 Unit(s)
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).
Objectives
Upon successful completion of this course, the student should be able to:
- Design, implement, test, and debug computer programs using basic computation, simple Input/Output (I/O), standard conditional and iterative structures, and functions.
- Use pseudocode and a high-level programming language to implement, test, and debug algorithms that solve simple problems.
- Summarize the evolution of programming languages and describe how this evolution has led to the programming paradigms in use today.
- Identify and demonstrate different forms of variable binding, visibility, scoping, and lifetime management.
Course Content
Topic Titles / Suggested Time Topic
Lecture
| Topics | Lec Hrs |
|---|---|
Basic syntax and semantics | 4.00 |
Variables, types, expressions, and assignment | 3.00 |
I/O | 3.00 |
Conditional and iterative control structures | 4.00 |
Functions and parameter passing | 6.00 |
Structured decomposition | 2.00 |
Problem-solving strategies and the role of algorithms in the problem-solving process | 2.00 |
Implementation and debugging strategies for algorithms | 2.00 |
Properties of algorithms | 2.00 |
History of programming languages and survey of programming paradigms | 1.00 |
Procedural and object-oriented programming languages | 2.00 |
Variable binding, visibility, scope, lifetime, and type-checking | 3.00 |
| Total Hours: | 34.00 |
Lab
| Topics | Lab Hrs |
|---|---|
Basic syntax and semantics | 6.00 |
Variables, types, expressions, and assignment | 6.00 |
I/O | 4.50 |
Conditional and iterative control structures | 6.00 |
Functions and parameter passing | 9.00 |
Structured decomposition | 3.00 |
Problem-solving strategies | 3.00 |
Implementation and debugging strategies for algorithms | 6.00 |
Procedural and object-oriented programming languages | 3.00 |
Variable binding, visibility, scope, lifetime, and type-checking | 4.50 |
| Total Hours: | 51.00 |
Methods of Instruction
- Collaborative Group Work
- Demonstrations
- Homework: Students are required to complete two hours of outside-of-class homework for each hour of lecture
- Lecture
- Multimedia Presentations
Methods of Evaluation
- Quizzes
- Homework
- Lab Projects
- Mid-term and final examinations
Examples of Assignments
Reading Assignments
- Read the chapter in your textbook on dynamic arrays. Be prepared to explain in class the difference between dynamic and static allocation of arrays, and demonstrate the C++ code needed to declare, initialize, and destroy a dynamic array.
- Read the brief history of the Ada programming language presented online at adacore.com. Prepare a short summary of Ada language features, and compare/contrast with the features of C++.
Writing Assignments
- Write the pseudocode for the algorithm to bubble sort the contents of an integer array. Prepare a brief analysis of your algorithm, including a description of its efficiencies (or inefficiencies) and debugging techniques suitable for your algorithm.
- Write a short outline to decompose the following programming problem: create a program to model a game of Hangman on the computer. Your decomposition should include all user inputs, program outputs, conditional and iterative constructs, and processing required to create this program.
Out-of-Class Assignments
- Use the Internet to locate four programming languages (not including the language being used in this class). Write a brief summary of the four languages, including key language features and the programming paradigm(s) that the languages support.
- Visit the website freecode.com and search through the projects on the website. What do you find to be the 2-3 most popular programming languages? What do you find to be the 2-3 least popular languages? Be prepared to discuss your findings in class.
Recommended Materials of Instruction
Forouzan, Behrouz A.; Gilberg, Richard. (2020). C++ Programming: An Object-Oriented Approach. McGraw Hill, 1st. 9780073523385.
Savitch, Walter; Mock, Kenrick. (2017). Problem Solving with C++. Pearson, 10th. 978-0134448282.
Murach, Joel. (2018). Murach's C++ Programming. Mike Murach. 978-1943872275.
Minimum Qualifications
Computer Science (Masters Required)