Syllabus
CSC 210 Software Development – Fall 2024
Location and Times
This course is scheduled to be an in-person course, meeting in-person three times a week. There are multiple sections of the course with various meeting times. Your meeting time should be one of the following:
- Gittings Rm 129b, 9:00-9:50am, MWF
This is a four-unit course, meeting in the lecture room three times a week (MWF). The weekly zoom lab sessions are flexible, meaning students have a number of time slots to choose from. To schedule your lab session go to the weekly lab session spreadsheet.
Attendance is expected and required.
If you need an exception due to a medical or visa issue, please reach out to the DRC or instructor.
Course Description
This course is an introduction to the development of large scale software. Topics include modularization, design patterns, documentation, unit testing, source code control, build systems, debuggers, and performance tuning; all of the tools necessary for developing software as opposed to writing small programs.
Browse the UA catalog for official UA course descriptions.
Course Objectives
The main objective of this course is for students to learn how to decompose problems and solve them with a program and do this in an effective manner that enables your future self and others to read, understand, and maintain your programs. Other objectives include learning a second programming language (Java), learning decomposition and debugging strategies, and learning GUI event-driven programming (JavaFX).
Expected Learning Outcomes
At the end of this course, students will be able to:
decompose the solution for a project specification into subproblems and iteratively develop the project using multiple interacting classes, class inheritance, hierarchical data structures, and/or event-driven programming
use data structures (i.e., hash table, tree, and graph), common algorithm patterns (i.e., exhaustive search, divide and conquer, recursive backtracking, and heuristic), unit testing, and debugging to write a correct solution to each sub-problem and integrate the sub-problem solutions into a complete working project (currently using Java).
evaluate the decomposition, clarity, performance, and style of a program when provided with example solution components and a rubric
compare and contrast programming in two programming languages (currently Python and Java).
build graphical user input and output for programs (currently using JavaFX)
Instructor, Teaching Staff, and Contact Information
Instructor: Adriana Picoral
- Office: Gould-Simpson 811
- Email: adrianaps@arizona.edu
- Office hours (open door, drop in, my office GS 811):
- Monday 2:30pm to 3:30pm
- Wednesday 10:30am to 12:30pm
There will also be many undergraduate TAs. See the class website for their contact info!
Course Format and Teaching Methods
The class meets in person, in Gittings 129b on Monday, Wednesday and Friday 9am to 9:50am.
Students are responsible for reading the announcements posted on the course website and D2L. Students are also responsible for completing all of the posted reading assignments, quizzes, drills, programming assignments, and peer reviews.
This course includes three class meetings per week and one lab session per week (this is a 4-unit course).
- The class meetings will be interactive and collaborative (meaning, you will need a laptop computer to work on in-class activities during class).
- Be in your seat and ready to go at 9am. Class will start promptly at 9am.
- You will sit with a group of 3 other students.
- There will be approximately 5 TAs and an instructor in the room to help with activities.
- Semi-anonymous questions can be asked during class using slido (https://www.sli.do/).
- There will be at least one think-group-share activity per class session. For the share portion, a group will be randomly selected and a volunteer from that group will share what they discussed in their group.
Lab sessions will involve learning material that is NOT covered in class and doing short programming exercises.
Grading Scale and Policies
Grades will be posted on D2L. All graded work will be done and submitted individually. Discussions amongst students in the class are encouraged, but DO NOT copy code or text from other students, tutors, or ANYONE else. Letter grades will be assigned using the typical scale: >=90 A, >=80 B, >=70 C, >=60 D, and <60 E.
The course grade consists of the following:
- Programming Assignments, 20%
- Short Assignments, 10%
- Quizzes, 20%
- Midterm 1, 15%
- Midterm 2, 15%
- Final, 20%
Due Dates and Submission
Programming and short assignments are to be submitted to Gradescope and are due at 11:30 pm on their associated DUE DATE.
Missing an Exam
Exam make-ups will be provided if you have a Dean’s excuse. Otherwise, if you miss an midterm exam, your NA
grade will be replaced with your final exam grade.
Grading Promptness
Grades will be provided within 5 school days of the deadline. Any exceptions to this will be announced on Piazza and in class.
Late Policy
Anything late will not be graded and you will receive a 0%. Anything medical and/or disability-related should be discussed with DRC on campus (https://drc.arizona.edu/students/connect-drc). They work with instructors to put any accommodations in place.
Dispute of Grade Policy
Any requests for grading corrections must be done within 5 school days of the assignment being due.
Incomplete (I) or Withdrawal (W):
Requests for incomplete (I) or withdrawal (W) must be made in accordance with University policies, which are available at https://catalog.arizona.edu/policy/courses-credit/grading/grading-system.
Makeup Policy for Students Who Register Late
If you register after the first class meeting you may make up missed assignments within your first week of attendance. You are responsible for contacting the instructor within that first week to have extensions set-up. The instructor will not be contacting you directly, you have to initiate this process to make up missed work. If you do not, the instructor will assume you are not interested in making up missed assignments.
Course Communications
All online communication will be conducted through my official UA e-mail address (adrianaps@arizona.edu) D2L, and Piazza.
Required Texts or Readings
All readings, videos, and assignment instructions will be available in the course website.
- Course D2L: https://d2l.arizona.edu/d2l/home/1497427
- Course website: https://adrianapicoral.com/csc-210/
Honors Credit
Students wishing to contract this course for Honors Credit should e-mail me to set up an appointment to discuss the terms of the contact and to sign the Honors Course Contract Request Form. The form is available at http://www.honors.arizona.edu/honors-contracts.
Scheduled Topics/Activities
Week 1 and 2 Aug 26 - Sept 06: Course learning objectives and Java as a second programming language
Labor Day - no classes September 2, 2024
- PA1 due Wednesday, September 11, 2024 at 11:30pm
Week 3 Sep 09 - Sep 13: Java collections: arrays, lists, sets, and hashmaps, and algorithm patterns: Sliding Window
- PA2 due Wednesday, September 18, 2024 at 11:30pm
Week 4 Sep 16 - Sep 20: Algorithm patterns: exhaustive search and recursive backtracking
- PA3 due Wednesday, September 27, 2024 at 11:30pm
Week 5 Sep 23 - Sep 27: Midterm on Wednesday
Week 6 Sep 30 - Oct 04: classes, interfaces, trees and tree traversals, SAT problem
- PA4 due Wednesday, October 04, 2024 at 11:30pm
Week 7 Oct 07 - Oct 11: inheritance, class hierarchies, debugging, using data to encode
- PA5 due Wednesday, October 11, 2024 at 11:30pm
Week 8 Oct 14 - Oct 18: interfaces, Object base class, enumerated types
- Class hierarchy diagram for PA6 due Wednesday by 11:30pm
Week 9 Oct 21 - Oct 25: composing data structures, generics
- PA6 due Wednesday, October 16, 2024 at 11:30pm
Week 10 Oct 28 - Nov 01: GUI principles
- PA7 due Wednesday, October 30, 2024 at 11:30pm
Week 11 Nov 04 - Nov 06: Wednesday Midterm 2
Week 12 Nov 08 - Nov 15: GUI Output
Veterans Day - no classes November 11, 2024
- PA8 due Wednesday, November 13, 2024 at 11:30pm
Week 13 Nov 18 - Nov 22: GUI Input, Event-driven programming, and MVC
- PA9 due Wednesday, November 22 2024 at 11:30pm
Week 14 Nov 25 - Nov 27: Decomposition: top down and bottom up
Thanksgiving recess November 28-December 1, 2024
Week 15 Dec 02 - Dec 067: Lambda functions,
- PA10 due Wednesday, December 04, 2024 at 11:30pm
Week 16 Dec 09 - Dec 11: Java vs. Python reprise and review for final exam
Last day of classes and laboratory sessions December 11, 2024
Final exam is on Thursday, December 19, 10:30am to 12:30pm (schedule of final exams)
Classroom Behavior Policy
To foster a positive learning environment, students and instructors have a shared responsibility. We want a safe, welcoming, and inclusive environment where all of us feel comfortable with each other and where we can challenge ourselves to succeed. To that end, our focus is on the tasks at hand and not on extraneous activities (e.g., texting, chatting, reading a newspaper, making phone calls, web surfing, etc.).
Students are asked to refrain from disruptive conversations with people sitting around them during lecture. Students observed engaging in disruptive activity will be asked to cease this behavior. Those who continue to disrupt the class will be asked to leave lecture or discussion and may be reported to the Dean of Students.
Code of Academic Integrity
All work you submit for grading in this course must be your own. Submitting work that includes many (minor and/or major) components that are not your own work is considered plagiarism. Instances of plagiarism will be reported to the Dean of Students.
Keep in mind that all assignments and practice problems provided in this course are meant to help you to practice the skills that you will need for graded work (including on paper quizzes and exams), so it is generally in your best interest to avoid taking shortcuts even on these assignments.
The penalty for breaking the academic integrity code is zero points awarded to the assignment found to be plagiarizes and -5 points from final grade (out of 100 points).
Students are expected to adhere to the UA Code of Academic Integrity as described in the UA General Catalog. See https://deanofstudents.arizona.edu/student-rights-responsibilities/academic-integrity.
Uploading material from this course to a website other than D2L is strictly prohibited and will be considered a violation of the course policy and a violation of the code of academic integrity. Obtaining material associated with this course (or previous offerings of this course) on a site other than D2L and the course website, such as Chegg, Course Hero, etc. or accessing these sites during a quiz or exam is a violation of the code of academic integrity. Any student determined to have uploaded or accessed material in an unauthorized manner will be reported to the Dean of Students for a Code of Academic Integrity violation, with a recommended sanction of a failing grade in the course (faculty can replace this sanction with whatever sanction they plan to use for their course).
Selling class notes and/or other course materials to other students or to a third party for resale is not permitted without the instructor’s express written consent. Violations to this and other course rules are subject to the Code of Academic Integrity and may result in course sanctions. Additionally, students who use D2L or UA e-mail to sell or buy these copyrighted materials are subject to Code of Conduct Violations for misuse of student e-mail addresses. This conduct may also constitute copyright infringement.
Safety on Campus and in the Classroom
For a list of emergency procedures for all types of incidents, please visit the website of the Critical Incident Response Team (CIRT): https://cirt.arizona.edu/case-emergency/overview
Also watch the video available at https://arizona.sabacloud.com/Saba/Web_spf/NA7P1PRD161/app/me/ledetail;spf-url=common%2Flearningeventdetail%2Fcrtfy000000000003841
University-wide Policies link
Links to the following UA policies are provided here, http://catalog.arizona.edu/syllabus-policies:
- Absence and Class Participation Policies
- Threatening Behavior Policy
- Accessibility and Accommodations Policy
- Code of Academic Integrity
- Nondiscrimination and Anti-Harassment Policy
Department-wide Syllabus Policies and Resources link
Links to the following departmental syllabus policies and resources are provided here, https://www.cs.arizona.edu/cs-course-syllabus-policies :
- Department Code of Conduct
- Class Recordings
- Illnesses and Emergencies
- Obtaining Help
- Preferred Names and Pronouns
- Confidentiality of Student Records
- Additional Resources
- Land Acknowledgement Statement
Subject to Change Statement
Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor.