diff --git a/assignment1reading.md b/assignment1reading.md new file mode 100644 index 0000000000000000000000000000000000000000..e19e1648eac7c143bce02bd4e731966799bf5746 --- /dev/null +++ b/assignment1reading.md @@ -0,0 +1,178 @@ +# Reading Assignment #1 + +## Objective + +The goal of this and the next reading assignments is to do a breadth-first scan of the +entire Swift language. You can take a quick tour +[here](https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html), and feel free to +consult the [language reference](https://docs.swift.org/swift-book/ReferenceManual/AboutTheLanguageReference.html), but your main +reading is the +[Swift Language Guide](https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html). +Weird / important topics are in bold. + +This "assignment" consists of taking the above +[quiz](https://myelms.umd.edu/courses/1257199/quizzes/1257393) on this material. + +----- + +[The Basics](https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html) +- Constants and Variables Comments +- Semicolons +- Integers +- Floating-Point Numbers +- Type Safety and Type Inference +- Numeric Literals +- Numeric Type Conversion +- ~~Type Aliases~~ +- ~~Booleans~~ +- ~~Tuples~~ +- **Optionals** +- ~~Error Handling~~ +- ~~Assertions and Preconditions~~ + +[Basic Operators](https://docs.swift.org/swift-book/LanguageGuide/BasicOperators.html) +- Terminology +- Assignment Operator +- Arithmetic Operators +- Compound Assignment Operators +- Comparison Operators +- Ternary Conditional Operator +- Logical Operators + +[Strings and Characters](https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html) +- String Literals +- Initializing an Empty String +- **String Mutability** +- Strings Are Value Types +- Working with Characters +- Concatenating Strings and Characters +- **String Interpolation** +- Unicode +- Comparing Strings +- Unicode Representations of Strings + +[Collection Types](https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html) +- **Mutability of collections** +- **Arrays** +- Sets +- Performing Set Operations +- Dictionaries + + +[Control Flow](https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html) + +- For-In Loops +- While Loops +- Conditional Statements + - If + - **Switch** + - No Implicit Fallthrough + - Interval Matching + - Tuples + - Value Bindings + - Where + - Compound Cases +- Control Transfer Statements + - Continue + - Break + - Fallthrough + - Labeled Statements +- Early Exit +- Checking API Availability + + + +[Functions](https://docs.swift.org/swift-book/LanguageGuide/Functions.html) +- Defining and Calling Functions +- Function Parameters and Return Values + - Functions Without Parameters + - Functions With Multiple Parameters + - Functions Without Return Values + - Functions With Multiple Return Values +- Function Argument Labels and Parameter Names + - Specifying Argument Labels + - Omitting Argument Labels + - Default Parameter Values + - ~~Variadic Parameters~~ + - ~~In-Out Parameters~~ +- ~~Function Types~~ +- Nested Functions + + +~~Closures~~ + +~~Enumerations~~ + +[Structures and Classes](https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html) +- Comparing Classes and Structures +- **Structures and Enumerations Are Value Types** +- **Classes Are Reference Types** +- Choosing Between Classes and Structures +- **Assignment and Copy Behavior for Strings, Arrays and Dictionaries** + +[Properties](https://docs.swift.org/swift-book/LanguageGuide/Properties.html) +- Stored Properties +- ~~Computed Properties~~ +- Property Observers +- Global and Local Variables +- Type Properties + +[Methods](https://docs.swift.org/swift-book/LanguageGuide/Methods.html) +- Instance Methods + - The self Property + - Modifying Value Types from Within Instance Methods + - ~~Assigning to self Within a Mutating Method~~ +- Type Methods + +~~Subscripts~~ + +[Inheritance](https://docs.swift.org/swift-book/LanguageGuide/Inheritance.html) +- Defining a Base Class +- Subclassing +- Overriding + - Accessing Superclass Methods, Properties, and Subscripts + - Overriding Methods + - ~~Overriding Properties~~ +- Preventing Overrides + +[Initialization](https://docs.swift.org/swift-book/LanguageGuide/Initialization.html) +- Setting Initial Values for Stored Properties +- Customizing Initialization +- Default Initializers +- ~~Class Inheritance and Initialization~~ +- ~~Failable Initializers~~ +- ~~Required Initializers~~ +- ~~Setting a Default Property Value with a Closure or Function~~ + +~~Deinitialization~~ + +~~Optional Chaining~~ + +~~Error Handling~~ + +~~Type Casting~~ + +~~Nested Types~~ + +[Extensions](https://docs.swift.org/swift-book/LanguageGuide/Extensions.html) +- Extension Syntax +- Computed Properties +- ~~Initializers~~ +- Methods + - **Mutating Instance Methods** +- ~~Subscripts~~ +- ~~Nested Types~~ + + +~~Protocols~~ + +~~Generics~~ + +~~Automatic Reference Counting~~ + +~~Memory Safety~~ + +~~Access Control~~ + +~~Advanced Operators~~ + diff --git a/assignment2reading.md b/assignment2reading.md new file mode 100644 index 0000000000000000000000000000000000000000..664469e0117fb276250d66998bdd5f39b8e978bf --- /dev/null +++ b/assignment2reading.md @@ -0,0 +1,21 @@ +# Reading Assignment #2 + + +[Enumeration](https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html) +- down to, but not including, "Recursive Enumerations" + +[Closures](https://docs.swift.org/swift-book/LanguageGuide/Closures.html) +- down to, but not including, "Autoclosures" + +[Optional Chaining](https://docs.swift.org/swift-book/LanguageGuide/OptionalChaining.html) + +[Protocols](https://docs.swift.org/swift-book/LanguageGuide/Protocols.html) +- down to, but not including, "Checking for Protocol Conformance" + +[Access Control](https://docs.swift.org/swift-book/LanguageGuide/AccessControl.html) +- Modules and Source Files +- Access Levels +- Access Control Syntax + + +