Syllabus

It goes against the grain of modern education to teach [students] to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? – Alan J. Perlis, Epigrams on Programming

Grading

You can see your grades on Carmen.

Quiz

The quiz will consist of MCQ questions, find the output questions, find the error or fill in the blank, true/false questions. The quiz might also involve a short programming question. The syllabus for each quiz will be announced in class before the quiz date. This ensures that the student is up to date with the class and is also learning.

In case someone is missing the quiz, they can makeup for the quizzes missed by providing proper documentation and retaking the quiz either during office hours or some other arranged time.

Homeworks

Submit your homeworks using carmen. Most/All other information can be found in the webpage.

Notes about HomeWorks

This material will be challenging. Consider the class like a math or physics class. It will require a lot of thinking, staring at the problem, planning a solution with pen & paper, etc. It’s almost impossible to fake your way through it. There are always many ways to “solve” a programming problem, but there is an obvious difference between code that shows you understand your solution and code that shows you just tried every possibility. You will be graded higher if your solution is incomplete but intelligent, than if your solution is just a mess.

Additionally, code that actually works (even if it’s incomplete) is much better than code that has errors.

Most students say that programming assignments take longer than they expected. Trivial bugs in your code can cause you to waste hours attempting to fix your program. The last 10% of the work takes 90% of the time. And so on. So start early!

The HomeWorks are open-ended, the idea being for you to explore be creative. Please ask questions whenever in doubt.

Think of this class as a way to get familiar with coding and hopefully have some fun along the way! Also, the things that you learn outside of the subject this semester, are the things that are going to be most useful to you down the road.

Hofstadter’s Law “It always takes longer than you expect, even when you take into account Hofstadter’s Law.” – Gödel, Escher, Bach: An eternal golden braid

Or if you prefer,

Murphy’s law of Programming “The sooner you start coding your program, the longer it is going to take.” – The computer contradictionary

Text book

Walter Savitch, Problem Solving with C++, 8th Edition.

The book is not required, but you may find it highly useful. I generally follow the book’s organization, and most homeworks are straight from the book. Probably any edition would be fine; the latest edition is the 8th edition.

Academic misconduct policy

This course is designed for individual work.

All programming assignments are to be done by yourself. You may discuss programming assignments with other students in the class but DO NOT LOOK AT ANYONE’S CODE OTHER THAN YOUR OWN. Needless to say, you should not share or copy anyone else’s code.

Disability statement

Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately to discuss your specific needs. Please contact the Office for Disability Services at 614-292-3307 in room 150 Pomerene Hall to coordinate reasonable accommodations for students with documented disabilities.

Some inspiration

In my life as an architect, I find that the single thing which inhibits young professionals, new students most severely, is their acceptance of standards that are too low. If I ask a student whether her design is as good as Chartres, she often smiles tolerantly at me as if to say, “Of course not, that isn’t what I am trying to do… I could never do that.”

Then, I express my disagreement, and tell her: “That standard must be our standard. If you are going to be a builder, no other standard is worthwhile. That is what I expect of myself in my own buildings, and it is what I expect of my students.” Gradually, I show the students that they have a right to ask this of themselves, and must ask this of themselves. Once that level of standard is in their minds, they will be able to figure out, for themselves, how to do better, how to make something that is as profound as that.

Two things emanate from this changed standard. First, the work becomes more fun. It is deeper, it never gets tiresome or boring, because one can never really attain this standard. One’s work becomes a lifelong work, and one keeps trying and trying. So it becomes very fulfilling, to live in the light of a goal like this.

But secondly, it does change what people are trying to do. It takes away from them the everyday, lower-level aspiration that is purely technical in nature, (and which we have come to accept) and replaces it with something deep, which will make a real difference to all of us that inhabit the earth. – Christopher Alexander, from the Foreword to Patterns of Software by Richard P. Gabriel

CSE 2122 material is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Source code for this website available at GitHub.