Syllabus - Fall 2024
*Syllabus may be subject to change at the discretion of the instructor. You will be notified if a change has been made to the syllabus.
Course Information - CSCI 3308
Semester | Credits | Dates |
---|---|---|
Spring 2024 | 3 CREDITS | Monday, Aug 26, 2024 - Thursday, Dec 12, 2024 |
Class Meetings
Section | Days & Time | Location |
---|---|---|
010 | Monday, Wednesday 8:00 AM – 8:50 AM | HUMN 1B50 |
Course description and prerequisites
This course covers technology tools and methods for software development with a strong focus on best practices used in industry and professional development, such as agile methodologies, full-stack development, pair-programming, front-end user interface, back-end database, front-end-to-back-end integration, application security, using the cloud, using web services, and test-driven design.
The course consists of 2 lectures / week, and one lab session / week. In week 7 of the semester, students will be assigned to a small group of 4-6 students from within their lab section. Each group would then work together outside of class time to develop a working software application while applying the technology methods and tools covered in lecture and lab.
Requisites: Requires prerequisite course of CSCI 2270 (minimum grade C-).
Textbooks and Materials
Required text: None.
Other required reading materials: Will be provided by the instructor each week via Canvas.
Labs
Attendance in all labs are mandatory. Read below for policy associated with absences.
Section | Day & Time | Location | TA |
---|---|---|---|
011 | Thursday 9:30 AM - 11:10 AM | ECES 112 | Lorin Achey |
012 | Thursday 11:25 AM - 1:05 PM | ECES 112 | Abijith Ramachandran |
013 | Thursday 1:20 PM - 3:00 PM | ECES 112 | Zhuoheng Li |
014 | Thursday 3:15 PM - 4:55 PM | ECES 112 | Chloe Eggleston |
015 | Friday 9:05 AM - 10:45 AM | ECEE 283 | Bhargav Shandilya |
016 | Friday 11:15 AM - 12:55 PM | ECEE 283 | Mary Martin |
There are 13 labs scheduled for this semester. No labs will be dropped . Each lab is designed to have 3 parts:
- Part A : Quiz based on Lab Writeup. You are expected to complete the quiz before the lab time.
- Part B : A walkthrough/exercise, that needs to be completed during the lab time, and
- Part C: A take home activity.
ATTENDANCE IN LAB
Attendance may either be taken at the beginning or at the end of the lab or both. It is important that you are punctual and attend the entire lab. You will be evaluated by the TAs/CMs post the completion of Part B during the labs. Additional time will be provided to submit Part C.
ABSENCES IN LAB
- If there is an unavoidable reason for which you will need to miss a lab, you are expected to fill out this Lab Absence Request Form to inform the course in advance and get approval for your absence.
- If there is a medical emergency, you may fill the above form at the earliest possible (no later than 7 days from the day of the lab) to work out a schedule to complete missed work.
- You may request an absence for a maximum of 2 labs. More absences will not be granted.
- To qualify yourself for grading of the lab assignment in case of an excused absence:
- Complete tasks from Part B for the lab.
- Show completed work to your TA at their office hour within 2 business(Mon-Fri) days of the missed lab. If your TA doesn't have an office hour in that timeframe, you can visit another TA's office hours and have them evaluate your work.
Uninformed/unexcused absence in a lab will result in 0 for that lab, irrespective of whether work was submitted for it.
SUBMISSION OF WORK AND DEADLINES
- Your lab exercises will be due before your lab in the following week.
- Please make sure to follow the submission guidelines thoroughly to ensure accurate grading of your work.
To get full credit for the lab, you have to do ALL of the following:
- Complete the Lab Quiz before the start of your section's lab time
- Attend the lab
- Complete the baseline for the lab in class
- Submit correct and complete work for the rest of the lab on GitHub before deadline
Any work submitted past the deadline will not be accepted. Please do not request for an extension.
REGRADE REQUEST
If you are unsatisified with the grade you received, you have until 7 days after the grades are released and are required to fill out the regrade request form linked to the lab writeup or on the sidebar of this website. Regrade requests sent later than the deadline and over any other medium will not be addressed.
Course Staff
Instructors
- Sreesha Nath
- Email - sreesha.nath@colorado.edu
- Office : ECOT 737
- Office Hours : Mondays 2PM - 3PM & Wednesdays 10AM - 11AM
Teaching Assistants (TAs)
- Abijith Ramachandran - Abijith.Ramachandran@colorado.eduu
- Bhargav Shandilya - Bhargav.Shandilya@colorado.edu
- Chloe Eggleston - Chloe.Eggleston@colorado.edu
- Lorin Achey - Lorin.Achey@colorado.edu
- Mary Martin - Mary.Martin@colorado.edu
- Zhuoheng Li - Zhuoheng.Li@colorado.edu
Course Managers (CMs)
- Spriha Mandal - Spriha.Mandal@colorado.edu
- Vaishnavi Sawant - Vaishnavi.Sawant@colorado.edu
Course Assitants (CAs)
- Jerry Li - Jerry.Li@colorado.edu
- Rahul Shamkuwar - Rahul.Shamkuwar@colorado.edu
Office hours
Each member of the instructional staff will be hosting office hours. You can find information about the location and timings on this calendar. Given that we have limited office hours, to maximise the effectiveness of the help provided, here are some ettiquette to follow:
- If you have questions or need help, plan your visit to office hours in advance. This helps ensure that you have enough time to discuss your concerns.
- If someone's office hours are posted or communicated, respect those designated times. Avoid approaching them for work-related discussions outside of these hours, unless it's an urgent matter.
- Bring your materials, notes, and questions to the meeting. This shows that you've put thought into your visit and helps keep the conversation focused.
- Be clear and specific about what you need assistance with. This helps us provide targeted guidance.
- Office hours are a safe space to ask questions, even if you think they might be "basic." We appreciate your effort to understand and learn.
- During office hours, focus on the matter at hand. Avoid unrelated discussions or distractions that could prolong the meeting unnecessarily.
- If you arrive for office hours and find that the person is still engaged with someone else, wait patiently. Avoid hovering or interrupting ongoing conversations.
- Engage in active listening during office hours. This demonstrates that you value the other person's input and are genuinely interested in the discussion.
- Maintain a professional and respectful tone during office hours. Avoid confrontational language or behavior that could create tension.
- Office hours are there for your benefit. Don't feel intimidated. We are happy to help and engage with students.
Course Outcomes
- The student will learn the fundamentals of software development methods and gain exposure and practice using common industry tools that are likely to be used in the workplace.
- The student will acquire state-of-the-art skills that will not only help them do their work in other programming classes but will also give them a very useful vocabulary to use on job applications and during interviews.
- The student will apply software knowledge and skills in the context of a 4 week-long group project.
- From an employer’s perspective, skills learned in this course will boost the student’s resume.
- During the 4/5 week-long Group Application Development Project, the student will successfully use a variety of software development skills and tools introduced in class, and will learn the nuances of working in a group.
- The student will be equipped to choose the best software tool for use in a specific situation.
Brief, high-level list of topics to be covered (subjects may change as the semester proceeds.)
- Unix Shell Scripting
- Agile development methodologies
- Principles of Project Management
- Requirements Definition and Analysis
- Relational Database Design & Construction
- Pair Programming
- Source Code Version Control and Managing Code Conflicts
- HTML & CSS (“Front-end”)
- NodeJS (“middle layer”)
- SQL Query Language ( “Back-end”)
- Documentation of Code
- Web Services
- Cloud Computing
- Code Quality Assessment
- Testing Methods and Strategies
- Containerization, Docker
- Refactoring
- Code/Peer Review
Grading
All labs, homeworks, quizzes, exams will be graded by the instructor, the TAs or the Course Managers. In case of queries with grading, please feel free to reach out to your Instructor or TA. Please do not contact the CA with respect to your grades.
Grade Determination
The overall grades will be based on a cumulative score computed from:
- Quiz + Labs + Take home exercise (35% of the grade)
- Lecture Participation (5% of the grade)
- Group project (35% of the grade)
- Exam 1 (10% of the grade)
- Exam 2 (10% of the grade)
- Surveys (5% of the grade)
Letter grades will be assigned using the standard grading scale:
Letter | A | A- | B+ | B | B- | C+ | C | C- | D+ | D | D- | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Raw Average | 93-100 | 90-92.99 | 87-89.99 | 83-86.99 | 80-82.99 | 77-79.99 | 73-76.99 | 70-72.99 | 67-69.99 | 63-66.99 | 60-62.99 | 00-59.99 |
The grading will be absolute. There will be no curving of grades for any graded assignment/exam.
Course Tools
Canvas
Canvas is the official site for all notifications, assignments and grades.GitHub Classroom
GitHub classroom is the tool that will be used by students to turn in work for labs and group project. You will be provided a repository for each of the assignments are expected to submit work by the scheduled deadlines on Canvas for your sections.
Piazza
A Piazza page has been set up for all the students to collaborate on questions concerning the course work. We encourage students to participate in answering questions before instructors can help out. Please refrain from posting solutions on the Piazza discussion page. Also, tag the appropriate folder when posting questions so that it can be easily located by your fellow students. Piazza will be the primary forum for communication among students and between students and instructional staff. Please be respectful and considerate when posting questions or replying to posts.
It is safe to assume that if you make posts after hours or on weekends, the response will be slower than during weekdays (Mon-Fri) between 9AM - 6PM. The instructional team (Instructor, TAs, CMs, CAs) is not expected to work outside of these hours. It is advised that you start your work in time so that you get the adequate help to complete your assignments.
Email
You are permitted to email a course staff with questions/concerns. However, you need to follow decorum. Unpleasant/Disrespectful emails, regrade requests or Piazza posts will be deleted and not be responded to under any circumstance. Emails sent outside of aforementioned work hours will be responded to on the next business(Mon-Fri) day. If you do not receive a response within 24 hours during a work week, you may follow up.
Format to follow for emails:
To: [include the TA and the instructor]
Subject: CSCI 3308 - [The concern you would like help with]
Email Body:
Dear [Name of TA/Instructor],
[Succintly and respectfully describe your concern]
Thank you,
[Your Name]
Group Project
Students are required to work in a team with other students in the same lab section. Each team will execute a software development project. The team will agree upon a software product that they will design, develop and present to the rest of the class during the 9-15th weeks of the of the semester. This project makes up 35% of your grade. The project challenges students to use most of the software tools and development methods covered in lectures/labs. Project grades are based on the submission of the milestones submitted during the course of the project and meetings with the TAs in those 4 weeks. You will also be turning in your source code every day or every other day and will recieve a grade on that as well. Balanced contributions from all team members is key to the success of the project.
GROUP PROJECT GRADING
Milestone documents are to be submitted to a team github repository for the team as a whole, not as individuals. So every member of the team receives the same score for all of the group work on the milestone except the individual contributions section. To encourage all students to contribute, with every milestone document, the team will turn in the links to the latest commit by each team member. The source code contributions will be graded individually.
At the end of the project, scores will be adjusted for each individual’s contribution to the team effort. Your final grade for the group project will depend on your effort and involvement on the project.
WEEKLY MEETINGS
- Every week, starting week 10, each team will be meeting with their TA for 15-20 mins to report their progress on the projects.
- Attendance is mandatory at these meetings.
- Before the weekly meeting with the TAs, students are expected to commit all their code to their project repository and ensure that their application is functional and has all the latest features built in.
- At the start of each meeting, the team is to present their work, as a group, to their TA and will be graded on the progress made.
- Any blockers noted during this meeting will be resolved outside of this meeting during office hours.
- Each meeting has points associated with them and will be individually assigned by the TAs depending on the progress made by the student in a given week.
MAINTAINING GITHUB
- Your TA will be reviewing all of your team’s git commits.
- Please make sure to make sensible commits. Here, "Quality is better than quantity" is the key.
- Also, you will be required to make commits to the project repository on at least 3 days of the week to get full credit for your contribution in a given week.
PEER EVALUATION
An end-of-term peer evaluation will be conducted to understand the team's perception of the members' contributions. Peer evaluation is based on your team members’ ratings of your contributions. This includes your time, your work, your attitude, your communication, your accessibility, your persistence.
The peer evaluation is to be submitted via Canvas. We will use this peer evaluation to calculate your final grade for the project.
Exams
We will be hosting a midterm and a final exam. Both will be scheduled in person and will be a paper and pen exam. If you require accommodations for either of these exams, please make sure to reach out to Disability Services so they can issue a letter stating the accommodations that will be needed from the course staff.
Date/Time for the exams:
- Exam 1 - October 16, 2024 from 7 PM - 9PM
- Exam 2 - December 16, 2024 from 7:30 PM – 10 PM
These exams will cover all the material covered up until the week before the exam.
You need a minimum of 65% average across both exams to receive a passing grade for this class.
Netiquette & Communication Ettiquette
All students should be aware that their behavior impacts other people, even online. I hope that we will all strive to develop a positive and supportive environment and will be courteous to fellow students and your instructor. Due to the nature of the online environment, there are some things to remember.
- Always think before you write. In other words, without the use of nonverbals with your message, your message can be misinterpreted. So please think twice before you hit submit.
- Keep it relevant. There are places to chat and post for fun everyday stuff. Do not stray from the discussion in the assigned questions.
- Never use all caps. This is the equivalent of yelling in the online world. It is not fun to read. Only use capital letters when appropriate.
- Make sure that you are using appropriate grammar and structure. In other words, I don’t want to see anyone writing “R U” instead of “are you”. There are people in the class that may not understand this type of abbreviation, not to mention it does nothing to help expand your writing and vocabulary skills. Emoticons are fine as long as they are appropriate. A smile ☺ is welcome, anything offensive is not.
- Treat people the same as you would face-to-face. In other words, it is easy to hide behind the computer. In some cases, it empowers people to treat others in ways they would not in person. Remember there is a person behind the name on your screen. Treat all with dignity and respect and you can expect that in return.
- Respect the time of others. This class is going to require you to work in groups. Learn to respect the time of others in your group and your experience will be much better. Always remember that you are not the only person with a busy schedule, be flexible. Do not procrastinate! You may be one that works best with the pressures of the deadline looming on you, but others may not be that way. The same is true for the reverse. The key to a successful group is organization, communication and a willingness to do what it takes to get it done.
Website: http://www.albion.com/netiquette/corerules.html
Compiled by Melissa Landin, Instructor, Dept. of Communication, Inver Hills Community College, mlandin@inverhills.edu
Collaboration
(See the section on Honor Code below.)
For the most part, you must do your own work for this course. In some cases, assignments are completed by a team of students. In such cases, you can share the work, and share the grade. Note that on any work completed by a team of students or “pair programming”, you MUST include the names of ALL participating students on the work submitted. Even if you choose to pair program during the lab, each student must turn in their original work on GitHub/Canvas.
Warning: Lab assignments are revised each semester. So turning in answers from a past semester will, at a minimum, cause you to lose points for incorrect answers. And, worst case, if you are caught submitting word-for-word answers from a past semester, you will be considered in violation of the honor code and subject to sanctions.
Under no circumstances are you allowed to submit someone else’s work and claim it as your own. If you are caught doing so, you will be in violation of the academic integrity policy and will be subject to both academic sanctions from the faculty member and non-academic sanctions (including but not limited to university probation, suspension, or expulsion). The Honor Code Office has more information.
Usage of Gen AI tools
All assignments should be fully prepared by the student. Developing strong competencies in the skills associated with this course, from student-based brainstorming to project development, will prepare you for success in your degree pathway and, ultimately, a competitive career. Therefore, the use of generative AI tools to complete any aspect of assignments for this course are not permitted and will be treated as plagiarism. If you have questions about what constitutes a violation of this statement, please contact me.
Attendance
Attendance in lectures is not mandatory, but activities held in-class during lecture will contribute to 5% of your final grade. The lowest 2 scores will be dropped from that set of activities. You are responsible for knowing the material presented during lectures and labs, even if you are not in attendance when the material was presented.
Attendance at lab is required. Your attendance at each lab will be recorded by the TA. Unexcused absence in labs will result in a 0 on that lab, irrespective of whether work was submitted for the lab. Participation in a lab by PROXY is NOT ALLOWED. Each lab requires work to be completed by each student. You can leave lab once your work is done and approved by the TA.
If you have circumstances that conflict with coursework and attendance, reach out to a TA or instructor at the earliest to have that addressed. You should reach out before the deadline (when practically possible) for any request for absence.
Classroom Behavior
Students and faculty are responsible for maintaining an appropriate learning environment in all instructional settings, whether in person, remote, or online. Failure to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, marital status, political affiliation, or political philosophy.
For more information, see the classroom behavior policy, the Student Code of Conduct, and the Office of Institutional Equity and Compliance
Requirements for Infectious Diseases
Members of the CU Boulder community and visitors to campus must follow university, department, and building health and safety requirements and all public health orders to reduce the risk of spreading infectious diseases.
The CU Boulder campus is currently mask optional. However, if masks are again required in classrooms, students who fail to adhere to masking requirements will be asked to leave class. Students who do not leave class when asked or who refuse to comply with these requirements will be referred to Student Conduct & Conflict Resolution. Students who require accommodation because a disability prevents them from fulfilling safety measures related to infectious disease will be asked to follow the steps in the "Accommodation for Disabilities" statement on this syllabus.
For those who feel ill and think you might have COVID-19 or if you have tested positive for COVID-19, please stay home and follow the further guidance of the Public Health Office. For those who have been in close contact with someone who has COVID-19 but do not have any symptoms and have not tested positive for COVID-19, you do not need to stay home.
Accommodation for Disabilities, Temporary Medical Conditions, and Medical Isolation
Disability Services determines accommodations based on documented disabilities in the academic environment. If you qualify for accommodations because of a disability, submit your accommodation letter from Disability Services to your faculty member in a timely manner so your needs can be addressed.
Contact Disability Services at 303-492-8671 or dsinfo@colorado.edu for further assistance.
If you have a temporary medical condition or required medical isolation for which you require accommodation, please inform me at the earliest possible so I can best accommodate your academic needs for that duration. Also see Temporary Medical Conditions on the Disability Services website.
Preferred Student Names and Pronouns
CU Boulder recognizes that student's legal information doesn't always align with how they identify. Students may update their preferred names and pronouns via the student portal; those preferred names and pronouns are listed on instructor's class rosters. In the absence of such updates, the name that appears on the class roster is the student's legal name.
Honor Code
All students enrolled in a University of Colorado Boulder course are responsible for knowing and adhering to the Honor Code. Violations of the Honor Code may include but are not limited to: plagiarism (including use of paper writing services or technology [such as essay bots]), cheating, fabrication, lying, bribery, threat, unauthorized access to academic materials, clicker fraud, submitting the same or similar work in more than one course without permission from all course instructors involved, and aiding academic dishonesty.
All incidents of academic misconduct will be reported to Student Conduct & Conflict Resolution: honor@colorado.edu, 303-492-5550. Students found responsible for violating the [Honor Code] will be assigned resolution outcomes from the Student Conduct & Conflict Resolution as well as be subject to academic sanctions from the faculty member. Visit Honor Code for more information on the academic integrity policy.
Sexual Misconduct, Discrimination, Harassment and/or Related Retaliation
CU Boulder is committed to fostering an inclusive and welcoming learning, working, and living environment. University policy prohibits protected-class discrimination and harassment, sexual misconduct (harassment, exploitation, and assault), intimate partner violence (dating or domestic violence), stalking, and related retaliation by or against members of our community on- and off-campus. These behaviors harm individuals and our community. The Office of Institutional Equity and Compliance (OIEC) addresses these concerns, and individuals who believe they have been subjected to misconduct can contact OIEC at 303-492-2127 or email cureport@colorado.edu. Information about university policies,reporting options, and support resources can be found on the OIEC website.
Please know that faculty and graduate instructors have a responsibility to inform OIEC when they are made aware of incidents related to these policies regardless of when or where something occurred. This is to ensure that individuals impacted receive an outreach from OIEC about their options for addressing a concern and the support resources available. To learn more about reporting and support resources for a variety of issues, visit Don't Ignore It.
Religious Holidays
Campus policy regarding religious observances requires that faculty make every effort to deal reasonably and fairly with all students who, because of religious obligations, have conflicts with scheduled exams, assignments or required attendance. In this class, you are required to reach out to the course Instructor well in advance and come to agreement about an alternate schedule to complete the missed work.
See the campus policy regarding religious observances for full details.
Mental Health and Wellness
The University of Colorado Boulder is committed to the well-being of all students. If you are struggling with personal stressors, mental health or substance use concerns that are impacting academic or daily life, please contact Counseling and Psychiatric Services (CAPS) located in C4C or call (303) 492-2277, 24/7.
Free and unlimited telehealth is also available through Academic Live Care. The Academic Live Care site also provides information about additional wellness services on campus that are available to students.