July 2016/Teaching Preparation
From charlesreid1
Contents
Course Load
Staff classes:
- ENGR 116 (5) - Engineering Design and Creativity - vectors and calculus to statics and dynamics, T Th 1-3:20 pm
- CSC 100 (5) - Beginning Computers - Daily 9-9:50 am
- CSC 100 (5) - Beginning Computers - online
- CSC 142 (5) - Computer Programming I - covers objects, messages, expressions, statements, methods, classes, conditionals, iterations, arrays and collections, M W 11-12:50 pm
- CSC 143 (5) - Computer Programming II - online
UW Computer Science Course Summary
Syllabus
Textbook: Building Java Programs, 4th edition, Reges & Stepp, required.
Course Overview: This course provides an introduction to computer science using the Java programming language. CSE142 is primarily a programming course, but the focus is on the problem solving techniques common in computer science.
Lecture Policy: If it is important to you to use your laptop during lecture, email Stuart to describe your situation and request an exception. TAs will periodically enforce this policy during lecture.
Discussion Sections: You will be expected to participate in a weekly 50-minute discussion section. The TA who runs your discussion section will grade your homework assignments. In section we will answer questions, go over common errors in homework solutions and discuss sample problems in more detail than we can in lecture.
Each week we will assign a written homework to be turned in and discussed in section. These are meant as “warm up” problems to get you thinking about the topics we cover that week. It will be graded for effort, not for whether or not you have the right answers. You will receive 3 homework points for each written assignment you bring to section, up to a maximum of 20 points. The points are for the combination of completing the assignment and attending section. You won’t get points for just attending section or just doing the written part.
Computer Access/Software: The department operates an Introductory Programming Lab (IPL) that is located on the third floor of Mary Gates Hall. TAs will be available at the lab to help students with problems. You can use any Java environment you want although the recommended software for this course is the Java Development Kit (JDK) version 8 and the jGRASP editor. More information can be found on the class web page under the “working at home” link.
Course Web Page: link
Grading: Programming assignments, two exams.
- 40% homework
- 20% midterm
- 40% final
The exams will be closed-book and closed-note.
CSE 142
Link: https://courses.cs.washington.edu/courses/cse142/16sp/index.shtml
Assignments
Assignment 1: Cumulative song, printing lyrics https://courses.cs.washington.edu/courses/cse142/16sp/handouts/02.html
Assignment 2: ASCII art rocket ship, loops, static methods https://courses.cs.washington.edu/courses/cse142/16sp/handouts/03.html
Assignment 3: Cafe wall, using loops, value parameters, and graphics https://courses.cs.washington.edu/courses/cse142/16sp/handouts/04.html
Assignment 4: Admissions, if else, calculations, return values https://courses.cs.washington.edu/courses/cse142/16sp/handouts/05.html
Assignment 5: Guessing game, while loops, random numbers, user input https://courses.cs.washington.edu/courses/cse142/16sp/handouts/06.html
Assignment 6: Baby names, reading input files, graphing a quantity https://courses.cs.washington.edu/courses/cse142/16sp/handouts/11.html
Assignment 7: Personality test, arrays, external files, input data https://courses.cs.washington.edu/courses/cse142/16sp/handouts/14.html
Assignment 8: Simulation of critters, defining class within framework, object oriented programming https://courses.cs.washington.edu/courses/cse142/16sp/handouts/16.html
CSE 143
Link: http://courses.cs.washington.edu/courses/cse143/16sp/
Assignments
Assignment 1: Letter Inventory
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/1/spec.pdf
- arrays and classes
- alphabet/letters histogram
- iterative refinement
- students provided with iterative, step-wise development strategy
- encapsulation and scope, private, avoiding redundancy, loops, indentation, variable names
Assignment 2: HTML Validator
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/2/spec.pdf
- Stack and Queue collections
- HTML tags: self-closing tags, properly-ordered nesting of tags
- Instructor-provided code reads HTML pages from files and breaks them apart into tags for you
- You see whether tags match correctly, using API: element()=>"p", isOpenTag=>T/F, isSelfClosing=>T/F
- Getting used to using other people's code
- Thinking about corner cases
Assignment 3: Assassin
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/3/spec.pdf
- Game played on college campuses: one person targets another, each person has one person they're targeting, don't know who's targeting them
- Circular chain of targets: kill ring, circular, bottom links back to top
- When you eliminate a person from the kill ring, you take on their target (move up the chain)
- Null reference at end of linked list
- Utilizing linked list and nodes appropriately
- Properly documented, return conditions, exceptions, reference solution is 130 lines (70 of those are comments)
Assignment 4: Grammar Solver
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/4/spec.pdf
- Symbols in grammar, grammar describes syntax and symbols of language
- Backus-Naur Form (BNF) = language grammar representation
- Required to implement GrammarSolver class with contains(), getSymbols(), and generate() methods
- Generate method is hardest, store contents of Grammar in map, use string split method
Assignment 5: Evil hangman
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/5/spec.pdf
- Java Collections classes
- User has N guesses to get the answer, computer keeps track of possible solutions, number of guesses, guessed information
- HangmanManager
- Set words()
- int guessesLeft()
- charSet guesses()
- String pattern()
- int record()
- Record method is hardest, write last.
- Evil because computer is not really picking a word until last minute
Assignment 5 Bonus
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/5/spec2.pdf
- how to improve the HangmanManger class and how to use inheritance to create variation
- wins when down to one guess
- modify methods to protect data
Assignment 6: Anagrams
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/6/spec.pdf
- Recursive backtracking
- Use a dictionary to find all anagrams that can be formed from a particular string
Assignment 7: 20 Questions
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/7/spec.pdf
- binary tree
- recursion
Assignment 8: Huffman Coding
- http://courses.cs.washington.edu/courses/cse143/16sp/homework/8/spec.pdf
- algorithm developed at MIT in 1952 for compressing text file
- Encoding and decoding, binary to ascii
- Huffman tree
- Encode a secret message, grade based on whether grader can decode it
Assignment 8 Bonus