CSCI455: Introduction to Programming System Design Claire Bono bono@usc.edu Spring 2022 http://bytes.usc.edu/cs455/ 455 Intro [Bono] 1 Today’s topics • Course overview and logistics • Academic integrity • Java naming conventions (time permitting) 455 Intro [Bono] 2 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. • Office hours this week: – Tu and Th after lecture on the same zoom meeting – also, Tu and Th 4 – 4:30 (zoom code will be on piazza) – Ben (head TA) Wed 5 - 6 455 Intro [Bono] 3 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 week 455 Intro [Bono] 4 What's going on these days…? • The Covid situation is still 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 – 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 – (after week 2) in-person lecture attendance is enouraged but not required (e.g., you have symptoms) – (after week 2) 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 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 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 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 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 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 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 Coursework • Readings and videos • In-class work (5%) – answer questions in classroom polls (can by done asynchronously) – solve problems in pairs • 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. 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 (pairs start second week) • 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 to work on it 455 Intro [Bono] 13 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 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 Academic integrity policy • See Course Syllabus for details. 455 Intro [Bono] 16 Some reasons not to cheat • Dishonest • USC reputation • Real world consequences • Losing learning opportunity • Academic consequences 455 Intro [Bono] 17 Java naming conventions // CarDriver.java public 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