AP Computer Science A

Syllabus [C2]

Course Resources

  • Horstmann, Cay. Java Concepts. 4th ed. Hoboken, N.J.: Wiley, 2006. (Referred to as Text)
  • Supplements from http://www.wiley.com/college/horstmann (Referred to as Online Supplement)
  • Trees, Frances P. AP Study Guide. 4th ed. Hoboken, N.J.: Wiley, 2006 (Referred to as APSG)
  • College Board. AP® GridWorld Case Study. New York: College Entrance Examination Board, 2007.

Curricular Requirements

  • C2 – The course includes all of the topics listed in the “Computer Science A” Column of the Topic Outline in the AP Computer Science Course Description.
  • C3 – The Course teaches students to design and implement computer-based solutions to problems in a variety of application areas.
  • C4 – The course teaches students to use and implement commonly used algorithms and data structures.
  • C5 – The course students to develop and select appropriate algorithms and data structures to solve problems.
  • C6 – The course teaches students to code fluently in an object-oriented paradigm using the programming language Java. The course teaches students to use standard library classes from the AP Java subset delineated in Appendixes A and B of the AP Computer Science Course Description.
  • C7 – The course teaches students to read and understand a large program consisting of several classes and interacting objects, and enables students to read and understand the current AP Computer Science Case Study posted on AP Central.
  • C8 – The course teaches students to identify the major hardware and software components of a computer system, their relationship to one another, and the roles of these components within the system.
  • C9 – The course teaches students to recognize the ethical and social implications of computer use.

Course Outline

Chapter 1: An Introduction to Computers [C3][C6][C8][C9]

  • What is programming. (p. 2)
  • The Anatomy of a Computer. (p. 3)
  • Translating Human Readable Programs to Machine Codes. (p. 8)
  • The Java Programming Language. (p. 10)
  • Becoming Familiar with Your Computer. (p. 12)
  • Compiling a Simple Program. (p. 17)
  • Errors. (p. 23)
  • The Compilation Project. (p. 25)
  • Discuss computing ethics by examining the schools Acceptable Computer Use Policy and code of conduct.
  • At the following websites:
  • Introduction to the class and Computer Laboratory
  • Explore School Network
  • Set up network folders for class
  • Explore and investigate several popular Java Compilers on the Companion website
  • Explore JCreator Pro IDE that will be used in the lab
  • Self Check: 1-3 (p. 3), 4, 5 (p. 7), 6, 7 (p. 10), 8, 9 (p. 12), 10, 11 (p. 15), 12-14 (p. 22), 15, 16 (p. 24), 17, 18 (p. 27)
  • Review Exercises R1.1- R1.12 (pp. 29-30)
  • Programming Projects: P1.4 (p. 30), P1.5 (p.30), P1.6 (p. 30)
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 14-16

Chapter 2: Using Objects [C3][C4][C5][C6]

  • Types and Variables. (p. 34)
  • Naming conventions, int, double, String and char
  • The Assignment Operator. (p. 36)
  • Objects, Classes and Methods. (p.37)
  • Example String class
  • Methods, Parameters and Return Values. (p. 40)
  • Explicit and Implicit parameters
  • Number Types. (p. 43)
  • Primitive types: int and double
  • Constructing Objects. (p. 44)
  • new operator
  • Accessor and Mutator Methods. (p. 46)
  • Implementing a Test Program. (p. 47)
  • Provide a new class
  • Supply a main method
  • Construct one or more objects in main method
  • Apply methods to objects
  • Display results of the method calls
  • The API Documentation. (p. 49)
  • Object References. (p. 52)
  • Self Check: 1-3 (p. 36), 4, 5 (p. 37), 6-8 (p. 39), 9-12 (p. 42), 13-15 (p. 44), 16, 17 (p. 46), 18, 19 (p. 47), 20, 21 (p. 48), 22, 23 (p. 52), 24, 25 (P. 54)
  • Review Exercises R2.1- R2.12 (pp. 58-59)
  • Programming Projects – assignments of Classes that students will complete in which they are given a description that they must choose the appropriate representation for that class.
  • P2.1 (p. 59) use accessor methods getWidth() and getheight() to compute area
  • P2.2 (p.59) use accessor methods getWidth() and getheight() to compute perimeter
  • P2.7 (p. 60) use Random class to implement a random number generator for a die (1-6)
  • P2.8 (p. 61) use Random class to implement a random number generator for a lottery combination for 6 numbers (1-49)
  • P2.9 (p. 61) encode a string by finding and replacing letters using the replace method
  • AP Study Guide
    • Multiple Choice: 1-10; pp. 24-26

Chapter 3: Implementing Classes [C3][C4][C5][C6][C7]

  • Black Boxes. (p. 66)
  • Design and Public Interface of a Class. (p. 69)
  • Commenting the Public Interface. (p. 74)
  • Instance Fields. (p. 77)
  • Implementing Constructors and Methods. (p.79)
  • Testing a Class. (p. 82)
  • Categories of Variables. (p. 88)
  • Implicit and Explicit Method Parameters. (p. 91)
  • Self Check: 1, 2 (p. 69), 3, 4 (p. 73), 5, 6 (p. 76), 7, 8 (p. 79), 9, 10 (p. 82), 11, 12 (p. 84), 13, 14 (p. 90), 15-16 (p. 92)
  • Review Exercises R3.1- R3.12 (pp. 97-98)
  • Programming Exercises: P3.1 (p. 98) BankAccount.java, P3.2 (p. 98) BankAccount2.java, P3.3 (p. 98), SavingsAccount.java, P3.6 (p. 99) Car.java, P3.7 (p. 99) Student.java, P3.12 (p. 99) RoachPopulation.java, P3.14 (p. 100) VotingMachine.java
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 39-43
    • Free Response: 1-2; pp. 43-45

Chapter 4: Fundamental Data Types [C3][C4][C5][C6]

  • Number Types. (p. 104)
  • Constants. (p. 110)
  • Assignment, Increment, and Decrement. (p. 116)
  • Arithmetic Operations and Mathematical Functions. (p. 118)
  • Calling Static Methods. (p. 123)
  • Strings. (p.128)
  • Reading Input. (p. 135)
  • Self Check: 1-3 (p. 106), 4, 5 (p. 114), 6, 7 (p. 117), 8-10 (p. 121), 11, 12 (p. 124), 13, 14 (p. 130), 15, 16 (p. 137)
  • Review Exercises R4.2- R4.16 EVEN(pp. 141-143)
  • Programming Exercises – Students will need time to practice how the different data types (double and int), relate when they are used in mathematical operations. P4.1 (p. 144) CashRegister2.java, P4.4 (p. 145) Pair.java and PairTest.java, P4.6 (p. 145) Size.java, P4.11(p. 146) GivingChange.java, P4.13 (p. 147) , QuadraticEquation.java, P4.18 (p. 148) EasterSunday.java
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 58-61
    • Free Response: 1-2; pp. 61-64

Chapter 5: Graphics (Omitted)

Chapter 6: Decisions [C3][C4][C5][C6]

  • The if Statement. (p.190)
  • Comparing Values. (p. 196)
  • Multiple Alternatives. (p. 201)
  • Using Boolean Expressions. (p. 213)
  • Guess My Number game
  • Self Check: 1, 2 (p. 193), 3, 4 (p. 200), 5, 6 (p. 210), 7, 8 (p. 219)
  • Review Exercises R6.1, R6.2, R6.3, R6.6, R6.8, R6.10, R6.12, R6.13, R6.16 (pp. 223-225)
  • Programming Exercises: P6.1 (p. 225) QuadraticEquation.java and QuadraticEquationTester.java, P6.4 (p. 226) IfSort.java, P6.7 (p. 227) CharTest.java, P6.8 (p. 227) IfThenTest.java, P6.12 (p. 228) LeapYear.java, P6.17 (p. 228) ConversionTest.java
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 77-81
    • Free Response: 1-2; pp. 81-84

Chapter 7: Iteration [C3][C4][C5][C6]

  • while Loops.(p. 232)
  • for loops. (p. 241)
  • Nested Loops. (p. 248)
  • Processing Sentinel Values. (p. 251)
  • Random Numbers and Stimulations. (p. 260)
  • Euclidean Algorithm program
  • Self Check: 1, 2 (p. 236), 3, 4 (p. 245), 5, 6 (p. 250), 7, 8 (p. 254), 9, 10 (p. 265)
  • Review Exercises R7.1, R7.2, R7.5, R7.6, R7.8, R7.10, R7.11, R7.13, (pp. 269-270)
  • Programming Exercises: P7.1 (p. 270) CurrencyConversion.java, P7.3 (p. 271) ProjectileFlight.java, P7.5 (p. 272) FibonacciSequence.java, P7.11 (p. 273) PrimeNumbers.java, P7.15 (p. 274) , RandomDataSet.java
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 94-101
    • Free Response: 1-2; pp. 101-105

Chapter 8: Arrays and Array Lists [C3][C4][C5][C6]

  • Arrays. (p. 280)
  • Arrays Lists. (p. 284)
  • Wrappers and Auto-Boxing. (p. 290)
  • The Generalized for Loop. (p. 292)
  • Simple Array Algorithms. (p. 293)
  • Two-Dimensional Arrays. (p. 298)
  • Copying Arrays. (p. 303)
  • Self Check: 1, 2 (p. 283), 3, 4 (p. 288), 5, 6 (p. 291), 7, 8 (p. 293), 9, 10 (p. 298), 11, 12 (p. 301), 13, 14 (p. 306)
  • Review Exercises R8.2-R8.18 EVEN (pp. 312-315)
  • Programming Exercises: P8.2 (p. 315) Purse.java, P8.3 (p. 315) Purse2.java, P8.4 (p. 315) Purse3.java, P8.10 (p. 3.16) Sequence.java, P8.11 (p. 3.17) Permutations.java, P8.18 (p. 318) MagicSquare.java
  • AP Study Guide:
    • Multiple Choice: 1-14; pp. 139146
    • Free Response: 1-2; pp. 147-152

Chapter 9: Designing Classes [C3][C4][C5][C6][C7]

  • Choosing Classes. (p. 324)
  • Cohesion and Coupling. (p. 326)
  • Accessors, Mutators, and Immutable Classes. (p. 329)
  • Side Effects. (p. 329)
  • Preconditions and Postconditions. (p. 335)
  • Static Methods. (p. 340)
  • Static Fields. (p. 342)
  • Scope. (p. 346)
  • Packages. (p. 351)
  • Self Check: 1, 2 (p. 325), 3-5 (p. 328), 6, 7 (p. 329), 8 ,9 (p. 331 ), 10, 11 (p. 338), 12, 13 (p. 341), 15, 15 (p. 344), 16, 17 (p. 349), 18-20 (p. 355)
  • Review Exercises R9.2-R9.32 EVEN (pp. 361-366)
  • Programming Exercises: P9.1 (p. 366) Coin.java, P9.2 (p. 366) CashRegister.java, P9.3 (p. 366) , CashRegister2.java, P9.5 (p. 366) VolumeAndSurfaceArea.java, P9.13 (p. 368) XRaisedToN.java
  • AP Study Guide
    • Multiple Choice: 1-10; pp. 166-170
    • Free Response: 1-2; pp. 171-173

Chapter 10: Testing and Debugging [C3][C4][C5][C6]

  • Unit Tests. (p. 372)
  • Providing Test Input. (p. 376)
  • Test Case Evaluation. (p. 380)
  • Regression Testing and Test Coverage. (p. 383)
  • Logging. (p. 387)
  • Using a Debugger. (p. 389)
  • A Sample Debugging Session. (p. 392)
  • Self Check: 1, 2 (p. 376), 3, 4 (p. 379), 5, 6 (p. 383), 7, 8 (p. 385 ), 9, 10 (p. 388), 11, 12 (p. 392), 13, 14 (p. 397)
  • Review Exercises R10.1-R10.12 ALL (p. 403)
  • Programming Exercises: P10.1 (p. 404), P10.3 (p. 404), P10.6 (p. 405), P10.9 (p. 405), P10.12 (p. 405),
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 177-179
    • Free Response: 1; p. 180

Chapter 11: Interfaces and Polymorphism [C3][C4][C5][C6]

  • Using Interfaces of Code Reuse. (p. 410)
  • Converting Between Class and Interface Types. (p. 416)
  • Polymorphism. (p. 418)
  • Using Interfaces for Callbacks. (p. 420)
  • Inner Classes. (p. 424)
  • Processing Timer Events. (p. 427)
  • Accessing Surrounding Variables. (p. 431)
  • Self Check: 1, 2 (p. 415), 3, 4 (p. 418), 5-7 (p. 419), 8-10 (p. 424 ), 11, 12 (p. 426), 13, 14 (p. 430), 15, 16 (p. 433)
  • Review Exercises R11.1-R11.3, R11.7, R11.9, R11.13, R11.16, R11.17 (pp. 436-438)
  • Programming Exercises: P11.2 (p. 439), P11.3 (p. 439), P11.9 (p. 439), P11.13 (p. 440)
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 191-194
    • Free Response: 1-3; pp. 194-196

Chapter 13: Inheritance [C3][C4][C5][C6]

  • An Introduction to Inheritance. (p. 468)
  • Inheritance Hierarchies. (p. 473)
  • Inheritance Instance Fields and Methods. (p. 475)
  • Subclass Construction. (p. 481)
  • Converting between Subclass and Superclass Types. (p. 482)
  • Polymorphism. (p. 485)
  • Access Control. (p. 492)
  • Object: The Cosmic Superclass. (p. 495)
  • Self Check: 1-3 (p. 472), 4, 5 (p. 475), 6, 7 (p. 479), 8, 9 (p. 482 ), 10, 11 (p. 484), 12, 13 (p. 490), 14, 15 (p. 493), 16, 17 (p. 499)
  • Review Exercises R13.1-R13.4, R13.8, R13.10, R13.15, R11.16 (pp. 509-512)
  • Programming Exercises: P13.4 (p. 512), P13.5 (p. 512) P13.6 (p. 513), P13.8 (p. 513)
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 214-219
    • Free Response: 1-3; pp. 219-222

GridWorld Case Study [C7]

  • Chapter 1 (Part 1) of the GridWorld case study.
    • Provides experiments to observe the attributes and behaviors of the actors.
  • Chapter 2 (Part 2) of the GridWorld case study.
    • Defines Bug attributes.
  • Chapter 3 (Part 3) of the GridWorld case study.
    • Explores the code that is needed to understand and create actors.
  • Chapter 4 (Part 4) of the GridWorld case study.
    • Defines classes that extend the Critter class.
  • Chapter 5(Part 5 of the GridWorld case study.
    • (CS AB only) Explains grid data structures.
  • Exam preparation:
  • Sample multiple-choice and free response questions
  • Timed Practice Test (2005 AP Computer Science A Test)
    • Multiple Choice
    • Free Response

Chapter 15: Exception Handling [C3][C4][C5][C6]

  • Throwing Exceptions. (p. 552)
  • Checked and Unchecked Exceptions. (p. 555)
  • Catching Exceptions. (p. 558)
  • The finally Clause. (p. 561)
  • Designing Your Own Exception Types. (p. 563)
  • Case Study: A Complete Example. (p. 564)
  • Self Check: 1, 2 (p. 555), 3, 4 (p. 558), 5, 6 (p. 560), 7, 8 (p. 562), 9, 10 (p. 564), 11, 12 (p. 569)
  • Review Exercises R15.1-R15.14 ALL (pp. 571-572)
  • Programming Exercises: Case Study: A Complete Example, pp. 565- 569, P15.8 (p. 573)
  • AP Study Guide
    • Multiple Choice: 1-10; pp. 228-232
    • Free Response: 2; p. 234

Chapter 17: Object Oriented Design [C3][C4][C5][C6][C7]

  • The Software Life Cycle. (p. 608)
  • Discovering Classes. (p. 614)
  • Relationship Between Classes. (p.617)
  • Case Study: Printing an Invoice. (P. 622)
  • Case Study: An Automatic Teller Machine. (P. 634)
  • Self Check: 1-3 (p. 612), 4-6 (p. 616), 7-9 (p. 619), 10-11 (p. 634), 12-13 (p. 655)
  • Review Exercises R17.1-R17.14 ODD (pp. 657-658)
  • Programming Exercises: Case Study: Printing invoice, pp. 622-633, Case Study: ATM machine, pp. 634-655
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 240-242
    • Free Response: 1&3; pp. 242-247

Chapter 18: Recursion [C3][C4][C5][C6]

  • Triangle Numbers. (p. 664)
  • Permutations. (p. 668)
  • Recursive Helper Methods. (p. 676)
  • The Efficiency of Recursion. (p. 678)
  • Mutual Recursions. (p. 687)
  • Self Check: 1, 2 (p. 667), 3, 4 (p. 671), 5, 6 (p. 678), 7, 8 (p. 684), 9-11 (p. 693)
  • Review Exercises:R18.1, R18.2-R18.10 EVEN (p. 694)
  • Programming Exercises: P18.1 (p. 695), P18.2 (p. 695), P18.5 (p. 695), P18.6 (p. 695), P18.8 (p. 696), P18.13 (p. 698)
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 275-279
    • Free Response: 1-2; pp. 279-281

Chapter 19: Sorting and Searching [C3][C4][C5][C6]

  • Selection Sort. (p. 704)
  • Profiling the Selection Sort Algorithm. (p. 708)
  • Analyzing the Performance of the Selection Sort Algorithm. (p. 711)
  • Merge Sort. (p. 715)
  • Analyzing and Merge Sort Algorithm. (p. 719)
  • Searching. (p. 725)
  • Binary Search. (p. 728)
  • Sorting Real Data. (p. 731)
  • Self Check: 1, 2 (p. 707), 3, 4 (p. 711), 5, 6 (p. 713), 7, 8 (p. 718), 9, 10 (p. 722), 11, 12 (p. 727), 13-15 (p. 730), 16, 17 (p. 732)
  • Review Exercises R16.1-R16.17 ODD (p. 602)
  • Programming Exercises: P16.1 (p. 603), P16.4 (p. 604), P16.6 (p. 604), P16.8 (p. 605)
  • AP Study Guide:
    • Multiple Choice: 1-10; pp. 297-303
    • Fee Response: 1-2; pp. 303-308

A Practice Review

  • Practice Test(s) (2005, 2006)
  • AP Study Guide:
    • Cumulative Review 1 (Chapters 2-7); pp. 106-107
    • Multiple Choice: 1-20; pp. 107-116
    • Free Response: 1-3; pp. 116-121
  • Cumulative Review 2 (Chapters 8-14); pp. 248-250
    • Multiple Choice: 1-20; pp. 250-262
    • Free Response: 1-3; pp. 262-268

APCS Topic Outline

Object-Oriented Program Design

The overall goal for designing a piece of software (a computer program) is to correctly solve the given problem. At the same time, this goal should encompass specifying and designing a program that is understandable, can be adapted to changing circumstances, and has the potential to be reused in whole or in part. The design process needs to be based on a thorough understanding of the problem to be solved.

Program Design

  1. Read and understand a problem description, purpose, and goals. Text: Ch. 3 (pp. 66-96), Study Guide: Ch. 4 (pp. 27- 38)
  2. Apply data abstraction and encapsulation. Text: Ch. 3 (pp. 67-88), Study Guide: Ch. 4 (pp. 27- 38)
  3. Read and understand class specifications and relationships among the classes (“is-a”, “has-a” relationship. Text: Ch. 13 (pp. 468 – 508), Ch. 17 (pp. 617 – 618), Study Guide: Ch. 12 (pp. 197 – 214), Ch. 14 (pp.235 – 239)
  4. Understand and implement a given class hierarchy. Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166)
  5. Identify reusable components from existing code using classes and class libraries. Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166)

(Will use BankAccount.java in every chapter.)

Class Design

  1. Design and implement a class. Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166)
  2. Choose appropriate data representation and algorithms. Text: Ch. 3 (pp. 66 – 96), Ch. 4 (pp. 104 – 140) Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 5 (pp. 46-57), Ch. 9 (pp. 154 – 166)
  3. Apply functional decomposition. Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166)
  4. Extend a given class using inheritance. Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166)

Program Implementation

The overall goals of program implementation parallel those of program design. Classes that fill common needs should be built so that they can be reused easily in other programs. Object-oriented design is an important part of program implementation.

Implementation techniques

Methodology

  1. Object-oriented development Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Ch. 17 (pp. 608 - 621), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166), Ch. 14 (pp. 235- 239)
  2. Top-down development Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166)
  3. Encapsulation and information hiding Text: Ch. 3 (pp. 66 – 96), Ch. 9 (pp. 324- 360), Study Guide: Ch. 4 (pp. 27 – 38), Ch. 9 (pp. 154 – 166)
  • Procedural programming
  • Programming constructs
  • Primitive types vs. objects
  • Declaration
  • Constant declarations
  • Variable declarations
  • Class declarations
  • Interface declarations
  • Method declarations
  • Parameter declarations
  • Console output
  • (System.out.print/println)
  • Control
  • Methods
  • Sequential
  • Conditional
  • Iteration
  • Recursion
  • Java library classes
  • (included in the A-level AP Java Subset)

Program Analysis

The analysis of program includes examining and testing programs to determine whether they correctly meet their specifications. It also includes the analysis of programs or algorithms in order to understand their time and space requirements when applied to different data sets.

Testing

  1. Test classes and libraries in isolation. Text: Ch. 10 (pp. 372 – 401), Study Guide: Ch. 10 (pp. 174 – 177)
  2. Identify boundary classes and generate appropriate test data. Text: Ch. 10 (pp. 372 – 401), Study Guide: Ch. 10 (pp. 174 – 177)
  3. Perform integration testing. Text: Ch. 10 (pp. 372 – 401), Study Guide: Ch. 10 (pp. 174 – 177)

Debugging

  1. Categorize errors: compile-time, run-time, logic. Text: Ch. 10 (pp. 372 – 401), Study Guide: Ch. 10 (pp. 174 – 177)
  2. Identify and correct errors. Text: Ch. 10 (pp. 372 – 401), Study Guide: Ch. 10 (pp. 174 – 177)
  3. Employ techniques such as using a debugger, adding extra output statements, or hand-tracing code. Text: Ch. 10 (pp. 372 – 401), Study Guide: Ch. 10 (pp. 174 – 177)
  • Understand and modify existing code Using the BankAccount Class starting in Ch. 2 students will modify this class throughout the book.
    Extend existing code using inheritance Text: Ch. 13 (pp. 468 – 508), Study Guide: Ch. 12 (pp. 197 – 214)
  • Understand error handling
    • Understand runtime exceptions Text: Ch. 15 (pp. 552 – 570), Study Guide: Ch. 13 (pp. 223 – 228)
  • Reason about programs
    • Pre- and post- conditions Text: Ch. 9 (pp. 324- 360), Study Guide: Ch. 9 (pp. 154 – 166)
    • Limitations of finite representations (e.g., integer bounds, imprecision of floating-point representations, and round-off error)
  • Analysis of algorithms
    • Informal comparisons of running times
    • Exact calculations of statement execution counts.
  • Numerical representations and limits
    • Representations of numbers in different bases
  • Limitations of finite representations
    • (e.g., integer bounds, imprecision of floating-point representations, and round-off error)

Standard Data Structures

  1. Data structures are used to represent information within a program. Abstraction is an important theme in the development and application of data structures.
  2. Simple data types (int, Boolean, double)

Classes

  • One-dimensional arrays
  • Standard Algorithms
  • Standard algorithms serve as examples of good solutions to standard problems. Many are intertwined with standard data structures. These algorithms provide examples for analysis of program efficiency.
  • Operations on A-level structures previously listed.
  • Traversals
  • Insertions
  • Deletions
  • Searching
  • Sequential
  • Binary
  • Sorting
  • Selection
  • Insertion
  • Mergesort

Computing in Context

A working knowledge of the major hardware and software components of computer systems is necessary for the study of computer science, as is the awareness of the ethical and social implications of computing systems. These topics need not be covered in detail but should be considered throughout the course.

Major hardware components

  1. Primary and secondary memory Text: Ch. 1 (pp. 3-8), Study Guide: pp. 9-14
  2. Processors Text: Ch. 1 (pp. 3-8), Study Guide: pp. 9-14
  3. Peripherals Text: Ch. 1 (pp. 3-8), Study Guide: pp. 9-14

System software

  1. Language translators/compilers Text: Ch. 1 (pp. 8-9), Study Guide: pp. 10-14
  2. Virtual machines Text: Ch. 1 (pp. 8-9), Study Guide: pp. 10-14
  3. Operating Systems Text: Ch. 1 (pp. 8-9), Study Guide: pp. 10-14

Types of systems

  1. Single-user systems Text: Ch. 1 (p. 4), Study Guide: p. 10
  2. Networks Text: Ch. 1 (p. 4), Study Guide: p. 10

Responsible use of computer systems

  1. System reliability Text: Ch. 1 (p. 4), Study Guide: p. 12
  2. Privacy Study Guide: pp. 12-13, At the following websites: www.acm.org/constitution/code.html, www.brookings.edu/dybdocroot/its/cei/overview/Ten_

Commandments_of_Computer_ethics.htm, www.cpsr.org/cpsr/about-cpsr.html, and www.usdoj.gov/04foia04_7_1.html

Legal issues and intellectual property

Social issues and ethical ramifications of computer use