Instructor:
Name: | Tessema Mengistu (Ph.D.) |
Email: | tmengis-at-gmu-dot-edu |
Webpage: |
https://cs.gmu.edu/~tmengis/courses/SP21/CS262_Spring2021.html
|
Hours: | MW 10:00 - 11:30 AM or by appointment |
Office: | Online |
Name: | Andrews Kevin |
Email: | kandrew@gmu.edu |
Name: | Dewan Umama |
Email: | udewan@gmu.edu |
Name: | Hosain Al Amin |
Email: | ahosain@gmu.edu |
Name: | Pokhrel Anuj |
Email: | apokhre@gmu.edu |
Name: | Zhou Huayu |
Email: | hzhou8@gmu.edu |
Name: | Affan Ahmed |
Email: | aahmed37@gmu.edu |
Name: | Benjamin Wall |
Email: | bwall4@gmu.edu |
Name: | Chandraaditya Putrevu |
Email: | cputrevu@gmu.edu |
Name: | Colton Ramey |
Email: | cramey4@gmu.edu |
Name: | Hurmaan Ahmed |
Email: | hahmed22@gmu.edu |
Name: | Megan Ngo |
Email: | mngo6@gmu.edu |
Name: | Panupon Guntapong |
Email: | pguntapo@gmu.edu |
Name: | Tomas Doherty |
Email: | tdohert@gmu.edu |
Name: | Vy Hoang |
Email: | vhoang6@gmu.edu |
Section | Days | Times | Location |
---|---|---|---|
Sec 001 | TR | 10:30 - 11:45 AM | Online |
Sec 002 | Asynchronous | N/AOnline | |
Sec 003 | MW | 12:00 - 1:15 PM | Online |
Sec 004 | MW | 3:00 - 4:15 PM | Online |
Required | Kernighan and Ritchie, The C Programming Language, 2nd edition, Prentice Hall, 1988. | ||
References | Michael Kerrisk, The Linux Programming Interface, No Starch Press, 2010 | ||
Complementary | Printz and Crawford, C in a Nutshell: A Desktop Reference, 1st edition, O’Reilly, 2006 | ||
Griffiths and Griffiths, Head First C, 1st edition, O’Reilly’, 2012 |
Course Description:
Most high-level programming languages (and particularly Java) insulate the programmer from the realities of the hardware on which the programs will run. C is the exception since it was originally designed to implement the Unix operating system. C offers the programmer direct access to much of the underlying hardware and, for programs running under Unix, direct access to operating system services. For these reasons C remains the language of choice for systems programming. Course OutcomesBy the end of the semester, students will:
Programming assignments
Students will receive a number of programming projects (3)during the semester. These programming projects will be a primary focus of your grade - each one should take multiple sessions of coding, with questions asked in between. Don't be surprised if you're spending 20+ hours on each one. All project grades will be averaged together evenly. Programming projects are INDIVIDUAL work.
Grade Distribution
Material | Weight | Note |
---|---|---|
Weekly Lab Assignments | 15% | |
Class Participation | 5% | |
Programming Projects | 30% | |
Tests (5) | 25% | |
Final exam | 25% |
Grading Scale
Grade | A+ | A | A- | B+ | B | B- | C+ | C | C- | D | F |
---|---|---|---|---|---|---|---|---|---|---|---|
max | ↑ | 97 | 91 | 89 | 87 | 81 | 79 | 77 | 71 | 69 | 59 |
min | 98 | 92 | 90 | 88 | 82 | 80 | 78 | 72 | 70 | 60 | ↓ |
Unless specific instructions are given to the contrary, programming assignments are an individual effort, no group work is allowed. In addition to code, this includes the sharing of test cases, pseudocode, or approaches, receiving assistance in debugging code, as well as the use of external Internet sites.
Both the GMU Honor Code and the CS Department Honor Code apply in this class. Any use of a direct contribution on any program, homework, quiz, or exam will be reported as a violation of the honor code.
We take the honor code quite seriously. Any attempts at copying or sharing code, algorithms, or other violations of the honor code simply will not be tolerated. We use automated software to flag suspicious cases, and then review them to find the cases that must be submitted to the Office of Academic Integrity. The penalty for cheating will always be far worse than a zero grade, to ensure it's not worth taking the chance. Confirmed cases of cheating almost always translate into course failure.
Some kinds of participation in online study sites violate the Mason Honor code: these include accessing exam or quiz questions for this class; accessing exam, quiz, or assignment answers for this class; uploading of any of the instructor’s materials or exams; and uploading any of your own answers or finished work. Always consult your syllabus and your professor before using these sites.
Students who have a right to accommodations due to disabilities or other conditions should discuss this with the instructor as soon as possible. Accommodations will follow the recommendations of the University's Office of Disability Services.
Week | Date | Topic(s) | Text Book Reading Chapters | Assignments | Notes | |
---|---|---|---|---|---|---|
week 1 | 01/25-01/29 | Introduction to C Programming vi/vim | Lab 1 | |||
week 2 | 02/01-02/05 | Types, Operators, and Expressions, Standard I/O | 2, 7 (7.1) | Lab 2 Project-1 | ||
week 3 | 02/08 - 02/12 | Control Flow | 3 | Lab 3 Test 1 (Week 1 -3) | ||
Sun, Feb 14 | Lab 1 - due | |||||
week 4 | 02/15-02/19 | Functions | 4 | Lab 4 | ||
Sun, Feb 21 | Lab 2 - due | |||||
week 5 | 02/22-02/26 | Arrays and Strings | 5 | Lab 5 | ||
Sun, Feb 28 | Lab 3 due;Project-1 due | |||||
week 6 | 03/01-03/05 | Pointers | 5 | Test 2 (Week 4 - 6); Lab 6; Project - 2 | ||
Sun, Mar 07 | Lab 4 due | |||||
week 7 | 03/08-03/12 | Multidimensional Arrays, Dynamic Memory Allocation | 5 | Lab 7 | ||
Sun, Mar 14 | Lab 5 due | |||||
week 8 | 03/15 - 03/19 | |||||
Structures | 6 | Lab 8 | ||||
Sun, Mar 21 | Lab 6- due | |||||
week 9 | 03/22-03/26 | File I/O Debugging using gdb | 7 20(C in Nutshell) | Lab 9 Test 3 (Week 7 & 8) | ||
Sun, Mar 28 | Lab 7- due; Project 2 - due | |||||
week 10 | 03/29-04/02 | Bitwise operators | 2 | Lab 10; Project 3 | ||
Sun, Apr 04 | Lab 8- due | |||||
week 11 | 04/05 - 04/09 | Self-referential structures Linked List | 8 (8.5) | Lab 11; Test 4 (Week 9 - 11) | ||
Sun, Apr 11 | Lab 9 due | |||||
week 12 | 04/12- 04/16 | Using Multiple Source Files Debugging using valgrind | 4 (Head C) | |||
Sun, Apr 18 | Lab 10 due | |||||
week 13 | 04/19-04/23 | The Unix System Interface | 8 | |||
Sun, Apr 25 | Lab 11 due; Project 3 due | |||||
week 14 | 04/26 - 04/30 | Final Exam Review | Test 5 (Week 12 & 13) | |||
Exam week | Tue, May 04 | Final Exam 10:30 AM - 1:15PM | Sec 001 | |||
Fri, May 07 | Final Exam 8:00AM - 8:00 PM | Sec 002 | ||||
Mon, May 03 | Final Exam 10:30 AM - 1:15PM | Sec 003 | ||||
Mon, May 03 | Final Exam 1:30 - 4:15PM | Sec 004 |