Syllabus Sections
Publish Date
03/23/2020 00:03:24
Programming Fundamentals II
COSC-1337
Credit Spring 2020
01/21/2020 - 05/17/2020
Course Information
Section 007
Lecture
TTh 17:40 - 19:00
RRC2 2220.00
Arturo Gonzalez
Section 007
Laboratory
TTh 19:00 - 19:25
RRC2 2220.00
Arturo Gonzalez
Office Hours
-
M W
5:00pm - 5:30
Highland Campus 1431
-
T Th
5:00pm - 5:30pm
Round Rock Campus 2210
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).
Concise C++ Beginner Tutorial
https://www.programiz.com/cpp-programming
Other Resources
Free Fundamentals of C++ book: https://ia600701.us.archive.org/34/items/2018FundamentalsOfCppProgramming/2018_fundamentals-of-cpp-programming.pdf
C++ for Python Programmers: https://runestone.academy/runestone/books/published/cpp4python/index.html
C++ University of Cambridge: http://www-h.eng.cam.ac.uk/help/tpl/languages/C++.html
Course Requirements
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 | 20% | 90% - 100% | = A | |
Homework Assignments | 30% | 80% - 89% | = B | |
Quizzes | 10% | 70% - 79% | = C | |
Exams (2) | 40% | 60% - 69% | = D | |
TOTAL | 100% | 0 % - 59% | = F |
All quizzes, exams, and assignments will be given and submitted through Blackboard. They are typically graded within one week after the assignment due date. Grades are recorded in Blackboard and may be accessed via the My Grades link.
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 | Topics Schedule | Assignments | Course Objective | |
Week 1 |
2.1-2.8, 2.10-2.17, and 6.2-6.7 |
Intro: Types, Variables, Objects(string), Functions and Unit Testing |
Class Exercise 1
Homework 1
|
Quiz 1 |
1,5,6,7 & 8 | |
Week 2 | 3.1,3.8(strings), 4.1-4.4, 4.6, 4.7, 5.12, 12.5, 13.1-13.3 |
Decision Structures, Input/output streams, char and strings, and functions |
Class Exercise 2
Homework 2
|
Quiz 2 |
1,5,6,7 & 8 | |
Week 3 |
Decision Structures(continued) |
Class Exercise 3
Homework 3
|
Quiz 3 | 1,5,6,7 & 8 | ||
Week 4 |
5.1,5.2,5.7,5.8,10.1 |
Loops, References, functions |
Class Exercise 4 Homework 4 |
Quiz 4 |
1,5,6,7 & 8 | |
Week 5 |
8.12, 17.3 |
Vectors |
Class Exercise 5 Homework 5 |
Quiz 5 |
1,3,5,6,7 & 8 | |
Week 6 | 7.1-7.5,7.11, 7.6,7.10,11.6 | Object-oriented programming: Classes,Constructor, Composition |
Class Exercise 6 Homework 6 |
Quiz 6 |
1,3,5,6,7 & 8 | |
Week 7 |
10.13,11.10,11.11, 11.12,11.14 |
Object-oriented Programming: Operator overloading,
Inheritance, Member function override
|
Class Exercise 7 Homework 7 |
Quiz 7 |
1,3,4,5,6,7&8 | |
Week 8 |
15.1-15.4 |
Midterm Exam Object-oriented programming: Polymorphism |
|
1,3,5,6,7 & 8 | ||
3/16 | Spring Break | |||||
Week 9 | 3/23 | Spring Break | ||||
Week 10 |
Regroup- Syllabus, Distance Learning Object-oriented Review Object-oriented Polymorphism, Smart Pointers |
|||||
Week 11 |
Object-oriented programming: Virtual Functions, and Abstract classes File input/output |
Class Exercise 8
Homework 8
|
Quiz 8 | 1,3,5,6 & 8 | ||
Week 12 | 10.1-10.2,10.4,10.5 | Memory Management: References and Pointers |
Class Exercise 9 Homework 9 |
Quiz 9 | 1,3,4,5,6,7 & 8 | |
Week 13 | 10.7,10.9,10.10 |
Memory Management: Pointers, Arrays, Destructor |
Class Exericse 10 Homework 10 |
Quiz 10 | 1,3,4,5,6,7 & 8 | |
Week 14 | 10.11 |
Memory Management:(pointers),Templates, Char arrays |
Class Exercise 11 Homework 11 |
Quiz 11 | 1,3,4,5,6,7 & 8 | |
Week 15 | 10.3 |
Recursion Final Exam |
1,2,3,4,5,6,7 & 8 |