Featured Post

Why this blog? What's it about? What's the format?

FORMAT For Fall 2021, the focus is mainly on Python, C++, and Digital Hardware There are videos here from other sources / creators There are...

Right click image below, then "open link in new tab"

Right click image below, then "open link in new tab"
Right click image above, then "open link in new tab"

Search This Blog

Friday, September 10, 2021

Sub-Topics of the main topics in Introduction to Computer Science

(From same book. Only main topics listed here)


Computers and programs

  1. The universal machine
  2. Program power
  3. What is computer science?
  4. Hardware basics
  5. Programming languages
  6. The magic of Python
  7. Inside a python program
  8. Chaos and computers

Writing simple programs

  1. The software development process
  2. Example program: Temperature converter
  3. Elements of programs - names, expressions
  4. Output statements 
  5. Assignment statements - Simple assignment, assigning input, simultaneous assignment
  6. Definite loops 
  7. Example program - future value

Computing with numbers

  1. Numeric data types
  2. Type conversions and rounding
  3. Using the Math library
  4. Accumulating results - factorials
  5. Limitations of computer arithmetic

Objects and graphics

  1. The object of Objects
  2. Simple graphics programming
  3. Using graphical objects
  4. Graphing future value
  5. Choosing coordinates
  6. Interactive graphics - getting mouse clicks, handling textual input
  7. Graphics module reference - GraphWin Objects, Graphics Objects, Entry Objects, Displaying Images, Generating Colors, Controlling Display Updates (advanced)

Sequences: Strings, lists and files

  1. The string data type
  2. Simple string processing
  3. Lists as sequences 
  4. String representation and message encoding - programming an encoder
  5. String methods - programming a decoder
  6. Lists have methods too
  7. Encoding to encryption
  8. Input / Output as string manipulation - example application: date conversion, string formatting, better change counter
  9. File processing - multi-line strings, file processing, example program: batch usernames, file dialogs

Defining functions

  1. The function of functions
  2. Functions, informally
  3. Future value with a function
  4. Functions and parameters: The exciting details
  5. Functions that return values
  6. Functions that modify parameters
  7. Functions and program structure

Decision structures

  1. Simple decisions
  2. Two-way decisions
  3. Multi-way decisions
  4. Exception handling
  5. Study in design: max of three. Compare each to all, decision tree, sequential processing, use of python

Loop structures and Booleans

  1. For loops 
  2. Indefinite loops
  3. Common loop patterns - interactive, sentinel, file, nested
  4. Computing with Booleans - Boolean operators, Boolean algebra
  5. Other common structures - post-test loop, loop and a half, Boolean expressions as decisions
  6. Example - a simple event loop

Simulation and design

  1. Simulating racquetball - A simulation problem, analysis and specification, 
  2. Pseudo-random numbers
  3. Top-down design - Top-level design, separation of concerns, second-level design, designing simNGames, third-level design, finishing up, summary of design process
  4. Bottom-up implentation - unit testing, simulation results
  5. Other design techniques - prototyping and spiral development, the art of design

Defining classes

  1. Quick review of Objects
  2. Example program: Cannonball, program specification, designing the program, modularizing the program
  3. Defining new classes: multi-sided dice, projectile class 
  4. Data processing with class
  5. Objects and encapsulation: Encapsulating useful abstractions, putting classes in modules, module documentation, working with multiple modules
  6. Widgets: Example program: Dice roller, building buttons, building dice, the main program
  7. Animated Cannonball: Drawing the animated window, creating a shot tracker, creating an input dialog, the main event loop

Data collections

  1. Example problem: simple statistics
  2. Applying lists: Lists and arrays, list operations, statistics with lists
  3. Lists of records
  4. Designing with lists and classes
  5. Case study: Python calculator: Calculator as an object, constructing the interface, processing buttons
  6. Case study: Better cannonball animation: Creating a launcher, tracking multiple shots
  7. Non-sequential collections: Dictionary basics, dictionary operations, example program: Word frequency

Object-Oriented Design

  1. The process of OOD
  2. Case study: Racquetball simulation: Candidate objects and methods, implementing SimStats, implementing RBallGame, implementing Player, the complete program
  3. Case study: Dice poker: Program specification, identifying candidate objects, implementing the model, a text-based UI, developing a GUI
  4. OO concepts: encapsulation, polymorphism, inheritance

Algorithm design and recursion

  1. Searching: Simple searching program, linear seach, binary search, comparing algorithms
  2. Recursive problem solving: Definitions, functions, string reversal, anagrams, fast exponentiation, binary search, recursion vs. iteration
  3. Sorting algorithms: Naive sorting: selection sort, divide and conquer - merge sort, comparing sorts
  4. Hard problems:  Tower of Hanoi, the halting problem

No comments:

Post a Comment