Course Syllabus

CS-211: Programming for Engineers I

Fall 2015

Credits /Contact Hours 4 credits, Three 60 minute lectures and one 85 minute lab per week

Lecture: 8:30am – 9:30am (MWF) at Engineering Building (EB) 110; Labs: T/W/Th at LNG 103


Teaching Staff


Tom Bartenstein


Steven Popovich


Yuriy Boot






Office Hours

10:00am – 12:00pm, MWF

Tue 1:30pm-2:30pm

Thu 1:30pm-2:30pm


EB P-14

By e-mail

By e-mail

Lab Sections

Tue 7:40pm-9:00pm

Wed 6:10pm-7:30pm

Wed 7:40pm-9:05pm

Wed 4:40pm–6:00pm

Thu 7:40pm-9:00pm


Programming in C, Fourth Edition, Stephen G. Kochan, Addison Wesley. (There will be no specific reading assignments, but each lecture will identify the associated sections of the text which are relevant to that lecture. Read these sections before the lecture to prepare for the lecture, and/or after the lecture to get a different perspective on the material.)

Course Description

Introduction to computer programming with engineering applications. Programming in the procedural language C, control structures, functions, arrays and pointers. Introduction to abstract data types and object-oriented programming using C++.

Prerequisites: No prerequisites

Course Objectives

Upon completion of this course students will understand:

       how to write application software.

       how to develop software using C.

Main Topics

       UNIX / C Development Environment

       C syntax, declarations, functions, types, variables

       Assignment statements and operators

       Control statements, loops, and conditions

       Debugging C Programs

       Arrays, Pointers, and Strings

       Structures, Unions, and Typedefs

       More advanced C, bit twiddling, casting, etc.

       Dynamic Memory

       Abstract Data Types

       Object Oriented Programming in C++

Lecture Notes

Lecture Notes for each lecture will be posted on the class web-site in PDF format before lectures. Lecture notes do not substitute for class attendance, since (i) they will not be complete and (ii) significant parts of lectures, including discussions and in-class exercises, may not come from the class notes.


Your grade will be based on

Pop Quizzes, Attendance, Class Participation






Tests (2 tests 10% each)


Final Exam



Tests Tests will be in class, closed notes, and closed book, unless otherwise specified (unlikely). The first test will take place near the beginning of October, the second, near the beginning of November. You must complete the test in the time given. Unexcused absence from the test will result in a zero grade for that test. Test grades will be posted on Blackboard as soon as they are available.

Attendance Formal attendance will not be taken for each lecture or lab, but attendance is expected. There will be several un-announced quizzes administered throughout the semester during lecture or lab periods. Unexcused absence from a quiz will result in a zero grade for that quiz. Quiz grades will be posted on Blackboard as soon as they are available. If you cannot attend a lecture or lab, e-mail the professor before the lab or lecture, and make sure you consult with the professor or CA during office hours afterwards to ensure you know what you missed.

Homework Short homework assignments will be posted on the class web page approximately a week before homework is due. The assignments should not take a long time (usually less than an hour), but are typical test questions, and will serve as good practice for the tests and exam. Homework will not be turned in or graded for this class unless informed otherwise (i.e. nobody does the homework and all the test grades are bad.). On the due date, the answers will be reviewed in class and posted on the web. Working on the homework problems before the answers are presented in class will appreciably increase the amount you learn from this class, and as a result, will significantly improve your grade!

Labs Lab instructions will be posted on the class web page prior to the start of the first lab section. Either the CA or the Professor will be available to answer questions during the lab period. You are encouraged to work together during labs, but may work on your own. If you work as a team, make sure that every member of the team understands the lab material! Material covered in the labs will appear on quizzes, tests, and the final exam. A link to a short list of questions will appear at the end of the lab. If you have completed the lab these questions should not take more than 15 minutes to answer. Please compose answers to those questions in a text file (with a file extension of .txt) and submit those answers on Blackboard, due by 12:00 Midnight of the Friday following the lab. Lab write-ups will not be accepted after that time. Lab grades will be posted on Blackboard once they are available.

Projects There will be four long-term programming projects assigned throughout the semester. The instructions for each project will be posted on the class web page. Each project will require a significant time to complete. Please get started on these projects early – if you wait until a week before these projects are due, you will not get good grades! Project assignments are expected to run on the POD UNIX accounts, so please test them there. Project solutions will be submitted on Blackboard. More specific submission and grading instructions will be included in the project instructions. Late projects will result in a 10% deduction for every day the submission is late. The lowest project grade will be dropped, and the remaining three will be averaged.

Getting Help Please utilize the instructors and CA’s office hours for questions and discussion of course related material. Our job is to make you successful, and office hours are a great way to get help. E-mail the instructor or CA’s if you need an appointment outside of office hours, or e-mail questions or discussions to the professor directly.

Partial Credit In this course, we commonly give partial credit to partially correct answers. For that reason, it is always recommended to show your work in developing a solution for homework, test questions, lab questions, and projects.

Academic Honesty Expectations

Please review the academic honesty document and make sure that you understand it! The link is at: Cheating and copying will NOT be tolerated.


Students are encouraged to help one another and to form study groups. In Computer Science, you can learn more from your peers than from your instructors and teaching assistants. As long as the help is appropriate, please be generous with your time and expertise when helping fellow students. Doing so is good for you and good for them. You are free to discuss assignments in general terms with one another. However, please do not show your work directly to other students. Each student must complete your assignments individually (unless indicated otherwise by the instructor). Each of you must write your own code, and you must write up all solutions individually. Students submitting solutions (including code) that are determined to be “too similar” are likely to be punished equally and harshly. We can tell whether you have done the work on your own, so please do the work on your own.