Syllabus: Computer Science I (Computer Science 172)

Course Description:

Introduction to computer science with a strong emphasis on a systematic approach to problem solving. The core principles of programming will be introduced and illustrated through examples and lab practice with a high-level programming language, C++. Students will author numerous programs in common to natural and social sciences, as well as finance.

Textbook: Nell Dale and Chip Weems; Programming and problem solving with C++, Comprehensive Edition (5th Edition) (Paperback); Jones and Bartlett Publishers; ISBN-13: 978-0-7637-7156-0

Grading Policy: There will be one exam and four projects assigned over the course of the semester. Each are equally weighted as 20% of your grade. Class and lab attendance is mandatory.

Course Outline

Week 1

Course introduction: Overview of Programming and Problem Solving
Ethics and responsibilities in the computing profession, Problem-solving techniques, Problem-solving Case Study: Leap Year Algorithm. Topic summary and review.

Week 2

C++ Syntax and Semantics, and the Program Development Process
Elements of C++ Programs, Program Construction, Software Maintenance Case Study: Adding titles to names. Program Entry, Correction and Execution, Compiling and running a program. Problem-Solving Case Study: Printing a Chessboard. Testing and debugging. Topic summary and review.

Week 3

Numeric Types, Expressions, and Output
Overview of C++ data types, Numeric data types, Declarations for numeric types, simple arithmetric expressions, compound arithmetric expressions. Software Maintenance Case Study:Precedence Error. Function calls and library functions, formatting output, additional string operations. Problem-Solving Case Study: Mortgage Payment Calculator. Testing and debugging. Topic summary and review.

Week 4

Program Input and the Software Design Process
Getting data into programs, Interactive input/output, Noninteractive input/output, File input/output. Software Maintenance Case Study: Adding File Input/Output to a Program. Input failure, Software design methodologies, functional decomponisition. Problem Case Study: Displaying a Name in Multiple Formats. Summary, quick check, testing and debugging hints, programmming warm-up. Topic summary and review.

Week 5

Conditions, Logical Epxressions, and Selection Control Structures
Flow of control, conditions and logical expressions, the IF Statement. Software Maintenance Case Study: Incorrect Output. Nested If Statements, logical operators, testing the state of an I/O stream. Problem-Solving Case Study: BMI Calculator. Testing and debugging. Case study follow up. Topic summary and review.

Week 6

Looping
The While Statement, Phases of Loop Execution, Loops using the While Statement. Software Maintenance Case Study: Make a Program General. How to design loops, Nested logic, Problem-Solving Case Study: Recording Studio Design. Case Study follow up. Topic summary and review.

Week 7

Additional Control Structures
The Switch Statement, The Do-While Statement. Software Maintneance Case Study: Changing a Loop Implementation. The Break and Continue Statements, Guidelines for choosing a looping statement, Additional C++ Operators. Problem-Solving Case Study: The Rich Uncle. Testing and debugging. Topic summary and review.

Week 8

Functions, Scope, and Lifetime
Functional decomposition with Void functions, an overview of user-defined functions, syntax and semantics of void functions, parameters, Software maintenance Case Study: Refactoring a Program. Problem-Solving Case Study: Lawn Care Company Billing. Testing and debugging. Scope of identifiers, Lifetime of a variable, interface design, value-returning functions, type coercion in assignments, argument passing and return of a functions value. Problem-Solving Case Study: Health Profile. Testing and debugging. Topic summary and review.

Week 9

User-Defined Data Types
Built-in simple types, User-defined simple types, simple versus structured data types, records (structs). Software Maintenance Case Study: Changing a Loop Implementation, Hierarchical records, unions. Problem-Solving Case Study: Stylistical Analysis of Text. Testing and debugging. Topic summary and review.

Week 10

Arrays
One dimensional arrays, Software Maintenance Case Study: Modularizing a Program. Arrays of records, special kinds of array processing, two-dimensional arrays, passing two-dimensional arrays as arguments, processing two-dimensional arrays. Multidimensional arrays. Problem-Sloving Case Study: Calculation Exam Statistics. Problem-Sloving Case Study: Favorite Rock Group. Testing and debugging, Topic summary and review.

Week 11

Classes and Abstraction
Abstract data Types, C++ classes, information hiding, class design principles. Software Maintenance Case Study: Comparing Two "TimeOfDay" Objects. The Name ADT, composition, UML diagrams. Problem-Solving Case Study: Create and Array of Name Objects. Testing and debugging. Topic summary and review.

Week 12

Array-Based Lists
The List as and Abstract Data Type, implementation of List ADT. Software Maintenance Case Study: Enhancing Class "List" with a Sort. Sorted lists, sorted list of classes, more on UML diagrams. Problem-Solving Case Study: Calculating Exam Statistics Revisted. Testing and debugging. Topic summary and review.

Week 13

Pointers and Linked Lists
Pointers, reference types, dynamic data, sequential versus linked structures, creating a dynamic linked list: A Walk-Through example. Dynamic implemetation of ADT list, Destructors and Copy Constructors, sorted linked list. Problem-Solving Case Study: Creating a Sorted List of Entry Objects. Testing and debugging. Topic summary and review.

Week 14

Inheritance, Polymorphism, and Object-Oriented Design
Object-Oriented Programming, inheritance, dynamic binding and virtual functions, Object-Oriented Design, Implementing a design. Problem-Solving Case Study: Creating an Appointment Calendar. Testing and debugging. Topic summary and review.

Week 15

Templates, Operator Overloading, Exceptions, and Recursion
Template classes, generic functions, operator overloading, exceptions. Software Maintenance Case Study: Adding Exception to the "Date" Class. Problem-Solving Case Study: Starship Weight and Balance. Recusrion defined, recursive algorithms, simple variables and with structure variables. Recursion using pointer variables, recursion or iteration? Testing and debugging. Course summary and review, plus suggestions for further study and research.
|Return to AR&D Homepage |Online Data Communications Glossary

Contact us

Copyright ©1997-2011 Ara Research & Development.
All Rights Reserved. AR&D liability, trademark and document use rules apply. Your interactions with this site are in accordance with our privacy statement.