CS 222 - Computer Programming for Engineers (3 Units)

George Mason University
Course Description: Section 001 -- Spring 2014


Class 3:00 pm - 4:15 pm TR Krug Hall 7 Jan 21, 2014 - May 14, 2014 Lecture Jim X Chen

Office/Hours: Eng. 4446; TR 4:30-5:30pm; Prof. Jim X. Chen

DESCRIPTION: CS 222 is a second course in computer programming, emphasizing programming concepts relevant to engineers. Topics include lower level language aspects and elementary data structures. Students are expected to have a basic understanding of the elements of programming in some high-level language. CS 222 will be taught using C, but students are not presumed to be familiar with C prior to this class. This course is intended as a terminal course in programming for engineers.

Prerequisite: C or better in CS 112.


Students are expected to attend all lectures each week and are responsible for all material covered in the lectures.

Programming Assignments: Programming assignments will be posted on Blackboard as they are assigned, and must be submitted on Blackboard by the assigned due date. If your program is incomplete, you may still submit it for partial credit. However, your code must run without obvious errors (even if not all functionality is present). Any programming assignment that is submitted but either does not compile or has major errors when it runs will receive no more than 50% credit.

Reading: Students are responsible for reading and understanding all assigned material. If you do not understand any of the covered materal or reading assignments, there will be opportunities to ask questions in class or during UTA/GTA/instructor office hours.

Due Dates: Due dates for all programming assignments will be posted on Blackboard. Programming assignments are posted in advance, and are due in the manner stated in the specs (usually electronic submission through Blackboard) no later than the date specified.

Late work: No late work allowed. There is only one submission allowed.


Your course grade will be a weighted average of the following items:

Class participation may include in-class exercises, pop quizzes, and/or short programming.


CS 222 will be using the Blackboard system for most class communications. You are responsible for any notifications or information posted on Blackboard either by your instructor, your GTA or the class UTA(s), and you will need to check Blackboard regularly for such notices. Some information may be disseminated through Blackboard rather than in class. Individual communications with the professor/GTA/UTA may be done by email using your GMU email account. When you email, please be sure to include your name, the class number and the topic in the subject header. (E.g.: Subject: Jim Jones / CS 222 / Project 2)


(1) No sharing or discussion of code. Unless specifically stated otherwise, all assignments are individual projects, not group projects. Students are expected to do their own work, not to share programs with each other, nor copy programs from anyone else. This means you may not discuss program design or strategize solutions with anyone except your instructor or a course UTA or GTA. However, you may offer more limited assistance to your fellow students regarding specific questions on their programming assignments by responding to queries on Blackboard. Any sharing of code or discussion of programming projects, except within the parameters of Blackboard, constitutes an honor code violation. Suspected honor code violations are taken very seriously, and will be reported to the Honor Committee. (See CS Department Integrity Statement and Honor Code)

(2) No incorporation of code from any source external to the course. You may not incorporate code written by others, such as can be found on the Internet or any of the numerous CS books available. You may freely use any code provided as part of the project specifications, without any need for crediting the source. However, if you use code provided by your instructor (other than that given as part of the project specifications) or from the course textbook, you must document what portion came from those sources.

(3) Blackboard. We encourage the use of Blackboard to discuss assignments and assist one another with programming questions. You may ask questions or respond to queries on Blackboard regarding projects or other assignments, so long as you do not provide specific solutions to the overall problem or algorithm design (even in English). Often, students believe that "simple" code is acceptable to place on Blackboard. However, because there is a wide variation in what different students and instructors regard as "simple," we must be very strict about the ban against Blackboard code. Only an instructor, GTA or UTA is permitted to place code on blackboard unless it is code that has already been provided to all students (either as part of the assignment specification itself or within the class textbook).

(4) Discussing Blackboard postings outside of Blackboard. Please note that Blackboard assistance must remain on Blackboard. "Summarizing" Blackboard statements or responses to another student verbally regarding an assignment is *not* acceptable, and is subject to the above ban on discussing assignment solutions. While it may seem harmless, Blackboard was set up so that all assistance could be overseen by instructors/TAs/UTAs, and it is nearly impossible to truly duplicate Blackboard discussion outside of Blackboard, thus creating the potential for either (unknown) mistaken advice, or for unfair advantage by certain students. If you truly wish to assist a fellow student, encourage him or her to log onto Blackboard, and direct him/her to specific postings you find helpful.

(5) Keep an untouched copy of your final code submission. It is important that you not touch your programs once you have made your final submission. If there are any submission problems, consideration for credit will only be given if it can be verified that the programs were not changed after being submitted.

(6) Code must run on Mason gcc. Students may develop programs using any computer system they have available. Please note, however, that submitted projects must run under a C compiler available either on Mason.

REQUIRED TEXTBOOK: Hanly and Koffman, "Problem Solving and Program Design in C," latest edition.

Graduate Teaching Assistant: TBD
Undergraduate Teaching Assistant: TBD


The following represents the basic schedule of topics that will be covered during the lectures in the weeks indicated below. Reading assignments from the text or from slides/handouts and homework/programming assignments will be provided in class or on Blackboard.

Week	Topic                                                        Reading Assignment

1 Introduction / Syllabus / Simple Unix Ch. 0-1
Overview of Computing / C language elements / Unix/System Help Guides

2 Structure of a C program, operators, basic i/o Ch. 2-3

3 Top-down design with functions, selection structures Ch. 3-4

4 Repetition and Loops, modular programming Ch. 5-6

5 Simple data types, arrays, structs, arrays of struct Ch. 7-8

6 strings, string functions Ch. 9
7 Review and Midterm Exam (March 21 after Spring Break)
8 Recursion, Binary Trees Ch. 10 9 Structure and Union Types Ch. 11 10 Text and Binary File Processing Ch. 12 11 Programming in the Large Ch. 13 12 Dynamic Data Structures Ch. 14 13 Multiporcessing Using Processes and Threads Ch. 15 14 Review Ch. 16


General Course Policies

University Requirements

GMU is an Honor Code university; please see the University Catalog for a full description of the code and the honor committee process. The principle of academic integrity is taken very seriously and violations are treated gravely. What does academic integrity mean in this course? Essentially this: when you are responsible for a task, you will perform that task. When you rely on someone else’s work in an aspect of the performance of that task, you will give full credit in the proper, accepted form. Another aspect of academic integrity is the free play of ideas. Vigorous discussion and debate are encouraged in this course, with the firm expectation that all aspects of the class will be conducted with civility and respect for differing ideas, perspectives, and traditions. When in doubt (of any kind) please ask for guidance and clarification.

Students must activate their GMU email accounts to receive important University information, including messages related to this class. You should understand that your emailbox may be full, so check your email and make sure you have enough space daily.

If you are a student with a disability and you need academic accommodations, please see me and contact the Office of Disability Services (ODS) at 993-2474. All academic accommodations must be arranged through the ODS. http://ods.gmu.edu

WRITING CENTER: A114 Robinson Hall; (703) 993-1200; http://writingcenter.gmu.edu


The University Catalog, http://catalog.gmu.edu, is the central resource for university policies affecting student, faculty, and staff conduct in university affairs.

resource for university policies affecting student, faculty, and staff conduct in university affairs.