CSCI455: Introduction to Programming System Design

18
CSCI455: Introduction to Programming System Design Claire Bono [email protected] Fall 2021 http://bytes.usc.edu/cs455/ 455 Intro [Bono] 1

Transcript of CSCI455: Introduction to Programming System Design

Page 1: CSCI455: Introduction to Programming System Design

CSCI455: Introduction to Programming System Design

Claire [email protected]

Fall 2021http://bytes.usc.edu/cs455/

455 Intro [Bono] 1

Page 2: CSCI455: Introduction to Programming System Design

Today’s topics• Course overview and logistics• Academic integrity• Java naming conventions (time permitting)

455 Intro [Bono] 2

Page 3: CSCI455: Introduction to Programming System Design

Announcements

• For initial announcements see course website:http://bytes.usc.edu/cs455/

(after that course announcements will be on piazza)• Please put exam dates on your calendar.

455 Intro [Bono] 3

Page 4: CSCI455: Introduction to Programming System Design

Announcements (cont.)To Do after lecture:• if you are not officially enrolled yet, or have no

programming experience please see me after class or zoom office hours today

• non-DEN students: look out for email from DEN about how to get on DEN d2l.

• activate your piazza account (if you already registered for CS 455, you got an email invitation)

• activate your pollEverywhere account and log in on your browser

• get textbook and start readings for this week455 Intro [Bono] 4

Page 5: CSCI455: Introduction to Programming System Design

What's going on these days…?• The Covid situation is evolving. We will all need to have …

– empathy / understanding– flexibility / adaptability– resilience

• Some specifics: – some things may change if what we are doing isn't working– the class an in-person course, but . . . – we are doing what we can to accommodate different time zones (lab

times, exam times, office hour times) for those who can't make it in person

– in-person lecture attendance is enouraged but not required– the labs are mostly in person (does not apply to DEN students)– do not attend classes if you have Covid symptoms or have to quarantine – if you have a special circumstance (e.g., time zone, connectivity) that

makes any part of the course extra difficult, please discuss your situation with me (email, office hours)

455 Intro [Bono] 5

Page 6: CSCI455: Introduction to Programming System Design

Where to find course materials• Course web page: http://bytes.usc.edu/cs455/• DEN d2l course management system for

– zoom lecture link– videos of lectures– grades– links to Vocareum assignments

• Piazza for – announcements– discussion boards

• Use this to ask (and answer) each other / us questions about course material, assignments – not email.

• Vocareum for– assignment/lab/lecture code– completing and submitting assignments– (initial access to an assignment has to go through d2l)

455 Intro [Bono] 6

Page 7: CSCI455: Introduction to Programming System Design

CS 455 Syllabus

• we'll go over highlights today, however,syllabus is required reading

• CS 455 goals– learn scalable development techniques– programming in an OO language (Java)– programming with linked lists/dynamic data in C++– using Linux (Unix) environment– learn some data structures and algorithm analysis

455 Intro [Bono] 7

Page 8: CSCI455: Introduction to Programming System Design

Prerequisites

• You should have a working knowledge of the following ideas:– variables– assignment statements and expressions– if statements– loops– functions with parameters (calling and writing)

• No prev experience? See me.

455 Intro [Bono] 8

Page 9: CSCI455: Introduction to Programming System Design

How to succeed in CS 455• Have a “growth mindset”– Everyone can succeed!

… but you need to put in the effort.

• How we facilitate:• Interactive lectures• Lecture slides• Supervised Labs• Sample Exams• Interactive exercises in readings• Programming Assignments• Office hours• Piazza forum

455 Intro [Bono] 9

Page 10: CSCI455: Introduction to Programming System Design

Textbook• required textbook for Java:

Big Java, 7th ed., by Cay Horstmann, Wiley (e-book rental version: ~$39 – see announcements on web page)

– do readings before lecture– sidebar features– interactive exercises

• for C++ we'll use web-based material

455 Intro [Bono] 10

Page 11: CSCI455: Introduction to Programming System Design

Computing environment• Vocareum cloud-based environment:• For each assgt, on Vocareum:

– Get code: starter-files available there– Develop code: has editor, compile/run on command line (linux

shell)– Submit code there– code is graded on Vocareum

• If you install your own local IDE make sure it's using version 1.8 (8.0) of Java compiler, run-time system, and API.

• Documentation section of course website has info about using a local environment: local javac/java, IntelliJ, or Eclipse, as well as some tutorials and command summaries.

455 Intro [Bono] 11

Page 12: CSCI455: Introduction to Programming System Design

Coursework• Readings• Lectures (5%)

– answer questions in classroom polls (can by done asynchronously)– may add different types of activities later

• Exams (55%)– MT 1 (10%)– MT 2 (20%)– Final (25%)

• Programming assignments (30%)– 4 - 6 total (30% total)– important learn-by-doing for development techniques

• Labs (10%)…

455 Intro [Bono] 12

See week-by-week schedule for exam dates.

Page 13: CSCI455: Introduction to Programming System Design

Labs• 2 hour lab session – not optional• allowed to work on it ahead of time, but work is due in

your lab section (contact me if your ongoing situation does not permit this)

• pair-programming• only 80% of lab points count for grade• DEN students:– complete on your own time (due Sun night)– generally no partners– get lab assistant help by DEN office hours (on Zoom) /

piazza / email• First week only: everyone can submit it by Sunday

night; but please attend lab if you are on-campus.

455 Intro [Bono] 13

Page 14: CSCI455: Introduction to Programming System Design

How lab attendance will work this semester

(Applies to non-DEN students)• If you can't make it to the US because of visa issues or

are otherwised approved for remote participation, you can attend 7 – 9pm Thur lab on zoom.(also please send Claire email so I know who you are)

• If you have Covid symptoms or have to quarantine, do not come to class, and if you have to miss lab, let your lab TAs know, and they'll let you know what to do.

• Otherwise, we look forward to seeing you in your scheduled lab session (including on-campus students enrolled in Th 7 – 9pm).

455 Intro [Bono] 14

Page 15: CSCI455: Introduction to Programming System Design

Grading

• Fixed-scale grading– Not in competition with other students.– Everyone can succeed!

• Detailed grading / late policies on the course syllabus

455 Intro [Bono] 15

Page 16: CSCI455: Introduction to Programming System Design

Academic integrity policy

• See Course Syllabus for details.

455 Intro [Bono] 16

Page 17: CSCI455: Introduction to Programming System Design

Some reasons not to cheat

• Dishonest • USC reputation • Real world consequences• Losing learning opportunity• Academic consequences

455 Intro [Bono] 17

Page 18: CSCI455: Introduction to Programming System Design

Java naming conventions // CarDriver.javapublic class CarDriver {

public static final double MILES_PER_GALLON = 35.6;

public static void main(String[] args) {double distanceTraveled = 10;double gasUsed =

distanceTraveled/MILES_PER_GALLON; System.out.println(gasUsed)

}}

455 Intro [Bono] 18