(20-ECES-121) CS121: Computer Science I --- Syllabus


Instructor: Fred Annexstein
Office: 889 Rhodes (Office Hours: Tuesday and Thursday 2:00-3:15)
Phone: 556-1807
Email: fred.annexstein@uc.edu
Web: http://www.ececs.uc.edu/~annexste

Course Schedule Information

Lecture Schedule

  • Sections 003 and 004 - Meet: M-W-F 1:00-1:50 Swift 500
  • Section 007 and 008 - Meet: Tu-Thurs 3:30-4:45 Swift 502
    Laboratory Schedule
  • Section 003 Lab Meets: Wednesday 2:00-6:00 in Rhodes 584
  • Section 004 Lab Meets: Tuesday 4:00-8:00 in ERC 405
  • Section 007 Lab Meets: Monday 2:00-6:00 in ERC 405 (moved from Rhodes 502)
  • Section 008 Lab Meets: Friday 2:00-6:00 in Rhodes 502

    Description: CS1 and CS2 is an introductory sequence intended for CS and CE majors. Major concerns include: 1. Modern programming methodology, and learning to design and code clear, concise programs for relatively complicated problems; 2. Basic abstractions and concepts of computer science and; 3. The C++ language.

    Computer Accounts: If you are registered for this course you should automatically receive an computer account through OCC which will allow you to use almost all of the computing facilities and labs in the College of Engineering. If for some reason your account has not been set up or you are having trouble with your account go to OCC in Room 636 ERC. You should attempt to login and check that your username and password are valid before coming to the first lab. If you are logging in for the first time, your initial password will be your student ID with hyphens included.

    Office Hours: Tu-Thurs 2:00-3:25 in Rhodes 889
    See me during office hours for all questions related to course, except debugging your programs. Help in debugging your programs will be given during the lab sessions. If you're still having trouble see one of the TA's during their office hours.

    Web and Email: Information on this course will be posted on the course webpage and will be constantly updated. You should frequently look at this homepage for announcements, updated syllabus, homework assignments, etc. My homepage address is: http://www.ececs.uc.edu/~annexste You will need e-mail to submit your programming assignments, and so each student is expected to obtain a BOL (Bearcat Online) account.

    Labs: During a typical lab session the TA will review the C++ programming issues and syntax discussed in the main lecture and design sample programs illustrating them. During the second half of the lab session, students will be expected to complete a lab assignment. These assignments must be completed and submitted by the end of the lab session. The TAs will be available for questions and individual help during that time.

    Grading (approximate): Laboratory Assignments 30%, Homework Projects 30% and Tests (Midterm & Final) 40%.
    In addition, you must have a passing exams grade to pass the course.

    Homework Policy: Several homework projects will be given this quarter in addition to the Lab assignments. Students may discuss problems together, but must submit their own work. Copying is strictly forbidden. When evaluating your programs there will be a 50% penalty if the program does not compile. All programs are to be electronically submitted to your TA (do not send programs to me). Late homework will be accepted up until the class following the due date with a 15% late penalty.

    Textbook: C++ How to Program by Deitel and Deitel, Prentice Hall, 3rd Ed.

    Notes: I will include supplemental material for each lecture on my web homepage.

    Software: The chosen platform for the course is Microsoft Visual C++. Microsoft software, including Visual C++, will be made available to students both in the Labs and for their home computers. Details about obtaining software for home PCs will be discussed in class.

    Supplies: You will need at least one 3.5 2HD IBM Format floppy disk.

    Schedule (approximate):

    WeekClass MaterialReading
    1Intro to Computers and ProgrammingChapter 1
    2Simple C++ programs, standard data types and their representationChapter 1
    3Selection Control Structures: if, if/else, switch, nesting Chapter 2
    4 Repetition Control Structures: while, do/whileChapter 2
    5 Menu-driven programs, for statementChapter 2
    6Review, MIDTERM, FunctionsChapter 3
    7Modular Programming & Functions cont'd Chapter 3
    8Recursion, ArraysChapters 3,4
    9Arrays and SortingChapter 4
    10Pointers, Strings, and Classes Chapters 5,6