Course Syllabus

NC State - Fall ‘25 - CSC 236

Instructor Information

Dr. Caio Batista de Melo
[email protected]
242C 111 Lampe Drive
(919) 513-5049

Office Hours

Dr. Batista’s office hours are held on Tuesdays, from 4pm to 5pm over zoom. Check EdStem for the zoom link.

TA’s office hours TBD.

If you need to meet at a different time, we will work with you to find a time. Please reach out to the teaching staff over EdStem to schedule it. Our lectures will also have time to accomodate a handful of questions at the end.

Preferred Method of Communication

While instructor email address is provided for completeness, please use the EdStem Discussion Board for all course-related correspondence. This is to ensure that we can provide timely, high quality responses!

Also, make sure to search the board for any previous posts that might answer your question.

Response Time

Typically a member of the teaching staff will respond to an email or message board post within 24 hours on a business day and within 48 hours on a weekend or holiday. It’s possible we will respond more quickly, but it is not guaranteed.

Course Information

Course Website: https://wolfware.ncsu.edu/courses/my-wolfware/

Course Credit Hours: 3

Meeting Time

  • Monday and Wednesday 4:30 PM - 5:45 PM in 353 111 Lampe Drive

Prerequisites

CSC 230 or ECE 209

Course Overview

Catalog Description

Computer architecture topics required by professional software developers, including binary and hexadecimal numbers, hardware component organization, machine instruction sets, assembler language programming, linking assembler language with high-level languages, program testing, computer hardware design issues, computer software design issues, and trends in current computer design.

Structure

The majority of this course is synchronous, delivered through real-time, face-to-face class sessions. Additional materials and activities delivered through Moodle, a secure and easy-to- use online learning platform.

When you log into the Moodle system, this course section will be listed. The message board will be within Ed Discussion Board. To access ALL course information, use the following URL: https://wolfware.ncsu.edu.

All submissions will be within the Moodle system as noted by the given assignment. No submissions will be allowed over email.

We will generally meet as a class twice a week, 75 minutes each. These class periods will serve as either (1) lectures, which will include clicker questions, peer instruction questions, and discussions; or (2) workdays, during which time you should work on the appropriate project and ask the staff for help if needed.

Please plan and use your time wisely. Do NOT wait until the last minute to complete assignments!

Learning Outcomes

At the end of the course, students will be able to:

  • Add and subtract and convert, signed and unsigned integers, using bases 2, 10 and 16.
  • Enumerate the functional components of a computer; explain trade-offs in computer design as they relate to cost and function and performance; outline computer architectural enhancements beyond the von Neumann model.
  • Explain the basic operation of interrupts and microcode.
  • Program in x86 assembly language and ARM assembly language
  • Link assembler subroutines with a High Level Language.
  • Convert symbolic assembler code into machine code and convert machine code into symbolic assembler code.
  • Explain Floating-Point architecture and program the Floating-Point co-processor
  • Explain the basic operation of the Java Virtual Machine and Java Bytecode.

Course Materials

Optional Textbooks

  • The Elements of Computing Systems: Building a Modern Computer from First Principles
  • Programming with 64-Bit ARM Assembly Language: Single Board Computer Development for Raspberry Pi and Mobile Devices
    • by Stephen Smith

Technology Requirements

Hardware

A computer is required to complete homework, programming assignments, and the final report in this course. 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.

Software

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, TAs, fellow students, resources, etc.) should be constructive and provide feedback for improvement.

Professionalism also includes attendance and participation. If you are unable to participate, please notify the teaching staff (and if applicable, your team) as soon as possible.

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

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

You should have the same tone of professionalism in all of your submitted work (e.g., code documentation, variable names, etc.).

Get Help Online

  • General Questions: If you have a general question about an exercise or project, post your question to Ed Discussion.
  • Code-Related Questions: If you have a question that is more specific or that involves snippets of code, make a private Ed Discussion post.
  • Grade-Related Questions: If you have a question specific to you, your answer, or your grade, make a private Ed Discussion post.

Do NOT send private messages to a single member of the teaching staff via email or on Ed Discussion as the response may be delayed.

Grading

Grading Policy

Assignment Percentage
Exam 1 11%
Exam 2 11%
Final Exam 11%
Projects (9% each) 36%
Final Report 15%
Homework (1% each) 12%
Participation 4%
  • All assignments count, nothing is dropped.
  • Assignments are due on the specified date/time in schedule.
  • Some assignments will have extra points built in.

Grading Scale

Semester grades will be assigned to students who meet the minimum grade requirements for the course as explained above using the following scale where X is your overall weighted grade accumulated on exams, projects, homeworks, and participation. Grades will be rounded to the nearest integer. For example, with rounding to the nearest integer, the following grades would both round to 95: 94.50000 and 95.49999999.

Range Grade
97.0 <= X <= 100.0 A+
92.0 <= X < 97.0 A
90.0 <= X < 92.0 A-
88.0 <= X < 90.0 B+
82.0 <= X < 88.0 B
80.0 <= X < 82.0 B-
78.0 <= X < 80.0 C+
72.0 <= X < 78.0 C
70 <= X < 72 C-
68.0 <= X < 70.0 D+
62.0 <= X < 68.0 D
60.0 <= X < 62.0 D-
X < 60.0 F

Incomplete grades, 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 student must withdraw from a course or from the University due to hardship beyond their control, see Withdrawal Process and Timeline | Student Services Center for information and instructions.

Course Schedule

Course schedule can be found here.

Please note: course schedule is subject to change.

Course Policies

Attendance and Participation

Attendance

Attendance for 100- and 200-level courses is required as per NC State REG 02.20.03 – Attendance Regulations; therefore, we will record attendance throughout the semester. However, there are no penalties regarding low attendance.

Participation

Participation counts 4 points of your course grage, and it is proportional to your overall participation. As long you participate in at least 90% of in-class activities (i.e., attend class, answer tophat), you will receive full credit for participation.

Exam Makeup Policy

Makeups for Exam 1 and Exam 2 will only be given for:

  1. anticipated excused absences on exam days that are presented to the instructor no later than one week before the absence as makeup test will be scheduled prior to original test date. Examples include student is away from campus representing an official university function where documentation from University faculty or staff member is presented to instructor, religious observances as verified by the Division of Academic and Student Affairs, and required military duty as certified by the student’s commanding officer.
  2. unanticipated excused absences that are verified by Absence Verification (e.g., deaths, legal obligations, military duty, and serious illnesses like surgery and hospitalizations) within one week of the test period as makeup tests must be taken within a week of original test date.

For students who miss Exam 1 and/or Exam 2 for any other reason (unexcused absences or excused absences not verified by Absence Verification), then the portion of the Final Exam that covers missed test will count for the missed test; for example, if a student misses Exam 1 and scores 90 on the Exam 1 portion of the Final Exam, then their Exam 1 score would be 90.

For the Final Exam, all anticipated excused absences on assigned Final Exam days must be presented to the instructor no later than one week before the absence. Exam makeups for anticipated excused absences must be completed before the original exam time (before the absence instead of after returning from the absence). For unanticipated Final Exam absences the student must provide written documentation of an excused absence to the instructor before grades are due for the semester, then the student’s course grade will be recorded as IN (incomplete), and the student will need to complete the final exam within 1 week of returning from the absence. For unexcused absence during Final Exam period, Final Exam grade will be recorded as a 0.

Final exam reschedule requests (due to other exam conflicts) must be approved by the university and communicated with the instructor at least 1 week before the scheduled final exam start time. If you have a conflict with your final exam schedule (e.g., three or more consecutively scheduled final examinations within any 24-hour period), you can access the Exam Reschedule tool in MyPack by navigating through the Planning & Enrollment tile.

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

Withdrawal Process: https://studentservices.ncsu.edu/your-classes/withdrawal/process/

Exam Policy

You will have the opportunity to improve your Exam 1 and Exam 2 grades during the Final Exam. The final exam will be cumulative and cover materials from the whole semester. The Final Exam will have three parts:

  • Part 1 questions cover materials from Exam 1
  • Part 2 questions cover materials from Exam 2
  • Part 3 questions cover materials covered between Exam 2 and the end of the semester

If your score for Final Exam Part 1 questions is higher than your original Exam 1 grade, we will replace your Exam 1 grade with the average of your score from Part 1 questions and your original Exam 1 score.

If your score for Final Exam Part 2 questions is higher than your original Exam 2 grade, we will replace your Exam 2 grade with the average of your score from Part 2 questions and your original Exam 2 score.

Use of AI Tools

This course requires you to complete various assignments that assess your understanding and application of the course content. You are expected to do your own work and cite any sources you use properly. You are not allowed to use any artificial intelligence (AI) tools, such as chatbots, text generators, paraphrasers, summarizers, or solvers, to complete any part of your assignments. Any attempt to use these tools will be considered academic misconduct and will be dealt with according to the university’s academic integrity policy. Students are expected to complete all work independently and without the assistance of AI-generated content. If you have any questions about what constitutes acceptable use of AI tools, please consult with the instructor before submitting your work.

University Policies

Academic Integrity and Honesty

Students are required to comply with the university policy on academic integrity found in the Code of Student Conduct 11.35.01 sections 8 and 9. Therefore, students are required to uphold the Pack Pledge: “I have neither given nor received unauthorized aid on this test or assignment.” Violations of academic integrity will be handled in accordance with the Student Discipline Procedures.

Please refer to the Academic Integrity web page for a detailed explanation of the University’s policies on academic integrity and some of the common understandings related to those policies.

Student Privacy

Originality Checking Software

Software may be used in this course to detect originality of student submissions.

Class recording statement

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.

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 pertains to their course rights and responsibilities:

Disability Services

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 at Holmes Hall, Suite 304,Campus Box 7509, 919-515-7653 . For more information on NC State’s policy on working with students with disabilities, please see the Academic Accommodations for Students with Disabilities Regulation (REG02.20.01)

Remember, accommodations are not retroactive and may take time to be implemented, so be sure to send your letters as early in the semester as possible. Students registered with Disability Resource Office should present their letters of accommodations to the instructor prior to the end of the first week of classes. In addition to having letter sent to instructor, students should discuss accommodations with instructor.

For Testing Accommodations, the DRO provides limited proctoring services. As reservations fill quickly, students should make exam reservations as soon as possible based on course schedule.

Trans-Inclusive Statement

In an effort to affirm and respect the identities of transgender students in the classroom and beyond, please contact me if you wish to be referred to using a name and/or pronouns other than what is listed in the student directory.

Basic Needs Security

Any student who faces challenges securing their food or housing or has other severe adverse experiences and believes this may affect their performance in the course is encouraged to notify the professor if you are comfortable in doing so. Alternatively, you can contact the Division of Academic and Student Affairs to learn more about the Pack Essentials program https://dasa.ncsu.edu/pack-essentials/.

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 NC State Cares. 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.

Please complete your evaluations to help us improve this course!

Assignments

Deadlines

Count on last minute system failures, power outages, laptop issues, internet connectivity issues, etc. Make sure you are backing-up your work and frequently pushing to your remote NCSU GitHub repository so that you are able to at least receive partial credit. A broken computer, power outage, etc. are not acceptable excuses for requesting extensions on assignment deadlines!

Submit early! For GitHub assignments, push early and push often.

Grading Policies

The due dates for all assignments are given in the course schedule. Most assignments are due at 4:30 pm, unless otherwise specified in the schedule.

For projects, you will have a 15-minute grade period to account for technical issues in Moodle. After the grace period is over, your submission will either be considered late (if applicable) or not accepted. When the grade for an assignment is posted in Moodle, you will receive an email. It is your responsibility to verify the posted grade is correct. You have one week after a grade is posted to request a regrade or a correction through EdStem. After one week, no adjustments will be made.

Homework submissions are not accepted late without university-approved documentation/justification.

Self-grading assignments

Most assignments are automatically graded. To receive credit, you must electronically submit the correct file on time. An assignment is considered complete at the time that the correct file, specified in the assignment description, is submitted to the assignment’s submit page. Incorrect or forgotten submissions cannot be processed. The submit timestamp from your last submission on Moodle is the time used to determine any bonus or penalty. You may re-submit any assignment up to the late deadline. The last submission will be the one used for grading.

Early Submission

For some assignments, early submission can earn a bonus of 5 points. If you submit early, you’ll earn +5 on the credit you would have earned if you had submitted on time. The assignments available for Early Credit are Projects 1, 2, 3, and 4.

Late Submission

  • Projects
    • All projects are required to be submitted electronically by their specified deadlines on the schedule and moodle.
    • Late Submissions
      • All projects have a 15-minute grade period for technical difficulties.
      • Additoinally, you will have 5 late days for projects this semester.
      • These days can be used for Projects 1~4, but cannot be used for the final report.
      • You can use all 5 days in a single project, 2 days on P1 and 1 day on P2-3-4, or any combination you wish.
      • We will always consider your last submission on moodle for grading.
      • There is no going back on a used day, i.e., if you made a late submission, that day is used.
      • You don’t need to submit anything to use these days, all projects will be open for late submissions and we’ll reduce the number of days you have based on your submissions.
      • Please be aware of the number of days you have remaining! There’s a moodle assignment that is updated after each project is due.
      • No extra days will be awarded, and submissions over your extra days will not be considered.
      • Example: if Project 1 is due Monday at 4:30PM, and you make a submission between Monday 4:46PM and Tuesday 11:59PM, you’ll use one of your days. If you make a submission between Wednesday 00:00AM and Wednesday 11:59PM, you’ll use 2 days. And so on.
    • No work will be accepted via email.
  • Homeworks
    • No late submissions will be allowed for homeworks without university-approved documentation/justification.
  • Final Report
    • No late submissions will be allowed for the final report without university-approved documentation/justification.

Extra Credit

The only opportunities for extra credit in this course will be the early submission for some of the projects. No other extra credit assignments will be offered.

Exams

There will be three exams in this course for a total of 33% of your semester grade. Each exam will cover all materials (readings, projects, homeworks, and lectures). The final exam will be cumulative. See Makeup Policy and Exam Policy above.

Documentation and Communications

Your documentation must be meaningful. Whether or not you consider documenting a program as a useful function, you must act professionally and provide useful documentation. Do not just write words to fill space. There are some documentation aberrations that are not detected by the automated grading system. They can, however, be detected by the staff after an assignment is submitted. If any of these are detected, the program will lose up to all the credit awarded for documentation and a penalty may be assessed; the exact amount to be set by the staff.

Examples include:

  • Using a header block that does not match the program, e.g., from a previous assignment or from sample code provided.
  • Specious documentation where the comment just echoes the assembler instruction but provides no useful information. For example add r0,r1,r2 ;r0=r1+r2
  • Meaningless documentation that appears to just fill space in order to get credit.

A high degree of professionalism is required with email communications. You must adhere to these rules in EdStem posts and email messages:

  • For email, identify the course and section in the subject line along with the subject of the message. For example: “CSC236-001 - Program 1”.
  • Write full and proper English sentences with correct punctuation.
  • If you have several items, number them for ease of reading. This will help make sure we don’t miss part of your question and the response will also be easier to understand.
  • Be both concise (do not ramble) and clear (assure what you say is understandable). To quote Albert Einstein …“Make everything as simple as possible, but not simpler.”

Academic Integrity

Violations of academic integrity will be handled in accordance with the Student Discipline Procedures (NCSU REG 11.35.02).

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?

All cases of academic misconduct will result in a grade sanction:

  • the minimum grade sanction for academic misconduct is no credit for the assignment (the assignment grade will be recorded as 0), and
  • the maximum grade sanction for academic misconduct is no credit for the course (resulting in an F as the final semester grade on the student’s transcript), making the course ineligible for Grade Exclusion under University Regulation 02.20.16.

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, 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.

Academic misconduct that involves unauthorized assistance or collaboration (e.g., sharing course materials, assignment solutions, and/or assignment deliverables that were produced while enrolled as a student in CSC116; providing unauthorized assistance to currently-enrolled students as they complete course assignments; etc.) will result in a grade sanction of no credit for the course, even if the behavior of academic misconduct occurred when the student is not currently enrolled in the course.

Examples

All of these are academic integrity violations:

  • Plagiarizing another person’s work. This includes all forms of using code written by another person in whole, in part or adapted from the work of another.
  • Using code you find online (code from a textbook is okay with proper citation).
  • Having another person help you design or code your assignment.
  • Requesting help on a public WEB site or bulletin board.
  • Giving your work to another person, even after the course is over. We may periodically reuse programs and you are responsible if someone submits your program even in a later term.
  • Posting part of your solution on EdStem or some other public forum, even if your solution isn’t working. If you can ask a question generally, without showing or paraphrasing your code, that’s a safe way to get help from a classmate without risk of an academic integrity problem. If you feel like you need to show your work to get help, that’s a good job for a private EdStem post. Only instructors can see these.
  • Posting your work on a public WEB site or bulletin board.
  • Any intentional attempt to circumvent the automated grading process.

Examples of NOT Cheating:

  • Researching algorithms (from the web or textbooks with citation in the header)
  • Using code from the class website (with citation in the comments).
  • Using code from other programs you wrote.
  • Help from the instructor or TAs.
  • Using code from a published textbook (with citation in the comments).

You must work completely alone on these assignments, except for help from the TA or instructor. Do not discuss the assignment with anyone. Do not work with anyone else on design or coding. Do not give or take ideas on how to solve the problem; clever ideas and a good design lead to higher grades on the programs and those higher grades are only due the person who thought up the design ideas. Do not jointly write any assembler instructions. Do not give or receive any actual assembler code. Do not give or receive program listings. All instructions you submit, must have been designed, developed, and written yourself.

Syllabus Modification Statement

The Course Instructor reserves the right to change or add to any of these policies at any time for any reason. If such activity occurs, there will be notification through the normal announcement channel for the course. Students are responsible for ALL information sent through email (including via Ed Discussion Board) and/or posted to the course Moodle site.

Not reading your email is not an excuse for not knowing course information.