- 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
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.
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
Assignment 1: Letter Inventory
Assignment 2: HTML Validator
- 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
- 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
- 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
- Java Collections classes
- User has N guesses to get the answer, computer keeps track of possible solutions, number of guesses, guessed information
- 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
CSE 143: Computer Programming II, Winter 2018
Instructor: Stuart Reges (firstname.lastname@example.org), CSE 552: Mon 2-3, Tue 4-5
- Wednesday, January 3 : Fall quarter begins.
- Monday, January 15: Martin Luther King Jr Holiday, no class and IPL closed
- Monday, February 12 : Midterm Exam, 5:00-6:00PM
- Monday, February 19 : Presidents Day Holiday, no class and IPL closed
- Tuesday, February 20 -- Last day to change to or from S/NS grade option; last day to drop courses using Annual Drop
- Thursday, March 15 : Final Exam, 12:30-2:20PM
- [3-11] The IPL will be open from 4-7 on Wednesday, 3/14, for relatively quick questions.
- [3-5] final exam resources posted
- [1-3] Welcome to CSE 143!
- Contact email@example.com with any registration questions/problems.