From charlesreid1

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

CSC 142 Course Notes

CSC 143 Course Notes

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

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

Assignment 6: Anagrams

Assignment 7: 20 Questions

Assignment 8: Huffman Coding

Assignment 8 Bonus

Flags