CS 222 - Computer Programming for Engineers (3 Units)
George
Mason University
DEPARTMENT OF COMPUTER SCIENCE
Course Description
Office/Hours: Check out my homepage: Prof. Jim X. Chen
TEXTBOOK: Hanly and Koffman,
"Problem Solving and Program Design in C," 7th ed., 2013 or the
latest.
DESCRIPTION: CS 222 is a second course in computer programming,
emphasizing programming concepts relevant to engineers. 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.
Course outcomes:
COURSE POLICIES
Class: Students are expected to attend all lectures and are responsible
for all material covered in the lectures. Students are expected to work
independently outside of class on homework assignments and projects.
Course-related materials are posted on Blackboard in the folder Starting
here! in weekly lessons.
Reading: Be aware that some material covered in class, which are
posted in weekly lessons, may not be found in the textbook. For
any doubts, students have opportunities to ask questions in class, on
Blackboard, or during UTA/GTA/instructor office hours.
Assignments: Homework and project assignments will be posted on
Blackboard in weekly lessons as they are assigned, and student solutions must
be submitted on Blackboard by the specified deadline. For programming
assignments, solution programs must run without obvious errors (even if not all
functionalities are present). Any solution program that is submitted but
either does not compile or has major errors when it is run will receive no more
than 50% of the total credits. Therefore, develop your program and make
sure it works at each developing stage.
Deadlines: The Blackboard system permits you, as a student in this
course, to resubmit your work until the deadline for THREE times, so you
may submit your work early and resubmit if you improve your work prior to the deadline.
If you cannot finish, you should submit your work before the deadline for
partial credits.
Late work and missing participation: No late work is accepted. For any missing work, the
missing grade will be the same as the final exam grade if you have a good
reason with proofs that meets the instructor’s approval.
GRADING POLICY
There are all together 100 points:
Your overall course score, S, will
be the sum of these points.
CLASS COMMUNICATIONS
CS 222 will be using the Blackboard
system for most class communications. You are responsible for any
notifications/assigments or
information posted on Blackboard either by your instructor or the class
GTA/UTA. Some information may be disseminated through Blackboard or email
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 the class number and the topic in the subject header. (e.g.:
Subject: CS 222 / Project 2).
PROGRAMMING POLICIES
(1) No sharing or discussion of
code for assignments. Unless specifically stated otherwise, all
assignments are individual assignments, not group assignments. Students are
expected to do their own work, not to share programs with each other, nor copy
programs from anyone else. However, you may offer limited assistance to your
fellow students regarding questions or misunderstandings on their programming
assignments by responding to queries on Blackboard. Suspected honor code
violations are taken very seriously, and will be
reported to the Honor Committee. (See CS Honor Code)
(2) No incorporation of code from
any source external to the course. You may not incorporate
code written by others. Of course, you may freely use any code provided as
part of the assignment specifications, and you need not credit the source.
Working something out together with an instructor or TA will not require
crediting the source.
(3) Back up your program regularly.
You are expected to back up your program in separate files as you get different
pieces working. Failure to do this may result in your getting a much lower
grade on a program if last minute problems occur. (Accidently deleting your
program, having problems connecting, etc., will not be accepted as
excuses.)
(4) Keep an untouched copy of
your final code submission. It is important that you do 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.
(5) Code must run on Mason gcc. Students may develop programs using any computer
system they have available. However, submitted programs must run under gcc compiler available on Mason. Your documentation should
clearly state which software was used for compilation, and once makefiles are introduced, a makefile
should be included with each assignment submission.
TENTATIVE CLASS SCHEDULE
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, simple Unix, and C language elements Ch. 0-1 & online
material for UNIX
2
Variables, statements, operators, basic i/o functions, Ch. 2-3 & online material for
"vi" editor
"vi" editor, and compilation
3
Top-down design with functions, and selection
structures Ch.
3-4
4
Repetition and loops, pointers, and modular
programming Ch. 5-6
5
Pointers and
arrays
Ch.
6-7
6
Strings
Ch. 8
7
Recursion
Ch. 9
8
Structure and union types
Ch. 10
9
Makefiles, compilation of a program with
multiple
files PPT
notes
10 Text
and binary file
processing
Ch. 11
11
Programming in the
large
Ch. 12
12
Bitwise
operators
PPT notes
13
Dynamic data
structures
Ch. 13
14 (Optional)
15
Review
FINAL EXAM (Covering ALL MATERIAL)
OTHER POLICIES
General Course Policies
University Policies, Requirements,
and Services