Skip to content

Latest commit

 

History

History
332 lines (200 loc) · 16.7 KB

syllabus.md

File metadata and controls

332 lines (200 loc) · 16.7 KB

 


 

🌀 CSC510: Software Engineering
NC State, Spring '25

Syllabus

Details Notes
When Mon Wed 11:45AM - 1:00PM
Where rm 01011 Engineering Building I
Prerequisites CSC 316 and CSC 226 (or equivalent
Lecturer About
Prof. Tim Menzies
Office hours 2pm to 4pm Monday
in my office (by appointment)
Office Room: 3304:EB2
Email [email protected]
Tutor About
Katerina Vilkomir
Office hours 9:30 - 10:30
Monday and Tuesday
(by appointment)
Email [email protected]

Preferred method of communication and Response Times:

  • For private queries, use the above email
  • But or most queries, use the discord server
  • IMPORTANT: If you receive a subject-related message outside of office hours (e.g. 2am Saturday mornng), do not feel required to answer this till the next working day (e.g. Monday morning). Exception: just before deadlines of exams.

Asking questions about the course:

  • It is each student's responsibility to join the class Discord group "SE spring'25".
    • Till Friday week1, the link to join there is here
  • Use the Discord server
  • All class communication from staff to students will be via this Discord group.
  • Students are strongly encouraged to contribute their questions and answers to that shared resource.
    • You should expect to receive a response within two business days (i.e. not over the weekend).
    • If I email/message you directly, please strive to respond within two business days.

Email guidelines:

  • Always include a descriptive, specific but concise subject.
  • Include your course number and section in your email, and provide adequate context for your question in order to ensure full understanding of your email.
  • Be sure to use your NC State email account, and sign in with your name and Student ID number.

Details

What Notes
Course Credit Hours 3
Course website https://github.com/txt/se25
Catalog Description An introduction to software life cycle models; size estimation; cost and schedule estimation; project management; risk management; formal technical reviews; analysis, design, coding and testing methods; configuration management and change control; and software reliability estimation. Emphasis on large development projects. A group project is required following good software engineering practices throughout the semester.
Textbook Software Engineering: A Modern Approach
Structure The majority of this course is synchronous, delivered through real-time, face-to-face class sessions.
Instructions Learning activities in this course will include five homeworks, 2 exams, three projects.
Tool used All grades will be recorded in Moodle.
All student work will be in Github (public GH, not the NCSU version).
Auditing not permitted
Attendance not mandatory
Technical requirements A laptop computer is required for students taking this course. NC State’s Online and Distance Education provides technology requirements and recommendations for computer hardware, and NC State’s Office of Information Technology provides recommendations for your computer . But as a rule-of-thumb, your computer is adequate if you can edit and run code using the Github codespaces environment.

Learning Outcomes

  • Students will achieve a high level of expertise in SE, mastery of the knowledge in that fields and the ability to apply this knowledge and graduate school experiences to critical research problems
  • Students will apply sound development methods/tools to problems in SE and describe the methods/tools effectively
  • Students will analyze/interpret/implement software requirements
  • Students will communicate their work clearly and professionally in both written and oral forms appropriate to “SE"

Assessment

  • Multiple mini-review questions on Moodle
    • 2-3 questions about the lectures that week
    • Posted every Wednesday, due Friday 9am.
    • Zero marks for getting them right or wrong
    • Minus 1 mark for not attempting them
      • "Attempt" = a few lines for each question.
  • 3 projects
  • 1 mid-session exam
  • 5 homeworks (testing software guru skills)
  • 1 final exam (for those that want to replace the mark on one of their mid-term and homework).
  • 1 essay on SE ethics.
  • Exams and essays are done individually. Everything else is done in groups of 3.
    • Important note: while homeworks are done in groups of 3, you will be examined individually about that content. So make sure you understand all the homework material.

Projects comprise large maintenance tasks where you have to extend someone else'e code (groups of 3 people, working in public Github repos-- not NCSU GH):

  • This will demonstrate the important of documentation, design purity, regression tests, etc.

Each project will generate "brag" documents that sell the project work in version i for those who want to work in i+1.

  • Project1:
    • You review nine projects done previously in this subjects elect two, then boast of its accomplishments.
    • Select wisely. You have a 25% chance that, in project2, you will have to work on your Project1 selections.
  • Project2:
    • You will switch projects and significantly extend some project
  • Projects3:
    • You will swtich to someone else's project2 code

⚠️ IMPORTANT : Projects 2 and 3 will be assessed in live demo sessions with the tutor/grader. These sessions will occur the weeks of Mar3 and Apr21. We ask for students for their help in scheduling all these demo sessions. Our graders/tutors are students with their own exams and assignment to complete. Hence, they might suggest demo times outside of normal working hours (evenings, weekends). Please do them the courtesy of considering those times. That said, if those proposed times are inconvenient, you can, should, and must ask for other times.

Grades

group mark notes
essay (solo) 22
homework (5*1) 5 Students are marked -1,0,1 for homeworks: -1 = no submission; 0 = needs fixing; 1 = passed.
Homeworks can be resubmitted twice, for up to 3 weeks after the first submission.
mid-term exam (solo) 25
3 projects (group) 10+15+23
final exam (optional) 25 Also, there is an optional final exam which students can attend if they want to replace their mid-term mark.
Please note that if you get a lower mark on this final then your lowest mid-term mark will then decrease.
Caveat Emptor.

With the final grades, the following grade scale will be used:

 A+ (97-100),  A (93-97),   A-(90-92)
 B+ (87-89),   B (83-87),   B-(80-82)
 C+ (77-79),   C (73-77),   C-(70-72)
 D+ (67-69),   D (63-67),   D-(60-62)
 F (below 60).

Late Marks

Submissions score one late mark per day (but only -1 for the weekend).

Expectations for learner participation and interaction

Course activities will require you to interact with other students in the course. For masters students, some evidence must be generated that you are actively engaged with your class peers. Specifically:

  • The project repo MUST have a branch called "MAIN". Groups will be assessed via their commit history (seen under "Insights") in MAIN. Projects were all group members are not active doing commits will lose marks (or the offending student will be expelled from that group).
  • Groups need to maintain an active discussion in some on-line forum. Github issue reports will be fun. Optionally, students can request a Discord channel. Projects were all group members are not active in discussions will either lose marks (or the offending student will be expelled from that group).

Attendance

  • Lectures are twice a week.
  • Lectures will be recorded.
  • Attendance is not mandatory, but highly recommended.

If, for a quiz, you must be absence for a reason sanction by the university, contact the lecturer before time and other arrangements will be made. Those sanctioned events are:

  • The student is away from campus representing an official university function, e.g., participating in a professional meeting, as part of a judging team, or athletic team. These students would typically be accompanied by a University faculty or staff member.
  • Required court attendance as certified by the Clerk of Court.
  • Students will be allowed a minimum of two excused absences per academic year for religious observances as verified by the Division of Academic and Student Affairs (DASA) (go.ncsu.edu/absence). For more information about a variety of religious observances, visit the Diversity Calendar.
  • Required military duty as certified by the student’s commanding officer.
  • Unanticipated Absences. Excuses for unanticipated absences must be reported to the instructor as soon as possible, but not more than one week after the return to class. Examples of unanticipated absences are:
    • Short-term illness or injury affecting the ability to attend or to be productive academically while in class, or that could jeopardize the health of the individual or the health of the classmates attending. Students must notify instructors prior to the class absence, if possible, that they are temporarily unable to attend class or complete assignments on time.
    • Death or serious illnesses in the family when documented appropriately.

Absence Verification: The Absence Verification office will provide student absence verifications for deaths, legal obligations, military duty, and serious illnesses like surgery and hospitalizations.

Sometimes, the lecturer/tutor will require you to attend mandatory office hours session. There, students may be asked to review code, concepts, or comment on the structure of the course. Those sessions are mandatory and failure to attend will result in marks being deducted.

Disabilities

Reasonable accommodations will be made for students with verifiable disabilities. In order to take advantage of available accommodations, students must register with the Disability Resource Office (DRO) For more information on NC State’s policy on working with students with disabilities, please see the Policies, Rules and Regulations page maintained by the DRO and REG 02.20.01 Academic Accommodations for Students with Disabilities.

Non-Discrimination Policy

All students at North Carolina State University (“NC State” or the “University”) are responsible for conducting themselves in a manner that helps enhance an environment of learning in which the rights, dignity, worth, and freedom of each member of the academic community are respected.

NC State prohibits unlawful discrimination and harassment based on a person’s protected status in University programs and activities. NC State also prohibits retaliation for any protected activity.

“Protected Status” is defined as an individual’s actual or perceived:

  • race, color, or national origin, including shared ancestry or ethnic characteristics,
  • sex, including sexual orientation, gender identity, and pregnancy or related conditions,
  • age,
  • disability,
  • genetic information,
  • religion, and
  • veteran’s status.
  • Note that, as a lecturer, I am legally required to report all such acts to the appropriate campus authority,

Respecting our learning community

The NC State Code of Student Conduct outlines expectations for behavior in the classroom (whether virtual or physical) and the consequences for students who violate these expectations. Any behavior that impacts other students’ ability to learn and succeed will be addressed, but expressing diverse viewpoints and interpretations of course content is welcome. Community guidelines for this course include:

  • Use a respectful tone in all forms of communication (email, messages, written, oral, visual)
  • Maintain professionalism (avoid slang, poor grammar, etc.) in your written communication.
  • Respect regional dialects and culturally embedded ways of oral communication.
  • Stay home or in your dorm room if you are exhibiting symptoms of a contagious illness (fever, chills, etc.).
  • Enter our virtual and/or physical classroom community respectfully by refraining from lewd or indecent speech or behavior, helping to maintain a safe physical environment, not using your cell phone for voice or text communication except when explicitly given leave to do so, and not attending class under the influence of any substance.
  • Treat each community member with respect by not recording others without their consent or engaging in any form of hazing, harassment, intimidation, or abuse.
  • Respect cultural differences that may influence communication styles and needs.]

Academic Integrity

Students are required to comply with the university policy on academic integrity found in the i What is Academic Misconduct?. Therefore, students are required to uphold the Pack Pledge: " “I have neither given nor received unauthorized aid on this test or assignment,” on all syllabi, assignments, examinations, or other academic evaluations is encouraged."

Cheating will be punished to the full extent possible. Cheating includes plagiarism of other people's work. All students will be working on public code repositories and informed reuse is encouraged where someone else's product is:

  • Imported and clearly acknowledged (as to where it came from);
  • The imported project is understood, and
  • The imported project is significantly extended.

Students are encouraged to read each others code and report uninformed reuse to the lecturer. The issue will be explored and, if uncovered, cheating will be reported to the university and marks will be deducted if the person who is doing the reuse:

  • Does not acknowledge the source of the product;
  • Does not exhibit comprehension of the product when asked about it;
  • Does not significantly extend the product.

Student Privacy

  • In-class sessions are recorded in such a way that might also record students in this course.
  • These recordings MAY be used beyond the current semester or in any other setting outside of the course.
  • Contact your instructor if you have concerns.

Syllabus Modification Statement

Our syllabus represents a flexible agreement. It outlines the topics we will cover and the order in which we will cover them. Dates for assignments represent the earliest possible time they would be due. The pace of the class depends on student mastery and interests. Thus minor changes in the syllabus can occur if we need to slow down or speed up the pace of instruction.