CS125 Computer Science I
Instructor: Dr. M.S. Jaffe
Description: An introduction to the C programming language. The course requires concurrent enrollment in the 3 hours per week of lab as well; there will be no exceptions. (The way the catalog describes it, the 3 hour per week CS125 lecture section is 4 credits and the mandatory 3 hour/week CS125L lab is 0 credits. Exactly why it does does that, rather than the more sensible 3+1, is beyond my meager — non-existent, if truth be told — ability to justify academic administration to tender young minds; just make sure you enroll in the lab section anyway, please)
Prerequisites: Despite what the catalog seems to say (or at least imply) by not listing any prerequisites for CS125, this course is not intended to be an ab initio introduction to computer programming — to the language C in all its idiosyncratic (and occasionally dangerous) glory, yes; to programming, no. It's intended to be a follow on to our EGR115 course here. If you've done any sort of other programming (Basic or Java, for example) you don't need EGR115, but if you've never written any code at all, don't know what a loop or a function or an 'if' statement is for, you should really take EGR115 first. Since the catalog is all screwed up, I can't prevent you from jumping in here where angels fear to tread, but I can strongly discourage it and I do. If you haven't taken EGR115, see me and together we'll figure out what's best for you. I apologize for the disconnect with the catalog but it's beyond my control.
Lecture Location and Time: DLC 105, MWF 10:20 - 11:20 Lab Location and Time: KEC 128, 2:50 - 4:05 Textbook: Applications Programming in ANSI C, Johnsonbaugh and Kalin Final Exam:
- Introduction to some of the basic tools of the Unix programming environment
- Initial proficiency with the basic constructs of the C programming language
- Exposure to, but warning away from, some of the odd, even interesting, but dangerous constructs that C allows
- Introduction to some key professional coding practices
- A (minimal) introduction to those aspects of computer hardware necessary to understand the motivation and mechanics behind some of C's "close to the hardware" features
Topics to be Covered:
- The programming environment here (ERAU Prescott):
- Simple types, variables, and expressions
- Basic control flow and statement types
- Simple I/O — and the not so simple complications C seems to involve, and then, eventually, an explanation of the source of the complexities (that other languages gloss over) and the reason why C is right to do it the way it does but other languages (designed for other purposes) are right to do it their way as well
- Arrays and records
- Functions, parameters, and arguments
- Simple pointers
- Binary and hexadecimal numbering systems and bitwise operations
- Some principles of software engineering "in the small":
- Stepwise refinement
- Build-a-little, test-a-little
- Abstraction and modularization
- Unit testing and debugging
Grading:Some Supplementary Material (totally optional, for your benefit only): http://ultra.pr.erau.edu/~jaffem/classes/cs125/Blackboard%20Pages/References.htm
Area Weight Quizzes (roughly weekly) 20% Midterms (two) 30% total (15% each) Programming assignments (one or two each week) 30% Final exam 20%
I grade on a liberal curve I will always give A's, B's, and C's, the upper half of the class getting the A's and B's. If the curve is sufficiently tight, I don't feel obligated to give any D's or F's, but if the lower end of the curve is poor, I will, however; and, unfortunately, I almost always do.
Programming Instructions: I need you to turn in your programming assignments for this class electronically (only); here's a web page describing how to do it: If you haven't seen Unix before, these instructions may seem difficult to you; but don't panic: we'll be going over this procedure step-by-small-step as part of the first CS125L lab and I've prepared a bunch of web pages with screenshots to help guide you through the process. The procedures are the same regardless of whether you're working in a campus lab or from off campus (which the procedures are designed to make it easy for you to do). Please do your CS125 work only on prclab.pr.erau.edu I don't have time (nor the interest, frankly) in helping you troubleshoot problems with custom evironments, compilers, dialect differences between machines, etc. The only freedom I'll give you is in your choice of editors, but I strongly urge you to confine yourself to pico for now.
Style Guide: http://ultra.pr.erau.edu/~jaffem/classes/cs125/cs125_style_guidelines.htm
Frequently Asked Questions (about CS125, not C): http://ultra.pr.erau.edu/~jaffem/classes/cs125/CS125_FAQIntegrity Policy: Please read my notes on the standards I'll enforce for student integrity; you will be held to these standards whether you read my notes or not.
Disability Accomodation: ERAU is committed to the success of all students. It is a University policy, that I fully support, to provide reasonable accommodations to students with disabilities. If you would like information about what accomodations we can make available, please contact the Disability Support Services at the Wellness Center at 777-6653. If you wish to request some accomodation, please contact either me (your instructor) directly or ask Disability Support Services to do so. Don't be bashful; if you need some help, ask for it. You're here to learn; I'm here to help you do so. All discussions are confidential.
This page last changed on 3 May 2013 by Dr. M.S. Jaffe