Computer Programming Course Length: 2 semesters Grade Level: 12 Prerequisite: Algebra I Textbooks: Programming with Visual C++, Concepts and Projects, James Allert, Course Technology, 2009. Course Description: Students in this class will use a PC and Visual C++ to solve problems by writing and debugging programs. Visual C++ is a suitable beginner language because of its small but powerful vocabulary structure compared to other languages. The language is a general-purpose language able to handle business and scientific applications. Proper structure and procedure will be emphasized. Career opportunities will be a part of this class. Evaluations will include daily assignments, programs, and tests. Methods of Teaching: A variety of teaching methods are used for this class including demonstrations, guided writing and debugging of programs. Pre-test & Post-test: A pre-test is not used in this class. The post-test or final creating a program(s) covering the course competencies. Grading Method: Grades are determined using daily assignments, programs written, and tests. Course Outline: I. Introduction to Visual C++ A. History of hardware and software development B. The programming process C. Object-oriented languages D. Types of errors E. Creating and debugging a simple program 1. Problem analysis 2. Design and development 3. Testing II. Reading, processing, and displaying data A. Problem solving B. Data and data types Rock Creek High School Computer Programming September 2009 Page 1 III. IV. V. 1. Variables 2. Initializing variables C. Data input 1. TryParse () method 2. Arithmetic expressions 3. Arithmetic operators and strings 4. Shorthand assignment D. Data output 1. ToString () method E. Addition program Integral data A. Binary number system B. Integral data types C. Data type conversion 1. Explicit type conversion 2. Implicit type conversion D. Integer arithmetic 1. Integer division 2. Mod operator E. Binary conversion program Selection A. Control structures 1. Sequential control structures 2. Selection control structures B. Relational Operators C. Using if statements to provide a single alternative D. Using if . . . else statements to provide two alternatives E. Logical operators 1. The not operator 2. The and operator 3. The or operator F. Nested control structures G. Multiple alternative selection H. The switch statements I. Vacation planner program Repetition A. User-controlled repetition 1. Accumulating a sum and counting 2. Instance variables B. Repetition control structures 1. The while loop 2. The do . . . while loop 3. The for loop C. Common loop tasks 1. Formula translation Rock Creek High School Computer Programming September 2009 Page 2 2. Accumulating a product 3. Building a string 4. Generating random numbers 5. Finding the largest value 6. Counting specific values 7. Nested loops D. Quality control production log VI. Methods A. System-defined class methods B. The system::math class library C. System-defined instance methods D. Application methods E. Programmer-defined methods 1. Without parameters of return type 2. With value parameters 3. With reference parameters 4. With a return value F. Graphics class objects and methods G. Constants H. Planetary motion program VII. Arrays A. Array declaration and initialization B. Using arrays C. Arrays and instance methods 1. Passing a single element into a method by value 2. Passing a single element into a method by reference 3. Passing an entire array into a method D. Sequential search 1. With a for loop 2. Counting comparisons 3. Search comparison log E. Parallel arrays F. Multidimensional arrays G. Classroom seating program VIII. Binary search A. Search sorted list B. Binary search algorithm C. Search analysis 1. Direct lookup 2. Sequential search 3. Binary search D. Searching for Strings 1. The array class 2. String operations E. Video store inventory program Rock Creek High School Computer Programming September 2009 Page 3 IX. X. XI. XII. Sorting A. Exchanging data values in an array B. Sorting strategies C. The selection sort D. The bubble sort E. The insertion sort F. Comparing sorting algorithms G. Vertical bar chart Recursion A. Factorial numbers B. Recursion versus iteration C. Creating fractal images D. Computer-generated fractal images 1. Drawing lines with DrawLine () 2. Recursive DrawBranch () method E. Fractal image program Pointers A. Pointer concepts 1. Memory cell address 2. Pointer variables 3. Accessing data through pointers B. Pointers and methods C. Pointer return types D. Pointers and arrays E. Pointer arithmetic F. Deleting pointers G. Arrays of pointers H. The Swap() method to sorting with pointers I. Sorting with a point array Linked lists A. List data structure B. Problem with arrays C. Linked lists 1. Creating a linked list 2. Inserting and deleting a node 3. Efficiency D. Class definitions E. The Node class 1. Constructors 2. Destructors F. Class diagrams G. Class definition files 1. Header files 2. Implementation files H. Client code Rock Creek High School Computer Programming September 2009 Page 4 XIII. I. Using node objects 1. Instantiating Node objects 2. Accessing Node attributes 3. Accessing static variables J. Linked list program Object-oriented programming A. The Frog class definition B. Instantiation and use C. Initializing constructors D. Data hiding E. Accessor and mutator methods F. Utility methods G. Client code H. Maze program Rock Creek High School Computer Programming September 2009 Page 5 Rock Creek High School U.S.D. 323 COURSE TITLE: Computer Programming Hardware Configuration Item Lab Configuration: Operating System Microsoft Windows XP Professional, SP3 Processor Intel Core 2 Duo E4500 2.2 GHz Memory 2 GB Hard Drive Size 80 GB CD ROM or DVD LG 20X DVD+-RW Monitors 17" 700:1 LCD Flat Panel with Speakers Video Ram Onboard Graphics, Intel GMA X3100 Internet Access Wireless 1500 kbps Network Windows 2003 Rock Creek High School Computer Programming September 2009 Page 6 Rock Creek High School U.S.D. 323 COURSE TITLE: Computer Programming Peripheral Devices and Other Technology Item Comments Printer HP Color Laserjet 3600 Scanner HP Scanjet 8250 Computer Projector Epson PowerLite Rock Creek High School Computer Programming September 2009 Page 7 Rock Creek High School U.S.D. 323 COURSE TITLE: Computer Programming Software Configuration Software Package Software Brand Name and Version # Operating System Microsoft Windows XP Professional, SP 3 Programming Microsoft Visual C++ 2008, Express Edition Word Processor Microsoft Word 2007 Telecommunications Internet Explorer 7.0 Rock Creek High School Computer Programming September 2009 Page 8