ECE 209 Computer Systems Programming

Similar documents
Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

STA2023 Introduction to Statistics (Hybrid) Spring 2013

Course Content Concepts

Scottsdale Community College Spring 2016 CIS190 Intro to LANs CIS105 or permission of Instructor

Course Syllabus MFG Modern Manufacturing Techniques I Spring 2017

Required Texts: Intermediate Accounting by Spiceland, Sepe and Nelson, 8E Course notes are available on UNM Learn.

Interior Design 350 History of Interiors + Furniture

Spring 2015 CRN: Department: English CONTACT INFORMATION: REQUIRED TEXT:

Syllabus - ESET 369 Embedded Systems Software, Fall 2016

Computer Architecture CSC

FINN FINANCIAL MANAGEMENT Spring 2014

MAT 122 Intermediate Algebra Syllabus Summer 2016

Data Structures and Algorithms

Phys4051: Methods of Experimental Physics I

ECON492 Senior Capstone Seminar: Cost-Benefit and Local Economic Policy Analysis Fall 2017 Instructor: Dr. Anita Alves Pena

Adler Graduate School

Cleveland State University Introduction to University Life Course Syllabus Fall ASC 101 Section:

Office Location: LOCATION: BS 217 COURSE REFERENCE NUMBER: 93000

INDES 350 HISTORY OF INTERIORS AND FURNITURE WINTER 2017

Course Policies and Syllabus BUL3130 The Legal, Ethical, and Social Aspects of Business Syllabus Spring A 2017 ONLINE

Office Hours: Day Time Location TR 12:00pm - 2:00pm Main Campus Carl DeSantis Building 5136

IST 440, Section 004: Technology Integration and Problem-Solving Spring 2017 Mon, Wed, & Fri 12:20-1:10pm Room IST 202

IPHY 3410 Section 1 - Introduction to Human Anatomy Lecture Syllabus (Spring, 2017)

/ On campus x ICON Grades

Course Syllabus. Alternatively, a student can schedule an appointment by .

HARRISBURG AREA COMMUNITY COLLEGE ONLINE COURSE SYLLABUS

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

SYLLABUS: RURAL SOCIOLOGY 1500 INTRODUCTION TO RURAL SOCIOLOGY SPRING 2017

PHO 1110 Basic Photography for Photographers. Instructor Information: Materials:

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

Course Syllabus Advanced-Intermediate Grammar ESOL 0352

General Physics I Class Syllabus

Syllabus: CS 377 Communication and Ethical Issues in Computing 3 Credit Hours Prerequisite: CS 251, Data Structures Fall 2015

Foothill College Summer 2016

CIS 121 INTRODUCTION TO COMPUTER INFORMATION SYSTEMS - SYLLABUS

SYLLABUS. EC 322 Intermediate Macroeconomics Fall 2012

SOUTHERN MAINE COMMUNITY COLLEGE South Portland, Maine 04106

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

MGMT 479 (Hybrid) Strategic Management

CRITICAL THINKING AND WRITING: ENG 200H-D01 - Spring 2017 TR 10:45-12:15 p.m., HH 205

The Policymaking Process Course Syllabus

COURSE SYLLABUS: CPSC6142 SYSTEM SIMULATION-SPRING 2015

BUFFET THEORY AND PRODUCTION - CHEF 2332 Thursday 1:30pm 7:00pm Northeast Texas Community College - Our Place Restaurant Course Syllabus Fall 2013

Class Meeting Time and Place: Section 3: MTWF10:00-10:50 TILT 221

Course Syllabus p. 1. Introduction to Web Design AVT 217 Spring 2017 TTh 10:30-1:10, 1:30-4:10 Instructor: Shanshan Cui

AGN 331 Soil Science Lecture & Laboratory Face to Face Version, Spring, 2012 Syllabus

ENG 111 Achievement Requirements Fall Semester 2007 MWF 10:30-11: OLSC

Computer Science 1015F ~ 2016 ~ Notes to Students

Class Mondays & Wednesdays 11:00 am - 12:15 pm Rowe 161. Office Mondays 9:30 am - 10:30 am, Friday 352-B (3 rd floor) or by appointment

SOUTHWEST COLLEGE Department of Mathematics

POFI 1301 IN, Computer Applications I (Introductory Office 2010) STUDENT INFORMANTION PLAN Spring 2013

Prerequisite: General Biology 107 (UE) and 107L (UE) with a grade of C- or better. Chemistry 118 (UE) and 118L (UE) or permission of instructor.


The Heart of Philosophy, Jacob Needleman, ISBN#: LTCC Bookstore:

Your School and You. Guide for Administrators

Military Science 101, Sections 001, 002, 003, 004 Fall 2014

Financial Accounting Concepts and Research

POFI 1349 Spreadsheets ONLINE COURSE SYLLABUS

CS Course Missive

HCI 440: Introduction to User-Centered Design Winter Instructor Ugochi Acholonu, Ph.D. College of Computing & Digital Media, DePaul University

Instructor Experience and Qualifications Professor of Business at NDNU; Over twenty-five years of experience in teaching undergraduate students.

3D DIGITAL ANIMATION TECHNIQUES (3DAT)

Syllabus Foundations of Finance Summer 2014 FINC-UB

ENGLISH 298: Intensive Writing

EDCI 699 Statistics: Content, Process, Application COURSE SYLLABUS: SPRING 2016

State University of New York at Buffalo INTRODUCTION TO STATISTICS PSC 408 Fall 2015 M,W,F 1-1:50 NSC 210

Required Materials: The Elements of Design, Third Edition; Poppy Evans & Mark A. Thomas; ISBN GB+ flash/jump drive

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

ASTR 102: Introduction to Astronomy: Stars, Galaxies, and Cosmology

INTRODUCTION TO GENERAL PSYCHOLOGY (PSYC 1101) ONLINE SYLLABUS. Instructor: April Babb Crisp, M.S., LPC

CHEM:1070 Sections A, B, and C General Chemistry I (Fall 2017)

CS 100: Principles of Computing

University of Arkansas at Little Rock Graduate Social Work Program Course Outline Spring 2014

AU MATH Calculus I 2017 Spring SYLLABUS

TRINITY VALLEY COMMUNITY COLLEGE COURSE SYLLABUS

Office Hours: Mon & Fri 10:00-12:00. Course Description

Social Media Journalism J336F Unique ID CMA Fall 2012

INTRODUCTION TO SOCIOLOGY SOCY 1001, Spring Semester 2013

PSY 1012 General Psychology. Course Policies and Syllabus

Astronomy/Physics 1404 Introductory Astronomy II Course Syllabus

ecampus Basics Overview

2362 Palmer Set up an appointment:

Dutchess Community College College Connection Program

BUS Computer Concepts and Applications for Business Fall 2012

ASTRONOMY 2801A: Stars, Galaxies & Cosmology : Fall term

Syllabus ENGR 190 Introductory Calculus (QR)

Management 4219 Strategic Management

Class Tuesdays & Thursdays 12:30-1:45 pm Friday 107. Office Tuesdays 9:30 am - 10:30 am, Friday 352-B (3 rd floor) or by appointment

Academic Affairs. General Information and Regulations

The University of Texas at Tyler College of Business and Technology Department of Management and Marketing SPRING 2015

Soil & Water Conservation & Management Soil 4308/7308 Course Syllabus: Spring 2008

AGN 331 Soil Science. Lecture & Laboratory. Face to Face Version, Spring, Syllabus

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

Monday/Wednesday, 9:00 AM 10:30 AM

MKT ADVERTISING. Fall 2016

COURSE WEBSITE:

CHEMISTRY 104 FALL Lecture 1: TR 9:30-10:45 a.m. in Chem 1351 Lecture 2: TR 1:00-2:15 p.m. in Chem 1361

Required Text: Oltmanns, T. & Emery, R. (2014). Abnormal Psychology (8th Edition) ISBN-13: ISBN-10:

Professors will not accept Extra Credit work nor should students ask a professor to make Extra Credit assignments.

Transcription:

ECE 209 Computer Systems Programming Section 051 and 652 Summer 2017 3 Credit Hours Course Description Computer systems programming using the C language. Translation of C into assembly language. Introduction to fundamental data structures: array, list, hash table. It will also include a brief introduction to timely and important topics in the field, in particular hardware interfacing and parallel and distributed computing concepts. Learning Outcomes This course continues your introduction to computing systems by focusing on programming. In particular, you will learn more about the C programming language, how its features can be implemented using a processor s instruction set, and how to use data structures in C to write programs to solve complex problems. By the end of this course, you will be able to: Implement a program in the C language based on a detailed specification. Demonstrate the use of C compilers and debugging tools. Describe how C functions are implemented, including: (1) activation records, (2) how the runtime stack is used to support function execution, and (3) how activation records and the runtime stack are implemented in assembly language. Implement the following data structures in C: array, list, and hash table. Convert C language elements to LC 3 assembly language: variables, basic expressions, function calls, pointers, arrays, and structs. This class also includes an associated problem session (209P), in which you will be given significant programming assignments. The problem sessions are designed to give you hands on experience with C programming tools. You are required to register for 209P while taking ECE 209. Course Structure Lectures Each week there will be three to four scheduled lectures. Students are expected and required to attend each scheduled lecture. To help you get the most out of lecture, each session will be recorded and made available online. You may use these recordings to revisit topics you did not understand in class or make up for missed class time due to absence.

Problem Sessions Problem sessions will be held each week in EB2 1014. You should prepare for Problem Sessions by attending lecture and reading assigned material in advance of class. Problem sessions will often include a graded programming exercise that either reinforces concepts from class or prepares you for a larger Programming Assignment. Programs Programs will be assigned and due every 2 to 3 weeks. These are designed to measure your ability to build complete programs to solve a problem. You should start early on these assignments to ensure you get the help you need. Homework and CodeLab Each week you will have written homeworks and CodeLab assignments. CodeLab is an online coding environment that provides detailed and immediate feedback on coding exercises. Students who have taken my course in the past have found CodeLab instrumental for learning C in depth. CodeLab exercises will be assigned regularly to give you experience programming a variety of common tasks in C. Each day, you should budget a little time to complete a few CodeLab assignments. While they are not meant to be difficult, you will encounter problems on occasion. Saving them all until the day they are due is a recipe for failure. Exams There will be two exams during the semester and one final exam. The exams and final are comprehensive and will test important class concepts and programming skills. Getting Help: Social Networking, Communicating with Instructors, Google Docs The primary means of communicating with instructors or your peers will be through Piazza (www.piazza.com). Here you can post private messages only viewable by the instructor and TA. Piazza also supports anonymous posts (anonymous even to the instructor). For questions about Homeworks and Programming assignments, you should add comments directly on the shared Google Doc describing the assignment.

Course Policies Course web site: http://wolfware.ncsu.edu Questions, Message Board, Social Networking using Piazza Use Piazza to ask questions and get feedback. You should have received an email asking you to join the class on Piazza.com. Electronic Submission All assignments, except exams, will be submitted electronically. Please make sure you know how to do this before reaching a critical deadline. Log on to Moodle, click on the assignment, and then upload your file. Double check that you uploaded it to the correct assignment! Communicating with the class and with instructors: All class announcements will be posted to Piazza. Moodle will hold all homework assignments and solutions, lecture notes, past exams, and other relevant information. The instructor may choose to broadcast an email message to the entire class for time critical announcements. For the most part, however, you are responsible for getting information in class, from Moodle or from Piazza. When to Email or Call Instructors Since Piazza has a private and anonymous posting feature, most dialogues are appropriate for that forum. However, there are some cases that you might prefer to email me: A personal matter, like a medical issue, that you wish to keep private from TAs or other class instructors. Something that is not class related but relates to advising or being a student. Anything else that you feel is too personal to post to a message board. Please reserve email for these matters and otherwise use Piazza for communicating with instructors. My office phone should be reserved for emergencies only. For example, if the TA does not show up to lab, you may call me and ask what to do (this has happened before, but I doubt it will this term). Or, if you can t make it to an exam due to a car accident, it would be appropriate to call or email me and let me know. However, you should not call me to tell me you need help with a problem. That s what Piazza is for.

Course Lockers A course workspace locker is provided for each student. The path to your directory is: /afs/eos.ncsu.edu/lockers/workspace/ece/ece209/051/<your unityid> This locker is 1GB and may only be used for ECE 209. Abuse of this resource (e.g., using it to store videos, pictures, or other personal content) will result in the removal of your locker space. The TA's and the instructor have read and write access to your locker. Classroom Capture via Mediasite All lectures will be recorded for later viewing using EOL s video recording service. The URL to access these recordings will be provided to all students. Please be aware that questions you ask during class may be recorded. Important External (non NCSU) Electronic Resources Piazza We ll be using Piazza as our class message board. This is a free tool. To get access: Sign up at piazza.com/ncsu/summer2017/ece209 ZyBook We'll be using an e book from zybooks.com this semester. To get access: Sign up at zybooks.com Enter zybook code NCSUECE209TuckSummer2017 Click Subscribe CodeLab We'll be using CodeLab from TuringsCraft. To get access: Registration (for students): 1. Go to www.tcgo1.com OR www.tcgo2.com 2. Click "Register for CodeLab" 3. Choose "I am a student in a course..." and click CONTINUE 4. Enter the Section Access Code: NORT 25599 JBWR 33 and click CONTINUE 5. Continue filling out the forms being careful to enter your official university email address and first and last names (these will appear in the professor's roster)

Login (for anyone): 1. Go to www.tcgo1.com OR www.tcgo2.com 2. Click "Login to CodeLab, the username is the email address given during registration, the password is the password selected during registration Instructors James Tuck (jtuck) Instructor Email: jtuck@ncsu.edu Web Page: http://go.ncsu.edu/tuck Phone: 919 513 0923 Office Location: EB2 3066 Office Hours: Monday/Wednesday: 4 pm to 5 pm Tuesdays: 3:30 pm to 5:30 pm Jeanne Sanders Teaching Assistant Email: jelunsfo@ncsu.edu Office Hours: Monday: 11 am to 1 pm; cancelled May 29 and July 3 Location: EB2 2039 Course Meetings Lecture Section 001 Days: MWThF Time: 1:40 pm to 2:55 pm Campus: Centennial Location: EB2 1230 This meeting is required. Problem session Section 451/752 Days: F Time: 9:50 am 11:40 am Campus: Centennial Location: EB2 1014 This meeting is required.

Meeting Notes If lecture is canceled due to inclement weather or because the instructor is traveling, make up lectures will be posted as videos. Students are required to watch these make up lectures and complete any associated assignments. Course Materials Textbooks Introduction to Computing Systems: From Bits and Gates to C and Beyond Yale N. Patt and Sanjay J. Patel Edition: 2nd ISBN: 0 07 246750 9 Cost: $95 This textbook is required. C Primer Plus Stephen Prata Edition: 5th ISBN: 0 672 32696 9 Cost: $50 or available free online from the NCSU library This textbook is optional. Programming in C Roman Lysecky and Frank Vahid Edition: 1st Web Link: ZyBooks.com Cost: $48 This textbook is required. Materials CodeLab, www.turingscraft.com $25 This material is required. Requisites and Restrictions Prerequisites In order to take this class, you must have completed ECE 109 (Introduction to Computer Systems), with a grade of C or better. There will be very little review of ECE 109 material. In particular, you should be very comfortable with the LC 3 instruction set and LC 3 assembly language before taking this class.

Co requisites None. Restrictions None. General Education Program (GEP) Information GEP Category This course does not fulfill a General Education Program category. GEP Co requisites This course does not fulfill a General Education Program co requisite. Transportation This course will not require students to provide their own transportation. Non scheduled class time for field trips or out of class activities is NOT required for this class. Safety & Risk Assumptions None. Grading Grade Components Component Weight Details

Homework, CodeLab, and In class Assignments 20 Homework. There will be approximately one written homework assignment bi weekly. These problems cover all aspects of the course's material. In some cases, only a random sample of questions from the assignment will be graded for correctness each week. The remaining questions will be checked only for completeness. Our goal is to return graded homework within two weeks of their due date. All homework will be submitted electronically using Moodle. All such homework assignments are weighted equally. Approximately 7 such homeworks will be assigned, so homework will be worth roughly 700 points. CodeLab. CodeLab is a web tool designed to improve your ability to write programs in C. It will only focus on C programming skills. You will be assigned CodeLab problems each week, and some homework exercises will be submitted in CodeLab. You must complete the exercises online before the due date. All CodeLab exercises are to be done individually. Each problem in CodeLab is worth 2 points. But, there are 193 such exercises. So, they are worth 386 points in all. All Homework and CodeLab assignments are to be done individually. Though you can consult with other students, the instructor, TAs, or a tutor, it is crucial that you submit your own work and know how to do every homework assignment on your own. Review the class cheating policy for clarifying guidelines.

The weighted average across all such assignments will constitute 20% of your grade. Programming Assignments 20 There will be three programming assignments during the semester. All weighted equally. These are designed to develop skills designing larger programs. Typically, these will be completed outside of class/lab time, but the weekly problem sessions will help you prepare for these assignments. Problem Session (Lab) Assignments 10 To receive credit for this class, you must also be registered for the problem session (ECE 209P). Problem sessions will be held every week in EB2 1014. During some problem sessions, there will be in lab assignments handed out at the beginning of the session. These must be completed and submitted during the problem session. These assignments may be graded based on completeness and/or correctness, depending on the PS assignment. The PS grade will be computed as follows: 70%: The average of your PS grades. (7 points of your total grade) 30%: A final PS exam that tests your ability to use the compiler and debugger. (3 points of your total grade) Exams 50

There will be two regular exams (10% each) and one comprehensive final exam (30%). All exams will be closed book and closed notes. Regular exams will be administered during regular class periods, on or close to the dates listed below. The final exam will be given according to the university schedule, also given below. Exam 1: Friday, June 2 Exam 2: Friday, June 30 Final: (Tentative) Monday July 24 See the Makeup Work Policy for policies regarding missed exams. Do not ask for permission to take the final exam early or late because of family travel plans. These requests will not be granted. 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 Credit Only (S/U) Grading In order to receive a grade of S, students are required to take all exams and quizzes, complete all assignments, and earn a grade of C or better. Conversion from letter grading to credit only (S/U) grading is subject to university deadlines. Refer to the Registration and Records calendar for deadlines related to grading. For more details refer to http://policies.ncsu.edu/regulation/reg 02 20 15. Requirements for Auditors (AU) Information about and requirements for auditing a course can be found at http://policies.ncsu.edu/regulation/reg 02 20 04. No auditing is allowed for this course. Policies on Incomplete Grades If an extended deadline is not authorized by the instructor or department, an unfinished incomplete grade will automatically change to an F after either (a) the end of the next regular semester in which the student is enrolled (not including summer sessions), or (b) the end of 12 months if the student is not enrolled, whichever is shorter. Incompletes that change to F will count as an attempted course on transcripts. The burden of fulfilling an incomplete grade is the responsibility of the student. The university policy on incomplete grades is located at http://policies.ncsu.edu/regulation/reg 02 50 3. Late Assignments Exams, Problem Session Assignments, and In class Assignments must be completed during the corresponding meeting time with no exceptions, unless specified by the instructor.

Missed assignments will receive a 0 unless your absence is excused by the instructor. Excused absences will be dropped from your grade. Late Penalty on Programs and Homeworks For Programs and Homeworks, they are due at the specified time and date in Moodle, and they will be submitted electronically through either Moodle or CodeLab (or as instructed). These tools record the time of submission and will allow you to upload the assignment late. Since the TA rarely begins grading at the deadline, I will accept late submissions, but there will be a penalty. Here is the policy: 0 8 hours late: no penalty > 8 hours late: 1.25% per hour or pro rated to 0.02% per minute. For example, if you submit 1 hour late and earn a perfect grade of 100%, you earn a 100%. Another example, if you submit 28 hours late, you are only penalized for 20 hours. 20 * 1.25 = 25%. So, if you make a 100%, you will receive a 25% penalty and make a 75%. The formula looks like this: Grade = MarkedGrade * (1.0125 * Max(0, HoursLate 8)) If you submit within the 8 hour grace period, you do not need to email me! Since this late policy is quite flexible, please do not email the instructor and ask for an extension unless you have legitimate grounds for an excused absence. Also, there is no need to email me about a late submission if you submit within the 8 hour grace period. The TA will take this policy into account automatically when assigning grades. Submissions more than 48 hours late If you plan to submit more than 48 hours late, please notify me so that I delay posting solutions. If I post solutions before you submit your assignment, you will receive a zero! Late CodeLab Since CodeLab is made up of multiple parts and each part has its own timestamp, you will receive full credit for all correct assignments submitted on time. But, you only receive 0.5 points for each correct one submitted late. The deadline to submit late is the due date of the next CodeLab or the last day of class, whichever comes first. In the case of an excused absence that prevents completion of an assignment, the assignment is due within 24 hours of your return to school. Beyond that deadline extension,

the late penalty will apply. (For extended absences with multiple missed assignments, talk to the instructor.) Attendance Policy For complete attendance and excused absence policies, please see http://policies.ncsu.edu/regulation/reg 02 20 03 Attendance Policy Class attendance is mandatory by University policy. I reserve the right to fail any student that attends fewer than half the required meetings. Absences Policy Only University approved excuses will be accepted, provided that they are accompanied by the appropriate official documentation. For more information about University approved absences, see: http://www.ncsu.edu/policies/academic_affairs/courses_undergrad/reg02.20.3.php Makeup Work Policy Missed assignments due to unexcused absences will receive a zero by default. Makeup Assignments or Exams A makeup exam or assignment will be given at the discretion of the instructor. However, if a make up assignment for an excused absence is not feasible, as is often the case with Problem Sessions, the missed assignment may simply be dropped from your grade. Students are allowed to make up one missed exam. However, the make up exam will occur at a later date selected jointly by the student and instructor. The makeup exam will be comprehensive up to the date it is administered. So, it is highly advantageous to attend all regularly scheduled exams. Additional Excuses Policy None.

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 Consultation on assignments (not exams!) is encouraged, but copying of solutions is not. Unless otherwise instructed, all assignments must be completed individually. Evidence of copying or other unauthorized collaboration will be investigated as a potential academic integrity violation. The minimum penalty for cheating on any assignment is a grade of 100 on the assignment. Because it can be challenging to know when consultation is allowed and when it is not, you should follow these rules: You may consult with other students as long as you have not yet started your response (to a written homework problem) or your code for a programming exercise. Once you have started writing or coding your answer, you may not consult with other students on your answer. If you fail to follow these procedures and consult with students after you begin writing your answer, it will be considered cheating. Example without Cheating: Suppose you discuss how to solve a programming assignment with a friend at a whiteboard. Then, you both go home (to different places) and implement your answer. The next day, after a great night of coding, you share your success with your friend with a high five. This is not cheating! Example with Cheating: Suppose you discuss how to solve a programming assignment with a friend at a whiteboard. Then, you go to the lab together and work on the solution. On occasion, you look at his code and he looks at your code to figure out what's going wrong. This is cheating even if you do not directly copy each other's files. Evidence of copying, including copying of source code, or any other use of unauthorized aid on exams, homeworks, CodeLab exercises, programming assignments, or

assignments will be investigated and potentially referred to the Office of Student Conduct as a violation of the Code of Student Conduct. See http://www.ncsu.edu/policies/student_services/student_discipline/pol11.35.1.php for a detailed explanation of academic honesty. Any work submitted for this class (homework, exam, programming assignment) is subject to the Honor Pledge : I have neither given nor received unauthorized aid on this test or assignment. An Honor Pledge statement must be signed for every exam. For other assignments, it is the understanding and expectation of the instructor that the submission of work with your name on it means that you neither gave nor received unauthorized aid. The instructor and TA s may use the MOSS system to check for cheating on any assignments that involve coding. Submissions with high levels of similarity will be investigated and potentially referred to the Office of Student Conduct. For more information about MOSS, see http://theory.stanford.edu/~aiken/moss/. Each semester many students are caught because they are unaware how sophisticated this tool is. If you copy code (even comments) you will be caught! Academic Honesty See http://policies.ncsu.edu/policy/pol 11 35 01 for a detailed explanation of academic honesty. Honor Pledge Your signature on any test or assignment indicates "I have neither given nor received unauthorized aid on this test or assignment." Electronically Hosted Course Components 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. Electronically hosted Components:

Please be advised this course is being recorded. During this course, you are required to use several Web hosted programs. These may include Moodle, Piazza, CodeLab, EOS Course Lockers, and Google Apps. Accommodations for Disabilities Reasonable accommodations will be made for students with verifiable disabilities. In order to take advantage of available accommodations, student must register with the Disability Services Office ( http://www.ncsu.edu/dso ), 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 at http://policies.ncsu.edu/regulation/reg 02 20 01. Non Discrimination Policy NC State University provides equality of opportunity in education and employment for all students and employees. Accordingly, NC State affirms its commitment to maintain a work environment for all employees and an academic environment for all students that is free from all forms of discrimination. Discrimination based on race, color, religion, creed, sex, national origin, age, disability, veteran status, or sexual orientation is a violation of state and federal law and/or NC State University policy and will not be tolerated. Harassment of any person (either in the form of quid pro quo or creation of a hostile environment) based on race, color, religion, creed, sex, national origin, age, disability, veteran status, or sexual orientation also is a violation of state and federal law and/or NC State University policy and will not be tolerated. Retaliation against any person who complains about discrimination is also prohibited. NC State's policies and regulations covering discrimination, harassment, and retaliation may be accessed at http://policies.ncsu.edu/policy/pol 04 25 05 or http://www.ncsu.edu/equal_op/. Any person who feels that he or she has been the subject of prohibited discrimination, harassment, or retaliation should contact the Office for Equal Opportunity (OEO) at 919 515 3148. Course Schedule NOTE: The course schedule is subject to change.

Lecture (MWThF) 05/16/2017 08/01/2017 The following is a tentative schedule of topics covered, with the number of 75 minute lectures devoted to each and the associated textbook chapters/sections. Textbooks are indicated as follows: PP = Patt and Patel, C = Prata (optional), Z=ZyBook. Topic Lect ures Text Chapters/Section s Intro and C basics: Data, Operators, Expressions 3 PP: 12, Z: 1 2, C: 1 3,5 C Control Statements 3 PP: 13, Z: 3 4, C: 6 7 Functions and recursion 3 PP: 14, 17, Z: 5 6, C: 9 Arrays, Pointers, and Strings 3 PP: 16, Z: 7, C: 10 11 C structs 2 PP: 19.1 19.3, Z: 8, C : 14 C Preprocessor 1 PP : 11, C : 16 Elementary sorting algorithms 2 Instructor s Notes Pointer arrays, multi dimensional arrays 1 Z: 7, C : 10 Dynamic memory allocation 1 Z: 8, PP: 19.4 Linked lists 2 PP: 19.5, Z: 8, C : 17 Hash tables 2 Instructor s Notes Abstract data types 2 Z: 8, C : 17 Parallel & Distributed Computing 1 Instructor s Notes Exams 2 TOTAL 29 Please see this Google Sheet for a more detailed schedule.

Problem Session (451 751) Problem Session (ECE 209P) 05/16/2017 08/01/2017 To receive credit for this class, you must also be registered for the problem session (ECE 209P). Problem sessions will be held every week in EB2 1014. During some problem sessions, there will be in lab assignments handed out at the beginning of the session. These must be completed and submitted during the problem session. These assignments will be graded for correctness. On weeks when there is no assignment, the problem session will be used as office hours by the TA. Final Exam Final Exam to be announced.