CSCI 201: Principles of Software Development

CSCI 201: Principles of Software Development

Term: Spring 2024
Units: 4
Lecture: Tue, Thu 11:00a.m.-12:20p.m., THH 101 (30381D)
The lectures will also be live on Zoom.
Labs: Tuesday 3:30-5:20p.m., SAL 109 (29929R)
Wednesday 10:00-11:50a.m., SAL 109 (20030R)
Tuesday 5:30-7:20p.m., SAL 109 (20031R)
Wednesday 8:00-9:50a.m., SAL 126 (29990R)
Monday 12:00-1:50p.m., SAL 109 (30039R)
Thursday 5:00-6:50p.m., SAL 109 (30110R)
Monday 10:00-11:50a.m., SAL 127 (30317R)
Wednesday 10:00-11:50p.m., SAL 126 (30318R)
Wednesday 12:00-1:50p.m., SAL 127 (30380R)
Monday 2:00-3:50p.m., SAL 126 (30383R)
Quiz: Thursday 5:00p.m. - Sunday 11:59p.m. ONLINE (29981R)
Instructor: Marco Papa, Ph.D.
Office: PHE 516
Office Hours: Thursday 4:00-5:00p.m.
Contact Info: [email protected]
Teaching Assistant: Harshit Kumar Jain
Contact Info: [email protected]
Teaching Assistant: Radhesh Harlalka
Contact Info: [email protected]
Teaching Assistant: Nirosh Prakash
Contact Info: [email protected]
Teaching Assistant: Kumar Kandula
Contact Info: [email protected]
Teaching Assistant: Atharva Mundada
Contact Info: [email protected]
Teaching Assistant: Akshita Gupta
Contact Info: [email protected]
Teaching Assistant: Namrata Sharma
Contact Info: [email protected]
Course Producers: Listed in D2L Brightspace and PiazzaCSCI 201 Syllabus
Course Description
Object-oriented paradigm for programming-in-the-large in Java; writing sophisticated concurrent applications with animation and graphical user interfaces; using professional tools on team project. Porting over all the C++ knowledge to Java. By the end of the semester, you should be more proficient in Java than C++, and will understand how to program large-scale applications, utilizing Web front-end and MySQL backend.
Learning Objectives
Course Outcomes (expected after you've finished the course)
i
The ability to explain software engineering in terms of requirements, design, and implementation;
ii
The ability to use interaction diagrams to help define requirements;
iii
The ability to produce a software design based on requirements;
iv
The ability to produce software, including graphical user interfaces, from a design;
v
The ability to unit-test a module;
vi
The ability to explain concurrency and how it works in computer operating systems;
vii
The ability to write multi-threaded programs and correctly solve a mutual exclusion problem using semaphores or monitors;
viii
The ability to use Java in writing programs;
ix
The ability to use HTML and CSS in designing graphical user interfaces;
x
The ability to use messaging as a communication method;
xii
The ability to apply a software engineering process to a large software project;
xiii
The ability to work effectively on a team;
xiv
The ability to analyze ethical issues in working within a group;
Graduates of the program will have an ability to:
1
Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
2
Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
3
Communicate effectively in a variety of professional contexts.
4
Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
5
Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
Prerequisite(s): CSCI 104L – Data Structures and Object-Oriented Design.
Course Notes
The course will have both lectures and labs. The lectures will be given live, in-person. D2L Brightspace will be used for hosting the course materials (slides, labs, assignments), grades, and Zoom will be used for live streaming the lectures. D2L Brightspace will be used by students for uploading completed assignments and taking quizzes and exams.
In-person and Online Lectures

Lectures will be held live, in-person, and on Zoom. Lecture recordings will not be available. 

A Zoom Meeting link for lectures will be available on D2L Brightspace.`

Technological Proficiency and Hardware/Software Required
We will be using Java, Eclipse, IntelliJ IDEA (optional), Tomcat, and MySQL in this class. Those pieces of software are available for free and will run on macOS, Windows and Linux laptops. The installations will be done as part of different labs throughout the semester. We will also be using HTML, CSS, and JavaScript. Students are required to have a laptop, running Windows, macOS or Linux, for labs and exams. Windows and macOS laptops are available through the USC Computing Center Laptop Loaner Program. USC Technology Support Links: Zoom information for students, D2L Brightspace.
Required Readings and Supplementary Materials
The following textbook will be used for reference and is optional to purchase. Liang, Y. Daniel. Introduction to Java Programming and Data Structures, Comprehensive Version, 12 th Edition, Pearson, 2021. ISBN-13: 9780136520238.
Description and Assessment of Assignments
The course includes 4 individual assignments and 1 team assignment. Assignment #1 covers basic Java topics, JSON, and Sorting. Assignment #2 covers locks, semaphores, and multi-threaded programming. Assignment #3 covers networking, concurrency, and APIs. Assignment #4 covers a complete Web application built using HTML, CSS and JavaScript for the front-end, and Java Servlets, JDBC and MySQL for the back end. The final team project covers the entire software engineering process, including high-level requirements, technical specifications, design, architecture, implementation, testing, and formal documentation, plus a live demo of a running application. Each assignment serves to measure student performance on at least one or more learning objectives.
Participation
Credit for participation is acquired by showing up and contributing to the weekly team meetings of the final team project.
Grading Breakdown
Assessment
% of Grade
Labs
10%
Assignments
20%
Weekly Quizzes
10%
Group Project
30%
Written Exam #1
15%
Written Exam #2
15%


TOTAL
100%
Grading Scale
Grades are not curved but based on proficiency with the material. Ranges operates in favor of the students. At the end of the semester, if the average in the class is lower than 80%, the average will become the cut-off between a B- and a C+. Final scores will be rounded up.

x >= 93
A
73 <= x < 77
C
90 <= x < 93
A-
70 <= x < 73
C-
87 <= x < 90
B+
67 <= x < 70
D+
83 <= x < 87
B
63 <= x < 67
D
80 <= x < 83
B-
60 <= x < 63
D-
77 <= x < 80
C+
x < 60
F
Assignments Weights
Assignments have different maximum points and weights, contributing to 20% of the total score.

Assignment
Maximum Points
Weight
#1
3
20%
#2
5
30%
#3
5
30%
#4
6
20%



TOTAL
19
100%
Assignment Submission Policy
Assignments will be discussed in class and worked on individually. Discussion among students is fine, but no copying of other student’s code is allowed. The program needs to compile, and grading will only occur if the program is able to be run. Assignments will be submitted to D2L Brightspace (instructions will be provided in class and on Piazza) and are due by 11:59p.m. on the due date (see Late Policy below). Grading criteria will be provided in a rubric included in the assignment description. CPs will grade the assignments. Due to the manual grading, we require you to submit all projects as Eclipse Exported “Archive File” in ZIP format. All grades will be posted to D2L Brightspace gradebook.
Grading Timeline
Assignments will typically be graded within 7 days of the due date. Exams are usually graded within a few hours of being completed. Online Exams will be auto graded by D2L Brightspace Quiz Tool. Labs will be graded during the lab section in which they are assigned. Final project deliverables will typically be graded within 3 days of the due date. Weekly quizzes will be auto graded by D2L Brightspace Quiz Tool.
Course Specific Policy - Regrading
Once grades are entered into D2L Brightspace gradebook, students will be able to request a regrade if they think a mistake has been made in the grading through the following process:
1. Once an assignment is graded, an online form will be provided on Piazza, to submit a formal regrading request. Note that this is the only request that can be made to regrade that specific assignment, so be sure to include all relevant information. If the request is submitted more than 2 days after form is posted, the request will be denied.
2. The TAs will review the request and determine if a regrade will be granted.
a. If the regrade request is denied, the original grade will stand.
b. If the regrade request is granted, the TA will forward the request to a grader (possibly a different one than who originally graded it). The grader will conduct a regrade and send the updated grade to the TA, who will then enter it into D2L Brightspace.
3. There will be only one regrade request, and the score after the regrade is final. If any questions arise beyond that, the student will need to speak with the professor in person.
Course Specific Policy - Late Policy
Each student will have two (2) grace days to use during the semester for submitting assignments late. Grace days can only be used on assignments (not labs, final project deliverables, exams, weekly quizzes, etc.), and the days can be used in any combination. For example, you could use one grace day on assignment 1 and one grace day on assignment 2. All submissions other than for assignments in accordance with this policy must be submitted by 11:59p.m. on the due date or will receive a 0.
After the two grace days have been used, any assignment submitted late will receive a 0. A grace day will be counted for any assignment submitted after 11:59p.m. on the due date. To state that another way, if an assignment is submitted after the due date, at 12:00a.m. (midnight) or later, grace days will be used. The  grace days do not need to be approved by the professor, but any exceptions other than grace days will need professor approval. In exceptional circumstances, late submissions will be accepted, with a 30% penalty.
Attendance
There is no lecture attendance requirement that counts towards your grade in the class. However, students who do not attend the lectures are responsible for all material covered in the lectures. Lecture recordings will not be available. In-person attendance is required for all labs. The course uses the Piazza online forum platform to efficiently simulate and manage class discussions. Discussions are limited to course materials, assignments, and exams. Following all postings on Piazza is also required.
Final Project
The project in the class will be assigned approximately half-way through the semester. CPs will create project teams based on common interests. Each team is required to submit a project proposal. As a team you will have weekly meetings with your CPs, acting as ad hoc peer mentors and graders. The teams will consist of between 7-8 students. Formal documentation following the software engineering process will be required. The project will be discussed in class with the corresponding due dates. The project deliverables will be submitted via D2L Brightspace by ZIP files and recorded video and are due by 11:59p.m. on the due date. The project has no available grace days.
Labs
The CPs will act as lab assistants for the lab sections each week. There will be an assigned lab program each week that reinforces the topics covered in the lectures. The lab assignments will be graded based on effort, attendance, completion, and understanding. The labs are intended to be completed during the lab period, and you are expected to work individually on the lab during the section. The lab assistants are there to answer any questions and help you, similarly as they do on Piazza, so use your time in lab wisely. You will be asked one or more questions by the lab assistants at the end of each lab to ensure you understood what was covered. If you cannot answer the questions, the lab assistants can deduct points from your lab grade. Each lab 1-8 is worth 0.8% of the final grade, and each lab 9-12 is worth 0.9% of the final grade and the total lab score is out of 10%. We will not record video of the labs, because during the lab no new material will be taught.
Weekly Quizzes
There will be weekly quizzes, using D2L Brightspace Quiz Tool, that must be completed each week. This will ensure that students are attending the lectures and understand some of the concepts covered. The weekly quizzes are worth 10% of the course grade, with 0.77% given each week. There will be 13 weeks that contain weekly quizzes (no weekly quizzes during the midterm week).
Exams
Exam #1 Tuesday, March 5, 2024. 11:00a.m.-12:00p.m.
Exam #2 Thursday, April 25, 2024. 11:00a.m.-12:00p.m.
The written exams consist of theoretical questions and may include code to be analyzed. No code will be required to be written. All exams are in-person, using the D2L Brightspace Quiz Tool. Access to the classroom to take the exams will be provided only after having your student USC ID scanned by smartphone and its ID number verified and checked against a spreadsheet of the roster. An exam can only be taken on the scheduled date and at the scheduled starting time. Accommodations for students with letters from OSAS will be provided, though the exam will still need to be taken on the scheduled date and start time, unless a specific accommodation has been granted by OSAS. There are no makeup exams. If you miss an exam due to an emergency, official written documentation, whatever that may be based on the situation, will need to be submitted to the instructor as soon as you are physically able (before the exam if possible). Approval will be solely based on the instructor discretion though it should be based on a documented illness or emergency. Based on the exam, here are the rules that will be followed:
- If an excuse is not approved, you will be given a 0 on the exam.`
- If there is an approved excuse for written exam #1, the percentage for that exam will be added to the percentage for written exam #2.
- If there is an approved excuse for written exam #2, you will receive an Incomplete grade in the course and must make up the exam based on the conditions of an Incomplete.
Academic Integrity
The University of Southern California is foremost a learning community committed to fostering successful scholars and researchers dedicated to the pursuit of knowledge and the transmission of ideas. Academic misconduct is in contrast to the university’s mission to educate students through a broad array of first-rank academic, professional, and extracurricular programs and includes any act of dishonesty in the submission of academic work (either in draft or final form).
This course will follow the expectations for academic integrity as stated in the USC Student Handbook. All students are expected to submit assignments that are original work and prepared specifically for the course/section in this academic term. You may not submit work written by others or “recycle” work prepared for other courses without obtaining written permission from the instructor(s). Students suspected of engaging in academic misconduct will be reported to the Office of Academic Integrity.
Other violations of academic misconduct include, but are not limited to, cheating, plagiarism, fabrication (e.g., falsifying data), knowingly assisting others in acts of academic dishonesty, and any act that gains or is intended to gain an unfair academic advantage.
The impact of academic dishonesty is far-reaching and is considered a serious offense against the university and could result in outcomes such as failure on the assignment, failure in the course, suspension, or even expulsion from the university.
For more information about academic integrity see the student handbook or the Office of Academic Integrity’s website, and university policies on Research and Scholarship Misconduct.
Please ask the instructor if you are unsure about what constitutes unauthorized assistance on an exam or assignment, or what information requires citation and/or attribution.
Collaboration. In this class, you are expected to submit work that demonstrates your individual mastery of the course concepts.
Group work. Unless specifically designated as a ‘group project,’ all assignments are expected to be completed individually.
Accordingly, all assignment #1 through #4 are individual assignments. The final team project is the only group work.
Computer programs. Plagiarism includes the submission of code written by, or otherwise obtained from someone else, including a source like ChatGPT.
If found responsible for an academic violation, students may be assigned university outcomes, such as suspension or expulsion from the university, and grade penalties, such as a zero on the assignment, exam, and/or “F” in the course.
Use of Generative AI in this Course
Generative AI permitted but limited as follows: In this course, you are permitted to use artificial intelligence (AI)-powered programs to help you, but only on assignments that explicitly indicate a permitted use of AI. However:
● You should also be aware that AI text generation tools may present incorrect information, biased responses, and incomplete analyses; thus, their answers may not meet the standards of this course.
● To adhere to our university values, you must cite any AI-generated material (e.g., text, images, program code and other content) included or referenced in your work and provide the prompts used to generate the content. Using an AI tool to generate content without proper attribution will be treated as plagiarism and reported to the Office of Academic Integrity. Cite and credit AI generated material using MLA Style as described in USC Libraries AI Generators Citation Guidance.
Please review the instructions in each assignment for more details on how and when to use AI Generators for your submissions.
Course Content Distribution and Synchronous Session Recordings Policies
USC has policies that prohibit recording and distribution of any synchronous and asynchronous course content outside of the learning environment.
Recording a university class without the express permission of the instructor and announcement to the class, or unless conducted pursuant to an Office of Student Accessibility Services (OSAS) accommodation.
Recording can inhibit free discussion in the future, and thus infringe on the academic freedom of other students as well as the instructor. (Living our Unifying Values: The USC Student Handbook, page 13).
Distribution or use of notes, recordings, exams, or other intellectual property, based on university classes or lectures without the express permission of the instructor for purposes other than individual or group study.
This includes but is not limited to providing materials for distribution by services publishing course materials. This restriction on unauthorized use also applies to all information, which had been distributed to students or in any way had been displayed for use in relationship to the class, whether obtained in class, via email, on the internet, or via any other media. (Living our Unifying Values: The USC Student Handbook, page 13).
Course Evaluations
Course evaluation occurs at the end of the semester university wide. It is an important review of students experience in the class. The intent of the end-of-semester evaluation is to provide an evaluation of the course, the instructor, and whether the learning objectives have been achieved. In addition, the instructor will provide an online mid-semester evaluation that will be used for early course correction.
Inclusion
It is the instructor intention that students from all backgrounds and perspectives will be well served by this course, and that the diversity that students bring to this class will be viewed as an asset. I welcome individuals of all ages, backgrounds, beliefs, ethnicities, genders, gender identities, gender expressions, national origins, religious affiliations, sexual orientations, socioeconomic background, family education level, ability – and other visible and nonvisible differences. All members of this class are expected to contribute to a respectful, welcoming, and inclusive environment for every other member of the class. Your suggestions are encouraged and appreciated.
Lived Name / Pronoun
I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records.`

Lecture and Exam Schedule
Chapter references are from Y. Daniel Liang, Introduction to Java Programming and Data Structures, Comprehensive Version, 12 th Edition, Pearson, 2021. ISBN-13: 9780136520238. Low-cost, e-Textbook rental link available here: https://www.pearson.com/en-us/subject catalog/p/introduction-to-java-programming-and-data-structures/P200000003470/9780137554768
Note: Chapter 31-38 available on Companion Website at www.pearsonhighered.com/liang.

Assessments Schedule

NOTE: The first 8 labs are worth 0.8% each, and the last 4 labs are worth 0.9% each. Quizzes are worth 0.77% each, for a total of 10%. See sections on Labs and Weekly Quizzes for more information.

Statement on Academic Conduct and Support Systems

Academic Conduct

Office of Academic Integrity – (213) 764-4163 academicintegrity.usc.edu Plagiarism – presenting someone else’s ideas as your own, either verbatim or recast in your own words – is a serious academic offense with serious consequences. Please familiarize yourself with the discussion of plagiarism in The USC Student Handbook, in the section titled “Integrity and Accountability”. Other forms of academic dishonesty are equally unacceptable. The course uses the MOSS tool to check for plagiarism. All incidents of plagiarism will be reported to the Office of Academic Integrity.
Students and Disability Accommodations:
USC welcomes students with disabilities into all of the University’s educational programs. The Office of Student Accessibility Services (OSAS) is responsible for the determination of appropriate accommodations for students who encounter disability-related barriers. Once a student has completed the OSAS process (registration, initial appointment, and submitted documentation) and accommodations are determined to be reasonable and appropriate, a Letter of Accommodation (LOA) will be available to generate for each course. The LOA must be given to each course instructor by the student and followed up with a discussion.
This should be done as early in the semester as possible as accommodations are not retroactive. More information can be found at osas.usc.edu. You may contact OSAS at (213) 740-0776 or via email at [email protected].
Support Systems:
Counseling and Mental Health - (213) 740-9355 – 24/7 on call Free and confidential mental health treatment for students, including short-term psychotherapy, group counseling, stress fitness workshops, and crisis intervention.
988 Suicide and Crisis Lifeline - 988 for both calls and text messages – 24/7 on call The 988 Suicide and Crisis Lifeline (formerly known as the National Suicide Prevention Lifeline) provides free and confidential emotional support to people in suicidal crisis or emotional distress 24 hours a day, 7 days a week, across the United States. The Lifeline is comprised of a national network of over 200 local crisis centers, combining custom local care and resources with national standards and best practices. The new, shorter phone number makes it easier for people to remember and access mental health crisis services (though the previous 1 (800) 273-8255 number will continue to function indefinitely) and represents a continued commitment to those in crisis.
Relationship and Sexual Violence Prevention Services (RSVP) - (213) 740-9355(WELL) – 24/7 on call Free and confidential therapy services, workshops, and training for situations related to gender- and power-based harm (including sexual assault, intimate partner violence, and stalking).
Office for Equity, Equal Opportunity, and Title IX (EEO-TIX) - (213) 740-5086
Information about how to get help or help someone affected by harassment or discrimination, rights of protected classes, reporting options, and additional resources for students, faculty, staff, visitors, and applicants.
Reporting Incidents of Bias or Harassment - (213) 740-5086 or (213) 821-8298
Avenue to report incidents of bias, hate crimes, and microaggressions to the Office for Equity, Equal Opportunity, and Title for appropriate investigation, supportive measures, and response.
The Office of Student Accessibility Services (OSAS) - (213) 740-0776
OSAS ensures equal access for students with disabilities through providing academic accommodations and auxiliary aids in accordance with federal laws and university policy.
USC Campus Support and Intervention - (213) 740-0411
Assists students and families in resolving complex personal, financial, and academic issues adversely affecting their success as a student.
Diversity, Equity and Inclusion - (213) 740-2101
Information on events, programs and training, the Provost’s Diversity and Inclusion Council, Diversity Liaisons for each academic school, chronology, participation, and various resources for students.
USC Emergency - UPC: (213) 740-4321, HSC: (323) 442-1000 – 24/7 on call Emergency assistance and avenue to report a crime. Latest updates regarding safety, including ways in which instruction will be continued if an officially declared emergency makes travel to campus infeasible.
USC Department of Public Safety - UPC: (213) 740-6000, HSC: (323) 442-1200 – 24/7 on call Non-emergency assistance or information.
Office of the Ombuds - (213) 821-9556 (UPC) / (323-442-0382 (HSC)
A safe and confidential place to share your USC-related issues with a University Ombuds who will work with you to explore options or paths to manage your concern.
Occupational Therapy Faculty Practice - (323) 442-2850 or [email protected]
Confidential Lifestyle Redesign services for USC students to support health promoting habits and routines that enhance quality of life and academic performance.

发表评论

电子邮件地址不会被公开。 必填项已用*标注