CMSC 21 - College of Arts and Sciences
Transcription
CMSC 21 - College of Arts and Sciences
UNIVERSITY OF THE PHILIPPINES MANILA COLLEGE OF ARTS AND SCIENCES DEPARTMENT OF PHYSICAL SCIENCES AND MATHEMATICS MATHEMATICAL AND COMPUTING SCIENCES UNIT Course Code: CMSC 21 Course Title: Fundamentals of Programming Credit Units: 3 Lecture Unit(s): 2 units; 2 hrs./week Course Description: Algorithmic analysis, data structures, algorithmic design Laboratory Unit(s): 1 unit; 3hrs./week Program/Student Outcomes 1. 2. 3. 4. 5. Incorporate the latest developments in Computer Science and Information Technology in the design of software systems for various applications Create innovative solutions through research and development projects in Computer Science Exhibit moral, ethical and social responsibilities as a professional and as a Filipino citizen Work collaboratively in teams Communicate computing solutions effectively Mapping of Course Outcomes vis-à-vis Program Outcomes 1. Develop several programs using an object-oriented programming language. 2. Evaluate algorithms. 3. Perform different operations using different data structures. INTENDED LEARNING OUTCOMES Perform mathematical proofs through induction and contradiction Determine the running time of algorithms TOPICS TEACHING-LEARNING ACTIVITIES Foundations: -Mathematical proofs -Pseudo-code Convention Lecture/Class Discussion Growth of functions: -Asymptotic notations Lecture/Class Discussion Solving recurrences: -Substitute method -Recurrence tree -Master Method ASSESSMENT TASKS REFERENCES (Book: Chapter) Oral recitation Levitin: Ch1 Homework Cormen: Ch1 Oral recitation Kleinberg: Ch2 Quizzes Levitin: Ch2 Cormen: Ch2 ConcepTest 2|P a g e | F U N D A M E N T A L S O F P R O G R A M M I N G Design Programs using C++ language Design programs utilizing elementary data structures Design programs utilizing trees and heaps Programming using C++: -Basics of C++ -Arrays and Pointers -Strings -Structures, Classes and Objects -Files and Streams Elementary Data Structures: -Stacks -Queues -Linked Lists Binary Search Trees (BST) -Tree traversals -Searching a BST -Insertion and Deletion Laboratory Works Hands-on Exercises Group Project Computer Programming Rubric** Chua: Ch1, Ch2, Ch3, Ch4, Ch5, Ch6 Malik: Ch2, Ch3, Ch8, Ch9, Ch12 Lecture/Class Discussion Oral recitation Deitel: Ch2, Ch7, Ch8, Ch9, Ch10, Ch11, Ch17 Chua: Ch8, Ch9, Ch10 Laboratory Works Problem Set Malik: Ch18, Ch19 Hands-on Exercises Deitel: Ch20 Computer Programming Rubric** Kleinberg: Ch3 Lecture/Class Discussion Board works Cormen: Ch3 Deitel: Ch20 Laboratory Works Written Exercises Levitin: Ch6 Simulations Hands-on Exercises Cormen: Ch3 Red-Black Trees (RBT) -Properties -Rotation -Insertion -Deletion Quizzes Computer Programming Rubric** Heaps -Building heaps -Heap sort algorithm Implement sorting using different algorithms Sorting Algorithms -Quick sort -Merge sort -Counting sort -Radix sort -Bucket sort Lecture/Class Discussion Written Exercises Malik: Ch10 Game Problem Set Deitel: Ch19 Hands-on Exercises Levitin: Ch3, Ch5, Ch7 Computer Programming Rubric** Cormen: Ch2 OBE SYLLABUS 3|P a g e | F U N D A M E N T A L S O F P R O G R A M M I N G Apply dynamic programming on different problems and in real-world scenarios Dynamic Programming Lecture/Class Discussion Oral recitation Chua: Ch7 Applications -Assembly-line programming -Matrix-chain multiplication -Full parenthesization -Longest common subsequence Reporting Written Exercises Malik: Ch17 Journal Reading Reporting Deitel: Ch6 Paper Kleinberg: Ch6 Recursion Levitin: Ch8 Dasgupta: Ch6 Cormen: Ch4 Instructional Materials and References: 1. 2. 3. 4. 5. 6. 7. Chua, Laboratory Modules in CMSC21 Fundamentals in Programming. Cormen, Leiserson, Rivest, Stein, Introduction to Algorithms, Third Edition, MIT Press, 2009. D.S. Malik, Thomson, C++ Programming: From Problem Analysis to Program Design, Fifth Edition, Course Technology, 2007. Deitel & Deitel, C++ How to Program, Prentice Hall, Eighth Edition, 2012. Kleinberg, Tardos, Algorithm Design, Addison-Wesley, 2005. Levitin, Introduction to the Design and Analysis of Algorithms, Third Edition, 2011. Dasgupta, et al., Algorithms, McGraw Hill, 2008. Grading System: I. Lecture a. Reporting, Exercises and Problem Set b. Long Exams (3) c. Final Exam II. Laboratory a. Exercises b. Machine Problem c. Hands-on Exams (2) [50%] 5% 30% 15% [50%] 5% 20% 25% OBE SYLLABUS 4|P a g e | F U N D A M E N T A L S O F P R O G R A M M I N G OBE SYLLABUS **Computer Science Programming Rubric Traits Specifications (50) -Output/Results (25) -Syntax/Runtime/Logic Errors (15) -Test Cases (10) Readability (15) -Variable names (10) -Indentations/white spaces (5) Documentations (15) Exceptional (1) The program works and meets all of the specifications. Acceptable (0.75) The program works with minor errors. Amateur (0.5) The program works with some major errors on some cases. Unsatisfactory (0.25) The program is producing incorrect results. The code is exceptionally well organized and very easy to follow. The code is fairly easy to read. The code is poorly organized and difficult to read. The documentation is well written and clearly explains what the code is accomplishing and how. Efficiency and Reusability(10) The code is extremely efficient and can be reused. The documentation consists of embedded comments that are somewhat useful in understanding the code. The code is fairly efficient and most of the codes can be reused. The code is readable only by someone who knows what it is supposed to be doing. The documentation consists of embedded comments with simple headers separating routines. The code is brute force and some of the codes can be reused. Delivery (10) The program was delivered on time. The code is huge and appears to be patched together and the code is not organized for reusability. The program was more than two weeks overdue. The program was delivered within the week of the due date. The program was delivered within two weeks of the due date. The documentation is simple comments and does not help the reader in understanding the codes.