CS1337 Computer Science 1

CS1337.004 Computer Science I
CS1337.009 Computer Science 1
Tuesday/Thursday from 2:30 to 3:45 PM
Monday/Wednesday from 10:00 to 11:15 AM
Instructor: John Cole Section 004 Room ECSS 2.312
Section 009 Room JSOM 2.803
Grader Section 004: Praneeth Keerthipati. Office hours Tuesday/Thursday from 4:30pm to 6:30pm  in ECSS 2.103B1
Grader Section 009: Asmita Talele.  Office hours M/W from 3:00 to 4:00PM in ECSS 2.104A1
Last update: 1/30/2019
Syllabus is on Coursebook Schedule for section 004 (Subject to change)
Schedule for section 009 (Subject to change)
Textbook: Starting out With C++: From Control Structures Through Objects, 8th Edition, by Tony Gaddis
This is the introductory C/C++ programming class for Computer Science majors, which also teaches the basics of object-oriented design.

I strongly suggest that, when we cover a concept in class, such as loops or arrays, you take a little time as soon as possible after the class to write a little "play" program to make sure you understand it, since the material will be freshest in your memory.  Since the ECSS 2.312 classroom has computers, you can also follow along on one of them, but don't store anything permanent on their C: drives.  However, do not let trying things out distract you from the lecture.  You can also use the VideoNotes and the MyProgrammingLab exercises associated with the textbook.

This class will move fairly quickly through the material you should have learned in either CS1336 or in high school.  If you took Java, you will find C++ syntactically pretty similar, but there are real differences.  We'll do a lot of programming, and I'll show PowerPoint slides in class as well as write actual code.  By the end of the semester you will have a real working knowledge of C++ and some basic programming concepts.

Take a look at Notes for Students, but let me say a few things here.  I will expect that you show up for class.  I will take attendance, but it will not be figured into your grade.  I expect that when you are in class,  you will pay attention to whoever is speaking, whether it is me or another student.  Use of cell phones is not permitted and they should not be on the table.  If I see you using one under the table, or even think you are, you will be asked to put it away.  If you are looking at a computer screen it should be something relevant to the class.  Email and social media can wait.  You may be called upon to answer a question; be alert and ready.

A few students have remarked that CS1337 is a "weed-out" class.  It is not.  However, if you aren't putting the  effort, any class can do that.  If you put in great effort, your results will be great too.  If you think you can do well without reading the textbook and without coming to nearly every class, you are most likely mistaken.  I strongly recommend doing more programming than just the assignments, such as exercises in the chapters, your own little test programs, anything.  The more you do, the better you will get at it.

I will use Microsoft Visual Studio and will show my examples using it.  You do not need to use it if you are already comfortable with some other programming environment.  If you do get Visual Studio, get the 2015 version or later.  The lab computers have this loaded.  If you want a personal copy, you have two choices.  The Community Edition is a free limited product that will be fine for everything you do in this course.  Once you're at the link, on the right you'll see either "install now" or "download now."  Programs will be tested on Visual Studio, so they should run correctly in that environment.  Other C++ compilers won't flag, for example, uninitialized variables as errors, but your program will probably not work right, either.

Because you are a computer science student at UTD, you can also get the full version of all Microsoft software, including Visual Studio, from Microsoft Imagine, although this is a little more complicated.  You'll need to sign up for an account.

Exam Rules

Useful links:
C++ Tutorial: http://www.learncpp.com/
My Programming Lab


In-Class Notes.  This will be used for notes made using Notepad, for program fragments, etc.

Problem Set for Classes and Recursion
These are from the Gaddis book, eighth edition.  They should be similar in the seventh edition.

Chapter 14: More About Classes Under Short Answer: 2, 3, 4, 10, 17, 18, 21, 24.
Under Algorithm Workbench: 39, 43
Under Find the Errors: 59, 61
Programming Challenges: 1, 5, 14, 15
Chapter 15: Inheritance Short Answer: 2, 4, 6, 7, 8, 10, 17
Algorithm Workbench: 35, 36
Find the Errors: 53, 54, 55, 58
Programming Challenges: 1, 4, 6, 9, 10
Chapter 16: Exceptions Short answer: 1, 2, 3, 4, 5, 6, 7
Algorithm Workbench: 24, 25
Find the Errors: 47, 48
Programming Challenges: 1, 2
Chapter 19: Recursion Short Answer: 3, 4, 5
Algorithm Workbench: 10, 11
Predict the Output: 12, 13, 14
Programming Challenges: 2, 6, 9