COURSE SYLLABUS COURSE INFORMATION: Course Code: College: Department: Degree Program: Faculty Member: Consultation Period: Contact Information:
SDF102 – Intermediate Programming
Course Description:
The course trains students on the proper and judicious use of recursive code structures, proper parameter passing methods, data structures beyond primitive types and simple arrays of primitive types, and text files. The course also trains students on how to plan and execute ways to test their code with respect to common and boundary cases and on how to properly format and document their code with respect to appropriate coding standards.
Computer Studies Computer Science BS Computer Science, BS Information Technology, BS Information Systems Juan Punong Tanod 2:30-4:00 Monday to Wednesday
[email protected]
The coverage of this course extends the topics of programming fundamentals by covering the parameter passing mechanisms of user-defined functions, definition and applications of recursive functions, specification and implementation of arrays, matrices, records, and linked-lists, and use of files. COURSE OUTCOMES (CO): On the completion of the course, student is expected to be able to do the following: Graduate Outcomes Apply knowledge of computing fundamentals, knowledge of a computing specialization, and mathematics, science, and domain knowledge appropriate for the computing specialization to the abstraction and conceptualization of computing models from defined problems and requirements. An ability to apply mathematical foundations, algorithmic principles and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices Create, select, adapt and apply appropriate techniques, resources and modern computing tools to complex computing activities, with an understanding of the limitations to accomplish a common goal
page 1 OBE - COURSE SYLLABUS
Course Outcomes
Design and implement separate programs to solve a set of computing problems, based on given specifications, by applying their knowledge of: CO1
CO2 CO3
(1) fundamentals of programming, (2) user-defined functions and parameter passing mechanisms, (3) recursive functions, (4) intermediate data structures (arrays, matrices, records, and linked-lists), (5) files.
Apply an appropriate coding standard with proper documentation in order to come up with a readable, understandable and maintainable program code. Select and apply appropriate debugging and testing techniques to ensure the correctness of a program and compliance to given specifications, to solve a computing problem
LEARNING OUTPUTS (LO): As evidence of attaining the above learning outcomes, the student has to do and submit the following:
LO1
Learning Output
Description and other Details
Set of Compiled Software Solutions
Given the programming guidelines and a set of computing problem with technical specifications, each student must design and implement an appropriate solution by applying their knowledge of: fundamentals of programming, user-defined functions (which may or may not be recursive) and parameter passing mechanisms, appropriate intermediate data structures (arrays, matrices, records, and linked-lists), and text files.
Course Outcomes it represents
CO1
The solution must be compiled without syntax errors nor warnings. The compiled software must run on a specific operating system. LO2
Set of Formatted Source Code (Soft Copies)
Each source code of the solutions to programming exercises and programming challenge problems must be formatted using an appropriate coding standard. Each source code file must be prepared separately with the following documentation header information: 1. 2. 3. 4.
Student Information (ID, Name, Course, Major) Date of Completion Declaration of Known Bugs Brief Description of the source file
CO2
Each function or method must have the following documentation specifications: 1. Brief Description of what the routine does 2. Brief Description of parameters and their use 3. Side-effect(s) of the routine to the parameters 4. Assumptions and Assertions 5. Expected return value LO3
Debugging and Testing Plan and Results
For each challenge programming problem, the debugging and testing plan must be articulated in a report included in the source code. The report must contain the following: 1. 2. 3. 4. 5.
2
Student Information (ID, Name, Course, Major) Testing Plan and Selection of Boundary condition inputs Summary of the results of the testing plan Known bugs and debugging plans Results of the debugging plans with description why the results are problematic.
CO3
RUBRIC TO ASSESS LEARNING OUTPUTS (R): OTHER REQUIREMENTS AND ASSESSMENTS (AA) Aside from the final output, the student will be assessed at other times during the term by the following: Assessment Activity CFD DBT PRG MID FIN
Description and other Details
Course Outcomes it represents
Code Formatting and Documenting Exercises using a Style Guide (includes documenting user-defined functions and their respective parameters) Debugging and Testing Exercise Programming Exercise Midterm Exam: A Comprehensive Exam covering the first half of the knowledge areas required in the course Final Exam: A Comprehensive Exam covering the knowledge areas required in the course
CO2 CO3 CO1 CO1 CO1
GRADING SYSTEM: The final grade in this course will be composed of the following items and their weights in the final grade computation: Assessment Item CFD DBT PRG MID FIN
Grade Source (Score or Rubric Grade)
Percentage of Final Grade
Rubric for adherance to appropriate coding style and documentation guide Rubric for debugging and testing plan Rubric for programming exercise Score for midterm exam Score for final exam
Passing Grade Passing Grade conditions:
15 % 10 % 15 % 20 % 30 %
1.0 (or D) Student should be able to obtain an average score of 60 / 100
LEARNING PLAN: In order to achieve the outcomes of this course, learners will go through this learning plan Course Outcome
Intended Learning Outcomes (ILO)
CO1
Recall the topics to be covered and relate those topics to the coverage of Programming Fundamentals. Recall the policies and guidelines Express the expected requirements to be delivered to pass the course.
page 3 OBE - COURSE SYLLABUS
Topics Course Syllabus and Laboratory Policies and Guidelines
Week
Learning Activities Lecture
Assessment Activities
References Course Syllabus
week 1 Laboratory Policies and Guidelines
Course Outcome
Intended Learning Outcomes (ILO)
CO1
Explain the importance of code abstraction in programming.
Topics
User-defined functions and parameters
Week
weeks 1 to 2
Learning Activities
Assessment Activities
Lecture Demonstration Recitation
References
Deitel and Deitel
Formulate algorithms that attempt to solve specific problems and show why it works. Examine a given algorithm and prepare correct test cases (including boundary cases) to check if the algorithm works as expected. Formulate correct user-defined functions to implement algorithms to solve specific problems. Design the function interface with proper data sources and return values. CO3
Analyze the data movements and computations in a program through code tracing and assess whether those make sense.
Individual Tracing and Debugging Exercise
DTE
Handout
Laboratory Exercises
LEX, CFE, CDE
Deitel and Deitel
Correct the mistakes in the source code if there are. CO1,CO2
4
Formulate correct solutions to 5 laboratory programming exercises involving user-defined
Savitch Koenig and
Course Outcome
Intended Learning Outcomes (ILO)
Topics
Week
Learning Activities
Assessment Activities
functions.
References Moo
Apply correct coding style on the formulated solutions. CO1
Differentiate pass by reference from pass by value.
Parameter passing mechanisms weeks 3 to 4
Lecture Demonstration Recitation
Deitel and Deitel
Choose the proper parameter passing mechanism for a given procedural abstraction. CO1, CO2
Formulate correct solutions to 5 laboratory programming exercises involving parameter passing mechanisms.
Laboratory Exercises
LEX, CFE, CDE
Deitel and Deitel Savitch Koenig and Moo
Apply correct coding style on the formulated solutions. CO1
Explain how to properly specify recursive definition suitable for coding. Demonstrate how recursive function calls are visualized using function call trees. Draw a tree diagram that depicts the succeeding function calls given an initial function call. Formulate recursive algorithms that attempt to solve specific problems and show why it works.
page 5 OBE - COURSE SYLLABUS
Recursion and function call visualization
weeks 5 to 6
Lecture Demonstration Board Work
Deitel and Deitel Handout
Course Outcome
Intended Learning Outcomes (ILO)
Topics
Week
Learning Activities
Assessment Activities
References
Laboratory Exercises
LEX, CFE, CDE
Deitel and Deitel
Examine a given recursive algorithm and prepare correct test cases (including boundary cases) to check if the recursive algorithm works as expected. Formulate correct user-defined recursive functions to implement recursive algorithms to solve specific problems. CO1, CO2
Formulate correct solutions to 5 laboratory programming exercises involving recursive functions.
Savitch Koenig and Moo
Apply correct coding style on the formulated solutions. CO1
Explain how arrays are represented in memory and draw a depiction of an array declaration.
Arrays Sorting Linear Search Binary Search
weeks 7 to 9
Lecture Demonstration Board Work Seat Work
Deitel and Deitel Handout
Explain how sorting works. Explain how linear and binary search works. CO3
Analyze the data movements and computations in a program through code tracing and assess whether those make sense. Correct the mistakes in the source code if
6
Paired Students Tracing and Debugging Exercise
DTE
Handout
Course Outcome
Intended Learning Outcomes (ILO)
Topics
Week
Learning Activities
Assessment Activities
References
Laboratory Exercises
LEX, CFE, CDE
Deitel and Deitel
there are. CO1,CO2
Formulate correct solutions to 5 laboratory programming exercises involving arrays.
Savitch Koenig and Moo
Apply correct coding style on the formulated solutions.
CO1
Explain how matrices are represented in memory and draw a depiction of a matrix declaration.
Matrices and Applications
2 weeks 10 to 11
Lecture Demonstration Recitation
Design solutions to computing problems that employ the use of matrices as main data structure. CO3
Analyze the data movements and computations in a program through code tracing and assess whether those make sense.
Individual Tracing and Debugging Exercise
DTE
Laboratory Exercises
LEX, CFE, CDE
Correct the mistakes in the source code if there are. CO1, CO2
Formulate correct solutions to 5 laboratory programming exercises involving matrices. Apply correct coding style on the formulated solutions.
page 7 OBE - COURSE SYLLABUS
Deitel and Deitel Savitch Koenig and Moo
Course Outcome
Intended Learning Outcomes (ILO)
Topics
Week
Learning Activities
Assessment Activities
References
Midterm Exam CO1
Explain how records are represented in memory and how it organizes data.
Record Structures and Applications
weeks 12-13
Lecture Demonstration Recitation
Design solutions to computing problems that employ the use of records as main data structure. CO3
Analyze the data movements and computations in a program through code tracing and assess whether those make sense.
Individual Tracing and Debugging Exercise
DTE
Laboratory Exercises
LEX, CFE, CDE
Correct the mistakes in the source code if there are. CO1, CO2
Formulate correct solutions to 5 laboratory programming exercises involving record structures.
Savitch Koenig and Moo
Apply correct coding style on the formulated solutions. CO1
Explain how linked lists are represented in memory and how data stored in it are accessed. Design record declarations that will effectively capture data using linkedlists. Compare and contrast array of records from linkedlist of records with
8
Deitel and Deitel
Linked list and Applications weeks 14-17
Lecture Demonstration Board Work
Course Outcome
Intended Learning Outcomes (ILO)
Topics
Week
Learning Activities
Assessment Activities
Paired Student Tracing and Debugging Exercise
DTE
Laboratory Exercises
LEX, CFE, CDE
References
emphasis on advantages and disadvantages of each structure. CO3
Analyze the data movements and computations in a program through code tracing and assess whether those make sense. Correct the mistakes in the source code if there are.
CO1, CO2
Formulate correct solutions to 5 laboratory programming exercises involving linked list.
Deitel and Deitel Savitch Koenig and Moo
Apply correct coding style on the formulated solutions. CO1
Explain how text files are created, updated, and deleted through a software developed using a general purpose programming language.
Text Files
Lecture Demonstration week 18
Demonstrate the use of text files in designing solutions to solve specific computing problems. CO1, CO2
Formulate correct solutions to 5 laboratory programming exercises involving text files.
page 9 OBE - COURSE SYLLABUS
Laboratory Exercises
LEX, CFE, CDE
Deitel and Deitel Savitch Koenig and Moo
Course Outcome
Intended Learning Outcomes (ILO)
Topics
Week
Learning Activities
Assessment Activities
References
Apply correct coding style on the formulated solutions. Final Exam
REFERENCES: 1. 2. 3.
Deitel and Deitel, C++ How to program, 7th Edition, (c) 2010 by Pearson Education. Walter Savitch, Problem Solving with C++: The Object of Programming, 4th Ed, (c) 2003 by Pearson Andrew Koenig and Barbara E. Moo, Accelerated C++: Practical Programing by Example, Addison Wesley, (c) 2000 by AT&T, Inc. and Barbara E. Moo.
CLASSROOM POLICIES: The provisions articulated in the Student Manual regarding uniform, absences, and late exams apply.
10