Course Overview

In this course, we will explore several of computer science's big ideas through its main tool: programming. This course provides an introduction to programming using the Java programming language. We will explore common computational problem-solving techniques useful to computer scientists but also to anyone with large data sets, repetitive processes or other needs for computation.

Course Objectives

You will:

  • Design, implement and debug computer-based solutions to problems in diverse application areas
  • Use, implement and analyze common algorithms and data structures
  • Write clear and efficient code using good Java syntax and programming style
  • Know when and how to use Java library classes
  • Read, understand and contribute to large programs consisting of several classes
  • Identify and discuss the major hardware and software components of a computer system
  • Recognize the ethical and social implications of computer use and software creation

Textbook

Reges/Stepp, Building Java Programs: A Back to Basics Approach (4th Edition) ISBN-13 978-0134448305. Required, class version available

UW instructors wrote the book specifically for this course to supplement lectures and clarify concepts. You are expected to refer to the book when you miss lecture, don't quite understand an idea or need extra practice problems. Exams in this course will be open-book and the book will be the ONLY reference you may use. Textbook exercises will be due in your discussion sections each week.

Costs

  • None

Requirements

  • Textbook referenced above
  • Laptop with appropriate software installed (requires Computer Use Agreement)
  • School network login

Grading/Assessment

  • 25% Projects
  • 20% Homework
  • 25% Exams
  • 30% Final Exam

Exams

You will be provided a cheat sheet to be used during midterm and final exams. No other references are allowed. No electronic devices may be used, including calculators.

No student will be permitted to take an exam early for any reason.

Homework

This is a college level course; students can expect up to 1 hour of homework per day.

Homework consists of weekly programming assignments done individually and submitted electronically from the course web site. Programs will be graded on "external correctness" (behavior) and "internal correctness" (style and design). Disputes about homework grading must be made to Mr. Thompson within 2 weeks of receiving the grade.

Academic Integrity and Collaboration

This course adheres to the UW CSE 142 and Tesla STEM policies. You are required to sign the TSHS Computer Science Collaboration Policy.

Let's make this as simple as possible: anytime you are stuck or confused on a coding project, the *ONLY* person you can get help from on your design, algorithm, debugging, etc. is me, Mr. Thompson.

Programming assignments must be completed individually; all code you submit must be your own work. You may discuss general ideas of how to approach an assignment, but never specific details about the code to write. Any help you receive from or provide to classmates should be limited and should never involve details of how to code a solution. You must abide by the following rules:

  • You may not work as a partner with another student on an assignment.
  • You may not show another student your solution to an assignment, nor look at his/her solution, for any reason.
  • You may not have another person "walk you through" an assignment, describe in detail how to solve it, or sit with you as you write it. You also may not provide such help to another student. This includes current or former students, tutors, friends, TAs, paid consultants, people on the Internet, or anyone else.
  • You may not post your homework solution code online to ask others for help. This includes public message boards, forums, file sharing sites and services, or any other online system.

Under the UW policy, a student who gives inappropriate help is equally guilty with one who receives it. Instead of providing such help to someone who does not understand an assignment, please point them to other class resources such as lecture examples, the textbook, the IPL, or a TA or instructor. You must not share your solution and ideas with others. You must also ensure that your work is not copied by others, such as making sure to log out of shared computers, not leaving printouts of your code in public places, and not emailing your code to other students or posting it on the web.

Expectations