4240 Outline

Guten Tag! This course is bilingual and is taught in Python and Java.

  1. The UNIX Command Line The file unixRecut.pdf, which you can snag from Canvas, will be required reading You will learn to use the command-line interface. You are expected to read the entire chapter. I will do a quick coverage of it in class but I expect you to show some resourcefulness and independence.
    1. Login and Passwords
    2. UNIX Commands: name, options, arguments
    3. Managing Directories
    4. Paths
    5. Making and listing regular files
    6. Copying, renaming, and removing files
    7. Editing Files
    8. File Permissions
  2. Variables, Expressions, and Scalar Types Here we learn about the basic ecosystem of data types and how they interact in Python and Java. Reading for Python is in p0.pdf and j0.pdf and j1.pdf, which you can download from froobles or Canvas. When you are done here, you will be able to manipulate the scalar types, and be able to read the docs to find solutions to problems. You will be able to write very simple programs that do calculations and manipulate strings.
    1. The Interactive shells
    2. Python's scalar type ecosystem: scalar types and their operators
    3. Java's Eight Primitive Types
    4. Variables, expressions, assignment, and symbol tables
    5. Expressions, the order of operations, and the inside dope on assignment
    6. Strings, string methods, and the string docs
    7. Pooling
    8. Math
    9. Writing a Program
  3. Containers
    1. The container type ecosystem: data structures and compound types
      1. Sequences
      2. Hashed Types: Sets and Dictionaries
    2. The class mechanism
  4. Boss Statements: Modularization and Conditional Logic When you are done here you will be able to write and call functions that perform specific tasks. You will be able to use default arguments(Python) and function name overloading(Java) to make functions that are flexible and easy for you to call.
    1. The first boss statements: functions
    2. Conditional logic and its boss statements
    3. The dope on scope: local symbol tables
    4. The call stack
    5. What the heck is the heap?
    6. Functions as objects
    7. Modules, standard library modules, and user-defined modules
    8. Recursion
  5. Iteration and Iterators
    1. Iterables and definite loops
    2. while and indefinite looping
    3. Function flexibility: default and keyword arguments in Python and method name overloading in Java
    4. FileIO and exceptions
    5. Python Generators and the yield keyword
    6. Algorithms: A little number theory
    7. The Performance of Algorithms
    8. Iterative sorting techniques
    9. A recursive sort: Merge Sort
  6. Algorithms
    1. Searching
    2. Root Finding
    3. A little number theory
    4. Performance of algorithms and O.
    5. Iterative sorting
    6. Merge Sort
  7. Fancy Tools Add some zing to your programming experience by opening and exploring this cool toolbox.
    1. Comprehensions and Streams: say what you want
    2. Custom sorting with keys
    3. Regexes: Characterclassese, Regexese, and the Java and Python dialogues
    4. Case study: writing a concordance
  8. Creating Custom Objects Here you learn to create object factories that spit out custom objects tailored to the tasks you wish to perform.
    1. Stick-building objects
    2. Classes as object blueprints
    3. Case study: playing cards
    4. Using Cards
    5. A Shoe object
    6. Case study: Fractions
    7. Rational approximations of roots using the Fraction class
    8. Project: Poker.py
  9. Final Project