Syllabus Sections
Publish Date
01/12/2021 20:07:43
Programming Fundamentals II
COSC-1337
Credit Spring 2021
01/19/2021 - 05/16/2021
Course Information
Section 007
Distance Learning
TTh 17:40 - 19:00
DLS DIL
Arturo Gonzalez
Section 007
Laboratory
TTh 19:00 - 19:25
DLS DIL
Arturo Gonzalez
Section 011
Distance Learning
MW 17:30 - 18:50
DLS DIL
Arturo Gonzalez
Section 011
Laboratory
MW 18:50 - 19:15
DLS DIL
Arturo Gonzalez
Office Hours
-
M T W Th
5:00pm - 5:30pm
Virtual Office Hour: Google Meet
Copy and paste link below to your Internet browser:
https://meet.google.com/wmw-qxrr-exg
Telephone:
669-220-6378 PIN: 563 448 076#
Student Learning Outcomes/Learning Objectives
Course Objectives/Learning Outcomes:
1. Demonstrate a thorough understanding of modular programming by designing programs that require the use of programmer-defined functions.
2. Demonstrate a thorough understanding of arrays by designing and implementing programs that search and sort arrays.
3. Demonstrate a thorough understanding of the object-oriented programming concepts of encapsulation, data abstraction and composition by designing and implementing classes including the use of overloaded functions and constructors.
4. Demonstrate a thorough understanding of the concept of pointers and dynamic memory allocation by designing and implementing programs using pointers and dynamic memory allocation.
5. Demonstrate a thorough understanding of the implementation of programmer-defined functions and classes by writing code, performing unit testing and debugging of multiple complex programs.
6. Demonstrate good documentation style in all of the programs written in this course.
7. Demonstrate proficiency in implementing data validation code, performing unit testing, and developing test plans while implementing robust solutions to the assignments in this course.
8. Demonstrate a thorough understanding of stream input/output for both console and files.
9. Demonstrate an understanding of the differences between C and C++ in the areas of strings, pass by reference/passing pointers, and structs by designing and implementing programs that use C strings, C++ strings, C language structs and classes.
Programming Competencies
-
Develop programs using procedural and object-oriented programming concepts.
- Design, code and test programs that use input, output and arithmetic operations.
- Design, code and test programs that use branching and looping control structures.
- Design, code and test modular programs that contain multiple functions.
- Design, code and test programs that contain programmer-defined data types (classes).
-
Develop programs using C structs, classes and arrays.
- Design, code and test programs that use arrays and structures (arrays of structures).
- Design, code and test programs that use two-dimensional arrays.
- Design, code and test programs that use arrays and sequential search.
-
Develop programs using pointers, dynamic memory allocation, files and strings.
- Design, code and test programs that use pointers, dynamically-allocated arrays and sorting.
- Design, code and test programs that use C++ string
SCANS (Secretary’s Commission on Achieving Necessary Skills):
Refer to http://www.austincc.edu/cit/courses/scans.pdf for a complete definition and explanation of SCANS. The following list summarizes the SCANS competencies addressed in this particular course:
RESOURCES 1.1 Manages Time |
INTERPERSONAL 2.1 Participates as a member of a team 2.6 Works with Cultural Diversity |
INFORMATION 3.1 Acquires and Evaluates Information 3.2 Organizes and Maintains Information 3.3 Uses Computers to Process Information |
SYSTEMS 4.1 Understands Systems 4.2 Monitor and Corrects Performance 4.3 Improve and Designs Systems |
TECHNOLOGY 5.1 Selects Technology 5.2 Applies Technology to Task 5.3 Maintains and Troubleshoots Technology
|
BASIC SKILLS 6.1 Reading 6.2 Writing 6.3 Arithmetic 6.4 Mathematics 6.5 Listening |
THINKING SKILLS 7.2 Decision Making 7.3 Problem Solving 7.4 Mental Visualization 7.5 Knowing How to Learn 7.6 Reasoning |
PERSONAL SKILLS 8.1 Responsibility 8.2 Self-Esteem 8.3 Sociability 8.4 Self-Management 8.5 Integrity/Honesty |
Readings
Textbook:
Starting out with C++: Early Objects (10th edition). Gaddis, Walters, Muganda, Pearson, 2020. (ISBN 9780135235003).
Course Requirements
Instruction Methodology: Class will meet virtually on Google Meet per class schedule. Virtual office hours will be via Google Meet.
Blackboard
Course Description: Review of control structures and data types with emphasis on structured data types. Applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Includes basic analysis of algorithms, searching and sorting techniques, and an introduction to software engineering.
This course is an introduction to the C++ programming language and its subset, the C programming language. Program structure, block, storage types, console and file I/O, functions, arrays, strings, pointers, call-by-reference, call-by-value, and dynamic memory allocation will be discussed. The concept and use of classes will be covered in some detail. The differences between C++ and C will also be discussed.
Prerequisite: COSC 1336 or instructional program approval. Course Type: T.
Course Rationale: This course is designed to teach students the C++ programming language and introductory and intermediate programming concepts with examples and applications using the C++ language. The course builds and extends topics covered in the prerequisite course, COSC 1336 and prepares students for more advanced programming courses such as ITSE 2331 (Advanced C++ Programming) as well as for entry level programming employment. The course is required for an Associate Degree in several Computer Information Systems and Computer Science degree areas.
Grading Method | Grading Scale | |||
Class Assignments | 10% | 90% - 100% | = A | |
Homework Assignments | 20% | 80% - 89% | = B | |
Quizzes | 30% | 70% - 79% | = C | |
Exams (2) | 40% | 60% - 69% | = D | |
TOTAL | 100% | 0 % - 59% | = F |
Exams, Assignments, and Quizzes
Class assignments must be completed during corresponding class time.
Homework Assignments need to be submitted by the specified due-date as listed in Course Information/Schedule section in Blackboard and also provided in each assignment instructions. If you miss the due date, you will be running behind schedule and may have trouble completing the course.
There will be 2 exams given during the semester to assess student mastery of concepts and each will consist of practical programming problems.
Late Assignment and Exam Policy
Students are only allowed up to two (2) late homework assignments in this class. Late homework assignments will only be accepted up to 48 hours after its corresponding due date with a 25 points off penalty. Any late homework assignment submitted after 48 hours of scheduled due date and/or submitted after the 2 late homework assignment quote has been reached will automatically get a grade of 0 (zero).
Course Subjects
Week | Week of | Reading | Topic-Updated Schedule | Assignment | |
Week 1 | 1/18 |
2.1- 2.10-2.17, and 6.2, 6.4, 6.6 |
Syllabus Review C++ Dev Tools Intro to C++ Types, Functions, and Testing |
Class Exercise 0
|
|
Week 2 | 1/25 | 3.1,3.8(strings), , 5.12, 12.5, 13.1-13.3 |
Input/output streams, file input/output, char and strings |
Class Exercise 1
Homework 1
|
Quiz 1 |
Week 3 | 2/01 | 4.1-4.4, 4.6, 4.7 | Decision Structures |
Class Exercise 2
Homework 2
|
Quiz 2 |
Week 4 | 2/08 |
5.1,5.2, 5.7, 5.8, 10.1 6.1-6.14 |
Iteration References Functions |
Class Exercise 3 Homework 3 |
Quiz 3 |
Week 5 | 2/15 |
8.12 |
Vectors Intro to Object-oriented programming |
Class Exercise 4 Homework 4 |
Quiz 4 |
Week 6 | 2/22 |
7.4-7.10 |
Object-oriented programming: Classes,Constructor, Composition |
Class Exercise 5 Homework 5 |
Quiz 5 |
Week 7 | 3/01 |
7.10-7.13 11.1-11.4 |
Object-oriented Programming:
Static members, friends, Operator overloading |
Class Exercise 6 Homework 6 |
Quiz 6 |
Week 8 | 3/08 |
11.11, 11.12 |
3/12 Midterm Due Object-oriented programming: Inheritance |
|
|
3/15 | Spring Break | Spring Break | Spring Break | Spring Break | |
Week 9 | 3/22 |
10.13 15.1-15.4 |
Object-oriented programming: Smart Pointers, Virtual Functions, and Abstract classes |
Class Exercise 7
Homework 7
|
Quiz 7 |
Week 10 | 3/29 | 5.12, 13.1-13.7 |
Abstract classes(cont) File Input and Output |
Class Exercise 8 Homework 8 |
Quiz 8 |
Week 11 | 4/05 | 8.1-8.13 |
Memory Management:
Stack Arrays |
Class Exercise 9
Homework 9 |
Quiz 9 |
Week 12 | 4/12 | 10.1, 10.2, 10.4-10.7,10.9, 10.10 |
Memory Management:
References and pointers,
|
Class Exercise 10
Homework 10 |
Quiz 10 |
Week 13 | 4/19 | 10.1-10.8 |
Memory Management: Dynamic arrays |
Class Exericse 11 Homework 11 |
Quiz 11 |
Week 14 | 04/26 | 11.4,11.5, 11.7, 11.7 |
Memory Management:Class memory mgmt destructor |
Class Exercise 12 Homework 12 |
Quiz 12 |
Week 15 | 05/03 | 8.1-8.11, 8.13 |
Class memory mgmt, Intro to Algorithm Analysis/ Recursion |
Class Exercise 13 | Quiz 13 |
Week 16 | 05/10 | 16.2, 16.3, Reference Material |
Templates and Recursion
Object-oriented Programming:
Graphics (wxWidgets)
Final Exam |
Final Exam |