Skip to main content

CSC 217 Software Development Fundamentals Lab - Syllabus

All CSC 217 Sections

Spring 2026

1 Credit Hour


Instructor Information

Instructor: Dr. Chandrika Satyavolu
Role: Section 001 & 002 Instructor
Email: jsatyav@ncsu.edu
Web Page: https://csc.ncsu.edu/people/jsatyav/
Office Location: EB2 2272
Office Hours: (Posted on Moodle page and Google Calendar)


Instructor: Dr. Sarah Heckman
Role: Course Coordinator and Section 003/601 Instructor
Email: sarah_heckman@ncsu.edu
Web Page: https://sheckman.github.io/
Office Location: EB2 2299
Office Hours: (Posted on Moodle page and Google Calendar)


Instructor: Mr. James Tetterton
Role: Section 601 Instructor
Email: jctetter@ncsu.edu

Office Location: online
Office Hours: (Posted on Moodle page and Google Calendar)


Office Hours

See the CSC 216/217 Office Hours Calendar for the most up to date office hours for the course.

Preferred Method of Communication & Response time

The teaching staff is looking forward to answering questions that you may have about CSC 217. Please use the following to help identify how best to interact with the teaching staff:

  • Questions about assignments or the course: Post to the course forum, attend office hours, or email the support list (csc-217-sprg-2025-support@wolfware.ncsu.edu.
  • Grade questions or regrade requests: Submit the regrade request form.
  • Excuse a Lab Absence: Submit the excused lab absence request form. We will process excused absences when completing grading for the lab that you missed. If your absence is not excused or you miss submitting the request before the grades are returned, you’ll receive a zero for the lab. You can submit a regrade request for additional information.
  • Personal concerns or questions outside the other options: Email Dr. Heckman and Dr. Satyavolu directly. Please include both on the email.

We batch answering questions on the course forum and to the support email list several times throughout the day. You can expect to receive a response to emails to the instructors within two business days (i.e., not over the weekend).

Course Information

Catalog Description

Laboratory course to accompany CSC 216 lecture course. Application of the software processes and practices to design, implement, and test the development of software solutions requiring composition; inheritance; finite state machines; and linear data structures, including recursive linked lists.

Lab Sections Meeting Time

Lab Section Meeting Times Meeting Location Lab Deadline Jenkins
Section 201 M 10:40a-12:30p Engineering Building II, Room 1221 M 10:30a https://csc217-201-jenk.csc.ncsu.edu/
Section 202 M 12:50p-2:40p Engineering Building II, Room 1221 M 12:40p https://csc217-202-jenk.csc.ncsu.edu/
Section 210 T 8:30a-10:20a Engineering Building II, Room 1221 T 8:20a https://csc217-210-jenk.csc.ncsu.edu/
Section 211 T 10:40a-12:30a Engineering Building II, Room 1221 T 10:30p https://csc217-211-jenk.csc.ncsu.edu/
Section 213 T 3:00p-4:50p Engineering Building II, Room 1221 T 2:50p https://csc217-213-jenk.csc.ncsu.edu/
Section 221 W 10:40a-12:30a Engineering Building II, Room 1221 W 10:30p https://csc217-221-jenk.csc.ncsu.edu/
Section 222 W 12:50p-2:40p Engineering Building II, Room 1221 W 12:40p https://csc217-222-jenk.csc.ncsu.edu/
Section 601 Asynchronous Online T 11:45p https://csc217-601-jenk.csc.ncsu.edu/
Section 731 Asynchronous Online T 11:45p https://csc217-731-jenk.csc.ncsu.edu/

Students are required to attend one CSC 217 lab section if they have not already completed CSC 217.  Each lab is 110 minutes. Students in Sections 731 and 601 will complete the lab activities asynchronously.

Prerequisites/Corequisites

Prerequisites: CSC116 with a C or better

Co-requisites: CSC 216

Minimum Technical and Digital Information Literacy Skills

Required Technical Skills

  • Navigate and use Moodle, NC State’s Learning Management System.
  • Use Gmail, including attaching files to email messages
  • Create and submit files in commonly used word processing program formats (MS Word, text editors, Google Docs).
  • Download and install software as needed (see section on required software)
  • Download and upload attachments
  • Use spreadsheets, presentations, graphics programs, and other applications in digital environments
  • Use web conferencing tools including Zoom and Google Meet.
  • Post to discussion boards and forums

Course Structure

There are two types of labs:

  • Synchronous Labs: a set meeting time where students are required to attend, in-person
  • Asynchronous Labs: no set meeting time; attendance is not required

Each lab section will have an assigned lab deadline, typically 10 minutes before the start of the next lab, when that week’s lab assignment is due. Asynchronous labs have a Tuesday 11:45pm deadline.

Students in synchronous labs are expected to attend and contribute during their scheduled lab meeting. Missing a lab with an unexcused absence will result in a zero for that lab assignment. Students who are ill should not attend lab in person, but if you are well enough to participate remotely, you are expected to connect with your team during the lab meeting time via Zoom. If you miss lab (even if you join via Zoom), submit the excused lab absence request form. The instructors will review the excused absences when grading the lab. If your absence is excused, the In-Lab Collaboration portion of the grade will be removed from the grade calculation (e.g., the denominator of the lab grade will be out of 90 points instead of 100 points for most labs). If your absence is not excused, you will receive a 0 for the lab.

Students in asynchronous labs are expected to work throughout the week on completing lab activities. This will include watching a short lab introduction video and working through the lab activities.

Lab Assignments

Over the course of the lab, you will complete a stand-alone course registration system in Java. The course registration system will have three user roles and functionality for students to enroll in classes. The lab assignments build over the course of the semester; success on an earlier assignment is needed for success in future assignments.

Students in synchronous labs will be expected to work with a partner or team of three to complete lab activities. Students in the asynchronous lab sections will have the option to work with a partner or in a team of three. The opt-in request must be completed for each lab rotation to be considered for a team.

Policy on Teams: Students who prefer to work individually on lab assignments should change their enrollment to the asynchronous lab section appropriate for their lecture section. For “on-campus” students, please enroll in lab section 731. For Distance Education students, lab 601 is already an asynchronous section.

Academic Integrity

All programs are to be your own work (for paired and team assignments, all work is to be you and your assigned partner’s or assigned team mates’ own work). See the “Academic Integrity” section of the syllabus for further details. AI tools are not allowed to be used to complete lab assignments.

Learning Outcomes

Upon successful completion of this course, a student will be able to…

  1. Design, implement, and test programs which use object-oriented language features of inheritance, abstract classes, interfaces, and polymorphism;

  2. Employ the phases of the software development life cycle (requirements, design, implementation, and test) in developing software;

  3. Use UML class diagrams to propose a design to satisfy requirements;

  4. Use design patterns (e.g., model-view-controller and the state pattern) to solve development problems;

  5. Design effective system and unit tests and implement automated unit test code;

  6. Navigate and extract information from the Java API, and employ the Javadoc tool to construct internal documentation of source code;

  7. Use software engineering best practices like pair programming, test-driven development, code coverage, static analysis, version control, continuous integration, and documentation with supporting tooling to design, implement, and test object-oriented systems.

  8. Design, implement, and test a finite state machine;

  9. Design, implement, and test simple recursive data structures;

  10. Implement, test, and use a stack, queue, array-based list, and linked list.

Course Materials

Textbooks

CSC 217 Lab Manual - Sarah Heckman
Web Link: https://pages.github.ncsu.edu/engr-csc217/labs/
Cost: Free!

Technology Requirements

NC State University Libraries offers Technology Lending, where many devices are available to borrow for a 7-day period. Computer labs are available in various locations around campus for student use.

Computer

A laptop computer is recommended 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 at NC State.

Software and Digitially-Hosted Course Components

The following software and tools will be used in this course. Some tools are a part of NC State’s enterprise tools. See information about their purpose, how to access them, accessibility information, and privacy policies. The same information for any other tools required in this course is provided in the list below.

The following materials are electronically-hosted for use by students and teaching staff through a combination of Moodle, Wolfware, Google Docs (through NC State), GitHub, Jenkins, Piazza or Ed, Gradescope, Zybooks, Zoom, MyDigitalHand, and Typos: lecture notes, message boards, electronic submission & evaluation of assignments, electronic submission of exercises, electronic evaluation of exams and/or quizzes, questions about course materials, and study resources and exercises.

Grading

Grade Components

Component Weight Details
Labs 100 All labs will be averaged.

The lowest lab grade may be dropped except for the last lab of the semester!

If you are working on a team, your invididual grade will consider your contribution to the team submission each week. Poor contribution on lab deliverables OR dominating work may lead to a deduction or to a zero on the lab. Receiving a zero on four labs for poor contribution will lead to an F or U in the course. There may be additional global contribution penalties for students who consistently lack contribution across multiple labs, up to an including an F in CSC 217.

We will return labs on a weekly basis before the next lab is due (typically Sunday evenings).

Letter Grades

This Course uses Standard NCSU Letter Grading:

         
97 A+ 100
93 A < 97
90 A- < 93
87 B+ < 90
83 B < 87
80 B- < 83
77 C+ < 80
73 C < 77
70 C- < 73
67 D+ < 70
63 D < 67
60 D- < 63
0 F < 60

Requirements for earning a grade of “Satisfactory”

If you are taking this course for credit only (S/U), your grade will be reported as S (Satisfactory) when coursework is equivalent to a C- or better or U (Unsatisfactory) when coursework is equivalent to less than a C-. For more information, see the Credit Only Courses regulation.

For students taking CSC 217 Credit-Only, a grade of S will only be recorded if a grade of 70 or higher is earned and the student has appropriate contribution to the lab activities.

Course Policies

Resources for Online Participation (Section 731 & 601)

When using an online course format, you may need to adapt your learning strategies and study skills. The NCSU Academic Counseling center offers resources on developing and adapting study skills. In addition, when completing coursework remotely (see Engineering Online Tips for Success):

  • With online education, there is an even stronger need for self-discipline than when taking on-campus courses.
  • The responsibility to “attend” class is completely up to you. While this time flexibility is one of the great features of online education, it is also one of the biggest opportunities to get behind in your studies.
  • Without a regularly scheduled in-person class, it is easy to think you have all the time in the world. This can leave you with mountains of work to do as deadlines approach.
  • You must be able to manage your time well.

NC State has provided several resources to help you move to online learning.

Computers and Electronic Devices

The lab room, Engineering Building II, Room 1221, is equipped with computers to support lab activities. You are also welcome to bring a personal device to the lab. To minimize damage to the equipment, food and uncovered drink containers are not allowed in the lab unless the student has a specific accommodation related to food/drink.

You may not record the lecture or lab without express written permission from the instructor.

We will be posting lab introduction slides for all students.

Professionalism

Students are expected to conduct themselves in a respectful and professional manner at all times. Students are expected to act professionally both in person and electronically with all members of the teaching staff and their classmates. Communication, both written and verbal, should be respectful and should never include derogatory comments about yourself or others. All criticism (of yourself, the course, instructor, PTFs, fellow students, resources, etc.) should be constructive and provide feedback for improvement. Guidelines for electronic communication are listed in the section below.

Professionalism also includes attendance and participation. If you are unable to participate, please notify the teaching staff and your team as soon as possible. If you have a missing teammate, please notify the teaching staff as soon as possible.

Report any unprofessional behavior by a class member (including the PTFs) to the instructor.

Unprofessional electronic communication on course forums may result in suspension from the course forum and possible grade penalties. Unprofessional in-person behavior, including a lack of participation, will result in a conference with the instructor and possible grade adjustments for all involved parties.

Electronic Communication

The teaching staff looks forward to receiving emails and forum posts about any questions you have about the class, materials, exams, and assignments.  Below are several rules for electronic communication.

Higher education provides you with a training ground prior to entry into the work environment for your chosen career.  You will use many of the following rules electronic communication when you are communicating with colleagues, your supervisor, or clients once you are in the work world.  Although many of the rules of etiquette for electronic communication will be similar in the work environment, we have some specific to this course.

Please observe the following etiquette when communicating with the teaching staff and your peers.  The teaching staff receives many emails on a daily basis and the instructor teaches several courses.  Please note that a member of the teaching staff will typically respond to an email or forum post within 24 hours on a business day and within 48 hours on a weekend or holiday.  Most of the time, we will respond more quickly, but it is not guaranteed.

Also, before sending an email, try to find the answer to the question by using various references already available to you:

  • If the question is related to class administration, check the syllabus.
  • If the question is related to recent information, check the weekly emails or forum posts from the teaching staff.
  • If the question is homework or exam related, check the message board to see if it has already been answered.  Also, read your textbook.

For emails, please identify your course, lecture and/or lab section, and your name in the subject line (first and last name) along with the subject of the message.  For example: “CSC216-002 Jenny Howard - Question about Project 1 Part 1”.

Email should include a salutation to identify the recipients of the email.  For example, for emails to the support list, consider a salutation like “Greetings Teaching Staff,”.  You now have the attention of the email recipients.

The tone of the email message should be professional.  Re-read your email before you press Send and make a judgment as to how you would respond if you were a recipient of the email you are planning to send.

If you have a question that is beyond the scope of an email, consider coming to office hours or scheduling an appointment with a member of the teaching staff. 

If you have several questions or items, please number them for ease of reading.  The response will also be easier to understand.

Please spell check and correct mechanical/grammar errors.  Avoid emails written only in lowercase and lacking punctuation.

For emails related to absences, include the specific date(s) instead of more relative terms like “last week” or “yesterday”. Due to time zone differences your yesterday may not be the teaching staff’s yesterday.

Close your email with your name.

Please use Reply All when responding to an email that includes the teaching staff or the teaching staff support list.

Here are guidelines for how to communicate with the teaching staff:

  • Questions about assignments or the course: Post to the course forum, attend office hours, or email the support list (csc-217-sprg-2025-support@wolfware.ncsu.edu.
  • Grade questions or regrade requests: Submit the regrade request form.
  • Excuse a Lab Absence: Submit the excused lab absence request form. We will process excused absences when completing grading for the lab that you missed. If your absence is not excused or you miss submitting the request before the grades are returned, you’ll receive a zero for the lab. You can submit a regrade request for additional information.
  • Personal concerns or questions outside the other options: Email Dr. Heckman and Dr. Satyavolu directly. Please include both on the email.

Grade Appeals

If at any time you feel an assignment was graded improperly, fill out the Regrade Request Form, which is located in the General Course Resources topic on Moodle. The form will email the PTF and the instructors with your regrade request, which will be followed up via email. All regrade requests must be submitted to the form no later than 1 week after the assignment was returned to you. If the grade was returned during the final exam period, then you must submit your regrade request before the deadline set by the instructor.

Incomplete Grades and Withdrawals

Information on incomplete grades can be found at REG 02.50.03 – Grades and Grade Point Average. If you encounter a serious disruption to your work not caused by you and you would have otherwise successfully completed the course, contact your instructor as soon as you can to discuss the possibility of earning an incomplete in the course for the semester, including an agreement on when the remaining work must be done in order to change the grade to the appropriate letter grade.

If you must withdraw from a course or from the University due to hardship beyond your control, see Withdrawal Process and Timeline - Student Services Center for information and instructions.

Late Assignments

The labs build on each other over the course of the semester. When the semester is complete, students will have created a stand-alone course registration system approaching 10,000 lines of source and test code.

Labs are not accepted late.

We will grade the last commit to GitHub before the lab deadline. If you do not complete a lab before the deadline, you (and your team) will need to complete the previous lab before moving on to the next lab.

We may require some labs to be completed individually and some to be completed in teams for students in synchronous sections. Lab teams will rotate during the semester.

Attendance

For complete attendance and excused absence policies, please see http://policies.ncsu.edu/regulation/reg-02-20-03.

Attendance Policy

Attendance to synchronous lab sections is mandatory during your assigned lab section so you can work with your team. Students are expected be working on CSC 217 work and with their lab teams during the synchronous lab time.

Students in asynchronous lab sections do not have an attendance requirement, but they are expected to keep up with the work and work with their team if they are assigned to one.

Absences Policy

For synchronous labs, the assignments are typically completed on teams. The most effective teams are those who can work together at the same time. Students in asynchronous labs will have the option to work on a team.

Students who miss a lab with a documented excused absence will have the in-lab participation portion of their lab grade waived. Students will be expected to participate in finishing any lab deliverables outside of lab before the next lab’s deadline. Failure to participate to complete lab deliverables will result in a 0 for the lab. In some situations, a later lab grade may count for an earlier lab grade.

All anticipated absences must be presented to the instructor no later than one week before the absence. All emergency absences must be turned in no later than one week after the student’s return date. All other absences will be unexcused. Submit excused absence requests via the provided form (https://go.ncsu.edu/csc217-absence). We’ll review these requests on a weekly basis and mark the lab as excused when grading. You are still expected to contribute to completing the lab before the deadline. Students who are excused from missing lab will have the in-lab portion of the grade removed from consideration of the lab grade (the denominator will be reduced). If a student misses lab with an excused absence and doesn’t contribute to the lab before the lab deadline, the student will receive a 0 for the lab.

Students who miss a lab with an unexcused absence will receive a 0 for the lab, even if they complete work outside of the lab.

Missing four or more labs with an unexcused absence will result in a grade of F for the course.

Excessive excused absences will require consultation with the instructor.

Makeup Work Policy

In-lab activities cannot be made up. Students with excused absences will complete the lab activities remotely with their team.

Academic Integrity

Students are required to comply with the university policy on academic integrity found in the Code of Student Conduct found at http://policies.ncsu.edu/policy/pol-11-35-01

All members of the University community, students, faculty and other employees, have the responsibility to report academic misconduct to the appropriate authority.

The Computer Science department uses software that detects cheating violations for programming projects. Do not use other student’s code, do not share your code, do not copy or use code from someone who took the class X semesters ago, do not use code from online. Start on assignments early so that you do not feel tempted to cheat!

All work that you turn in for grading must be your own! This means that all work must be an independent and individual creation by you or in the case of paired/team assignments; all work must be an independent and individual creation by you and your assigned partner or assigned teammates.  Any attempt to gain an unfair advantage in grading, whether for yourself or another, is a violation of academic integrity.  You may only work on an assignment with another student(s) in the class if explicitly stated in the assignment.

Why is Academic Integrity Important?

(Adapted from Matt Stallmann and Mitchell Wand)

Would you want to fly in a plane whose controller software was designed and implemented by a group of people who had never demonstrated the persistence, attention to detail, and ability to deal with negative feedback from compilers, linkers, etc., that it takes to design, implement, and debug a program on their own?

Academic misconduct affects you, your peers, the CSC department, the university, all students who have ever graduated from NCSU with a CSC degree, and all users of software products to which you contribute. When you receive a degree from NCSU:

  • The degree represents the university’s certification that you have demonstrated certain skills and knowledge in your degree program.
  • Your grade in a course represents the instructor’s certification that you have demonstrated certain skills and knowledge in the specific course.
    When an employer sees your degree from NCSU, they expect you to be able to demonstrate certain skills and knowledge. If a student graduates with a CSC degree and performs poorly, the value and reputation of a CSC degree from NCSU is negatively affected.

In industry, intellectual property rights are crucial in software and product development. Rules regarding intellectual property are similar to rules outlining academic integrity. Employees who “cheat” or violate copyrights or other intellectual property rights can cost the employer large sums of money. In addition, even though you will likely work on a team in industry, completion of the CSC degree program includes demonstrating skills to work effectively on teams. For example, students should demonstrate well-developed individual skills, integrity to take responsibility for one’s own work, and the ability to recognize clear boundaries between one’s own contributions and those of others.

Ethics and professionalism are important to the community. The Association for Computing Machinery (ACM), a professional organization for computing professionals, has the ACM Code of Ethics and Professionalism that outlines the ethical principals of the computing community.

What are the Consequences of Academic Misconduct?

Students who commit an academic integrity violation on any course deliverable will receive up to a 0 for the assignment! The instructor reserves the right to increase the penalty to no credit for the course as appropriate for the situation.

All cases of academic misconduct will be reported to the Office of Student Conduct. A first offense will place the student on Academic Probation for the remainder of their academic career. Academic Probation is not visible on a student’s transcript or other educational record, but the Office of Student Conduct does supply this information for various campus agencies running checks for disciplinary standings. If the student is suspended, which will likely happen on a second academic integrity infraction, the Office of Student Conduct may notify many other departments on campus, such as Registration & Records, Housing, Campus Health, Counseling, and Financial Aid. In addition, administrators of some scholarships routinely ask the Office of Student Conduct to confirm whether the student is in good standing.

Resources you ARE Allowed to Use

You must cite your use of the approved resources in your assignment submissions. If you do not cite your use of the approved resources, you may be committing plagiarism.

The only people that you MAY receive help from:

  • your instructor,
  • the PTFs for CSC 216/217,
  • for paired/team assignments, you may receive help from your assigned partner or your assigned teammates, and
  • for exercises, you may work with any of your neighbors that are physically present in class.

The only external resources that you MAY also reference:

  • your textbook,
  • the textbook website,
  • the JAVA API HTML pages, and
  • other third-party API HTML pages as appropriate for an assignment (for example, you may use the JUnit API HTML pages to help you with writing JUnit tests).

Resources you ARE NOT Allowed to Use

  • You MAY NOT receive help from anyone or anything else that is not in the list of approved resources (above).
  • If you think a resource should be added to the list of approved resources (above), you must first receive written permission from the instructor so that the instructor can share the resource with all students.

Examples of Academic Misconduct

Note: this list is not exhaustive.

  • It is unauthorized assistance or collaboration and cheating to give any student access to any of your work which you have completed for individual class assignments.
  • It is cheating and plagiarism to use another person’s work and claim it as your own.  You are expected to complete all assignments on your own, unless otherwise specified in the assignment.
  • It is cheating to interfere with another student’s use of computing resources or to circumvent system security.
  • It is unauthorized assistance or collaboration and cheating to email, ftp, post on the Internet, bulletin boards, message boards, etc. your work for others to obtain OR to have others provide answers. Even if you did not provide the material, using answers to CSC 216/217 assignments posted to sites like Chegg or CourseHero is cheating.  Do NOT use sites that allow you to “anonymously” post code.  Those sites are searchable, and others may find your code (like the teaching staff).
  • It is cheating to ask or pay another person or persons to complete an assignment for you.
  • It is cheating and plagiarism to decompile any compiled code and use the decompiled source code as your own.  You may also break the law by decompiling code.
  • It is cheating and plagiarism to use code that you find online, including code behind the Java API webpages.
  • It is unauthorized assistance or collaboration and cheating to give another student access to your account (NC State account or others that you use for university work) or to give them your account password.
  • It is unauthorized assistance or collaboration and cheating for you and another student to work collaboratively on an assignment, unless otherwise specified by the assignment.
  • It is cheating to circumvent the intention of the assignment and/or the automated grading system (e.g., by hardcoding test case solutions, by copying/pasting code provided in the Java libraries to fulfill an assignment objective, to implement extra lines of code to achieve higher statement coverage, etc.).
  • It is unauthorized assistance or collaboration to allow another student to copy from your written or electronic assignment submissions (e.g., it is the student’s responsibility to cover his or her exam answers to help prevent others from copying answers)
  • It is cheating and plagiarism to copy from another student’s written assignment (e.g., exams or homeworks).
  • It is cheating to submit identical or similar assignment submissions from an assignment submitted in a previous course, or a previous attempt of the current course.
  • It is cheating to reuse your code from previous semesters if retaking the course. Start over to focus your learning this semester.
  • It is unauthorized assistance or collaboration to leave your computer unlocked and/or unattended (whether intentional or accidental) such that others could access your assignments.
  • It is cheating to use AI tools or services, like ChatGPT, to generate partial or complete solutions to assessments in the class. AI tools ans services should not be used as a starting point that the student will then edit. The use of these services are prohibited for assessed work in this class.

Examples of NOT Cheating (this list is NOT exhaustive):

  • Using the code from the class website (with citations in the comments).
  • Using code from other programs YOU wrote in this course during this semester (with citations in the comments).
  • Using code from other programs that YOU and a partner wrote as part of assigned exercises in this course during this semester (with citations in the comments).
  • Help from TAs or instructor (with citations in the comments).
  • Using code from the textbook or textbook website (with citations in the comments).

Example Citations

1
2
3
4
5
6
7
8
9
10
11
12
/* Citing Help from another Person: (In method or class level comments)
 * I received help from Dr. Heckman on DATE during her office hours.  We discussed X.
 */

/* Citing Help from other Assignments
 * The code for this method is based on Exercise Y that I completed with Z on date.
 */

/* Citing Help from the Textbooks
 * The code for this method is based on the ArrayList.add() method of the course ZyBook section
 * on ArrayLists.
 */

Protecting Yourself

  • Do not leave papers lying around your workstation.
  • Cover your written exam responses with a cover sheet to prevent others from copying your responses.
  • Do not dispose of important papers in the lab recycling bins and trash cans until after the assignment is graded.
  • Do not give out your password.
  • Do not leave your workstation unattended or forget to log yourself out.
  • Do not leave your laptop unattended.
  • Do not give other students access to any of your workspace or email them any code.
  • Do not give other students access to your course materials or your personal computer.
  • Do not email, ftp, or post your code on the Internet, message boards, etc.
  • Keep all copies of final an intermediate work until after the assignment is graded.
  • Keep all graded assignments until after you receive the final semester grade for the course.
  • Do not discuss implementation details of the assignment with your peers.
  • Do not discuss the contents of a course exam with other students, especially those students who have not taken the exam yet.
  • Ask the instructor for clarification of any questions or concerns about academic integrity policies before submitting an assignment.

Forum Use

The forum is available to ask questions about assignments and tests.  Do NOT post any code to the forum unless the post is private! The teaching staff reserves the right to edit any student’s forum post for inappropriate content. Additionally, use of the forum is a privilege. Improper use for the forum may result in a ban from posting or reading.

Posting Assignment Artifacts Online

While your deliverable is your work, the assignment artifacts (guided projects, project requirements, project design, provided code, quiz questions, etc.) are the intellectual property of the instructors and the university.  You may not post any assignment artifacts (including assignment descriptions) or solutions to a publicly accessible website, public code repository, or assignment repository (e.g., Chegg, etc.) during or after the semester. Teaching staff will request removal of unauthorized materials; failure to remove materials in a timely manner will result in an academic integrity violation.

Some companies like to review student code artifacts as part of a hiring process. You may use CSC 216/217 materials for this code porfolio using the following guidelines: 1) the code must be posted in a private repository or online resource and only shared with the hiring manager or reviewer and 2) you must add a README or additional documentation clarifying the parts of the code you implemented and differentiating what was provided for you (GUI, design, tests, etc.). After the review is complete (about 2 weeks), remove permissions from the reviewer.

Academic Honesty

See http://policies.ncsu.edu/policy/pol-11-35-01 for a detailed explanation of academic honesty.

Honor Pledge

Your name on any test or assignment or the electronic submission of an assignment through Moodle or other class courseware system indicates, “I have neither given nor received unauthorized aid on this test or assignment.”

University Policies

Student privacy

  • Originality Checking Software: Software is being used in this course to detect the originality of student submissions. We will use a software similarity detection tool on programming assignments. We may also use tools that would detect AI generated solutions.
  • Class Recording Statement: In-class sessions are recorded in such a way that might also record students in this course. These recordings will NOT be used beyond the current semester or in any other setting outside of the course.
  • Class Privacy Statement: This course requires online exchanges among students and the instructor, but NOT with persons outside the course. Students may be required to disclose personally identifiable information to other students in the course, via electronic tools like email or web postings, where relevant to the course. Examples include online discussions of class topics and posting of student coursework. All students are expected to respect the privacy of each other by not sharing or using such information outside the course.

Other Policies

Students are responsible for reviewing the NC State University PRR’s which pertain to their course rights and responsibilities:

Student Resources

Academic and Student Affairs maintains a website with links for student support on campus, including academic support, community support, health and wellness, financial hardship or insecurity, and more. Find Help on Campus.

Disability Resources

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.

Safe at NC State

At NC State, we take the health and safety of students, faculty and staff seriously. The Office for Institutional Equity and Diversity supports the university community by providing services and resources to support and guide individuals in obtaining the help they need. See the Safe at NC State webpage for resources.

Supporting Fellow Students in Distress

As members of the NC State Wolfpack community, we each share a personal responsibility to express concern for one another and to ensure that this classroom and the campus as a whole remains a safe environment for learning. Occasionally, you may come across a fellow classmate whose personal behavior concerns or worries you. When this is the case, you are encouraged to report this behavior to the NC State CARES website. Although you can report anonymously, it is preferred that you share your contact information so they can follow-up with you personally.

Course Evaluations

ClassEval is the end-of-semester survey for students to evaluate instruction of all university classes. The current survey is administered online and includes 12 closed-ended questions and 3 open-ended questions. Deans, department heads, and instructors may add a limited number of their own questions to these 15 common-core questions.

Each semester students’ responses are compiled into a ClassEval report for every instructor and class. Instructors use the evaluations to improve instruction and include them in their promotion and tenure dossiers, while department heads use them in annual reviews. The reports are included in instructors’ personnel files and are considered confidential.

Online class evaluations will be available for students to complete during the last two weeks of the semester for full semester courses and the last week of shorter sessions. Students will receive an email directing them to a website to complete class evaluations. These become unavailable at 8am on the first day of finals.

Syllabus Modification Statement

Our syllabus represents a flexible agreement. It outlines the topics we will cover and the order we will cover them in. 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.

Course Schedule

NOTE: The course schedule is listed on Moodle and GitHub pages is subject to change.