The course introduces students to principles, concepts and techniques associated with team-based development of large, complex software systems. It is assumed that students know how to program and have developed programs using the Java language. Major topics include system and requirements engineering, object-oriented design, and systematic code testing techniques. Students will learn to use software tools such as Git, JUnit, and EclEmma in the context of a scrum-based agile development project.
CS253 and all the prerequisites for CS253 including CS160, CS161, and CS200.
Piazza: You will use Piazza for getting help fast and efficiently from classmates and the teaching staff (TAs and instructors). Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza. Piazza can be accessed from the Module tab on Canvas as well as directly from the piazza website. Make sure you accept the email invitation to join Piazza at the beginning of the semester.
Email: For questions that are more personal in nature (e.g., grades, absences, etc), email the course account firstname.lastname@example.org. The email will be received by the entire course staff, and the appropriate person will respond.
Office hours:The course staff will keep office hours. Feel free to stop by to discuss your projects or ask questions. You can also bring your team to these meetings.
Here are the formally graded elements of the course:Team projects
You will work in teams of three to develop a software application. During the course of the semester, you will identify and analyze requirements, use techniques learned in this class to develop a high level object-oriented design, implement a working prototype, and develop test cases. The projects will involve iterative, incremental software development. Individual grades depend on the contribution of each team member; they may be adjusted up or down.Project planning meetings
For each major project, there will be a team planning meeting held during the lecture. This meeting will follow the rules of Scrum.Design studios
Course material will be taught in a hands-on manner. Design studios involve learning the material, taking a preparatory quiz to test key concepts, and working on an exercise as a team in class. The same project team is involved in each design studio, so get to know your team members quickly.
The preparatory quiz will be given on Canvas, and will be due at midnight before the lecture in which the design studio exercise will be held. Such quizzes will mostly follow a Multiple-Choice pattern, although we reserve the right to use other formats.
At the beginning of the semester, a prereq quiz will be administered on Canvas to test your knowledge of prereq material on Java, discrete structures, and data structures. This quiz will count as part of the category Quizzes.
We may from time to time give a paper quiz in class. No collaboration will be allowed on such paper quizzes. If a paper quiz is given, it will be announced in advance. Paper quizzes will be included as part of the Quizzes category.Exams
There are two midterm exams but no final. The midterm exams will be held in class during the regular class period.
|Midterm 1||Oct 10, in class||Material covered until Oct 7|
|Midterm 2||Dec 2, in class||Material covered after the first midterm|
An overall course grade will be awarded based on continuous evaluation in the form of team projects, project planning meetings, design studios, and two midterm exams. Projects, design studios, and planning meetings will happen throughout the semester, so be prepared! The following table shows each component.
Grades will be assigned according to the following table. The actual cutoffs may be adjusted depending on the performance of the entire class; cutoffs can be lower but never higher. After the midterm exam and before the final, we will announce "approximate" letter grades so that you know where you are.
|[80-90)||B-, B, B+|
|[70-80)||C, C+ (no C- will be given)|
We will be glad to re-grade the same submission if you feel that there was a mistake in grading. Contact us by email email@example.com within 4 calendar days for a re-grade. Work will be re-graded in its entirety, and may result in an increase, decrease, or no change in the grade. Note that, once we have graded an assignment, we will not allow you to re-do and re-submit it for grading.
No late submissions are allowed for any Canvas quizzes. No late submissions are allowed for project planning meetings and in-class work for design studios. The lowest grade for each of the categories (1) project planning meeting, (2) canvas quizzes for design studios, and (3) in-class work for design studios) will be dropped to make up for missed work.
Late penalties for projects are as follows:
If there are reasons that are unexpectd and beyond your control (e.g., illness) or university sanctioned trips, extensions will be granted on a case-by-case basis and are more likely when permission is sought in advance. Short extensions will be given.
Note that the percentages refer to the total points available for the deliverable, not the points that you have received. That is, if an assignment is worth 100 points, and you get 76 and are 7 hours late, you will receive 66 points.
All students are expected to conduct themselves professionally. We (the instructors and GTA) assume you are familiar with the policies in the student information sheet for the department and the department conduct code. Additionally, you are computing professionals, albeit perhaps just starting. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.
This course will adhere to the CSU Academic Integrity Policy as found in the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.
Students not already familiar with the CSU Honor Pledge should review this clear and simple pledge and always adhere to it. Academic dishonesty will be dealt with severely. The first instance of cheating will result in negative credit. The second instance will result in a failing grade and other penalties dictated by departmental and university policies.
We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular:
We require you to follow the guidelines listed below for postings on Canvas:
|First day of classes||Mon, Aug 22|
|Last day of classes||Fri, Dec 9|
|Last day for restricted drop||Fri, Aug 26|
|Deadline to add without override||Sun, Aug 28|
|Last day to withdraw||Mon, Oct 17|
|First midterm||Mon, Oct 10, during class|
|Second midterm||Fri, Dec 2, during class|