CS 151 - Lecture 1

Cay S. Horstmann
CS 151
The Textbook

- Great book, if I may say so
- But it's getting a bit outdated
- I am revising the book this academic year
- You'll get draft pages here as the semester progresses
- Don't post them anywhere!
- No need to buy a printed book
What You Need to Succeed

- Prerequisites
- CS1/CS2: Loops, arrays, input/output, sets and maps, etc.
- Java
- Time
- You can't expect to learn complex skills just by listening to lectures
- Spend 9 hours per week for this class
- 2.5 hours in class
- 6.5 hours (!) outside class for preparation and homework
- Laptop
- Bring it to each class meeting
- Be able to run a Bash shell
Questions

- Ask questions right away when you are stuck
- Use the online discussion group (Piazza).
- You'll get a better grade if you ask lots of questions.
- Answer your peers' questions. You'll get a better grade if you do.
- Private or confidential questions—email or office hours
Plagiarism and Cheating

- When you submit work, it must be your intellectual creation
- Can you copy and paste?
- Always ok to copy—pasting is the problem ☺
- Ok to use code from the problem statement or the textbook without attribution
- Otherwise, you must attribute the source
- You can post snippets (but not a solution) on Piazza for critique
- But you cannot copy from Piazza
- Don't email working code—you don't know what the recipient will do with it
- Sending someone a solution is cheating
- I periodically run a plagiarism checker
- If I find cheating, I don't play Sherlock Holmes to find who wrote it—I report both
- I report everyone whom I find cheating to Student Conduct
- I have to
- And I will recommend that an appropriate penalty is for you to fail the course
Git

- You submit all class work via Git
- Make a private repo on BitBucket or GitHub
- If you use your SJSU email address, BitBucket gives you a free account with unlimited private repos
- Add me as a contributor to your repo. My BitBucket and GitHub ids are
cayhorstmann
- Use a single repo for all homework and exams
- Make folders
hw1
, hw2
, exam1
, ...
- Commit at least once a day for homework/every 10 min in an exam
- Push before midnight on due date. Grace period until 6am next morning. No mercy afterwards.
- Never used Git? Check out this CS46B lab.
Adding

- Do homework 1 and send me your answers.
- I will send you an add code when space becomes available. Use it within 24 hours, or it will become invalid
- Show up for all classes/labs even if you haven't received your code
Things To Do Today

- Log into Piazza
- Start reading the textbook
- Install Java 8 and Git on your laptop
- You need bash. If you run Windows 10, install the Windows Subsystem for Linux. If you run an older version of Windows, install VirtualBox and a Linux VM.
- Complete Homework 1 and send me your Git repo URL
- Important: In lieu of a roll call today, you must turn in homework 1, or I will drop you from this course for lack of presence/prerequisites.