Course Syllabus

Independent Study in Idaho

ISI Website indepst@uidaho.edu | 208-885-6641

CS 1120 Computer Science I

Sponsoring Institution: University of Idaho

4 Credits

Instructor Information

Course Instructor: Terence Soule

  • Email: tsoule@uidaho.edu
  • Phone: (208) 885 7789
  • Office Hours: Wednesday 8:30 – 10:30; Friday 8:30 – 9:30
  • Copy the ISI office at indepst@uidaho.edu on all communications.

Dr. Terence Soule is a Professor in the Computer Science Department at the University of Idaho. He has been teaching computer science courses for over 15 years, ranging from introductory programming courses to graduate level courses in machine learning and artificial intelligence. His own passion for programming started in high school, and he works on a range of programming projects including artificial life simulations and evolutionary computation based learning algorithms.

Course Description

Fundamental programming constructs, algorithms and problem-solving, fundamental data structures, overview of programming languages, virtual machines, introduction to language translation, declarations and types, abstraction mechanisms, object-oriented programming.

This course is an introduction to programming using the C++ programming language. It is suitable for students with little or no programming experience. The course focuses on hands-on activities that involve reading, analyzing, modifying, and writing code. Because programming is a skill requiring practice, the course does require fairly extensive time programming at a computer.

Prereq: Math 143 with a grade of ‘C’ or higher or CS 112 with a grade of ‘C’ or higher; or sufficiently high ACT, SAT, or Math Placement Test score to qualify for Math 170

Course Learning Outcomes

The objective of this course is to give the student a foundation in programming and programming concepts and a working knowledge of the C and C++ programming languages. At the end of the course, students should be able to write fairly sophisticated programs, including defining and using classes and objects, using arrays, and using pointers.

The major topics covered in this course are:

  • Intro to computers and programming
  • Basic program structure, variables, I/O
  • Types: internal representation, base conversion
  • Arithmetic expressions, operators, computer arithmetic
  • Relational operators, conditional statements (if, if-else, switch)
  • Iteration, looping, loop-techniques
  • Functions, parameter passing, return values
  • Files, file I/O
  • Arrays, 1-D, multidimensional
  • Character strings (C-style and C++ string class)
  • Classes
  • Social and Ethical Issues
  • Pointers with Arrays, dynamic memory
  • Recursion

Required Materials

  • Soule, Terence. A Project Based Introduction to C++, First Edition. KendallHunt, 2014. ISBN(s): 9781465260468
  • Supplementary Materials: Student will need access to a computer with a C++ compiler. Several free options exist.
    • They can use free software to log into the CS department’s computer and use the software available there.
    • Alternatively, Windows users can install either Cygwin or minGW. Apple computers come with a compiler pre-installed.

Course Rules and Requirements

15 graded assignments, 15 graded quizzes (auto-graded in Canvas), 3 proctored exams

The course is divided into 15 “lectures”. There are two lectures for each chapter, except the first, introductory, chapter, which only has one lecture associated with it. There is one assignment and one short quiz for each lecture. There are two midterms and one final exam. All of the exams are comprehensive, covering all of the material in the course up to the point of the exam.

Assignment and Lesson Guidelines

  • Students may submit up to 1 assignment at once. Students may submit up to 2 assignments in one week. However, assignments and exams must be submitted consecutively, in the order outlined in the course. Wait to receive a grade on the previous exam before submitting subsequent assignments.
  • Students will take quizzes and receive grades via Canvas.
  • Keep a copy of every assignment submitted. Write your name, V number, course subject and number, and assignment number on every submission.
  • An instructor may take up to three weeks to grade so plan accordingly to meet personal deadlines.
  • The final course grade is issued after all assignments and exams have been graded.
  • Acts of academic dishonesty, including cheating or plagiarism, may result in a grade of “F” for the course.

Programming Projects

Assignments typically consist of one or more programming projects. Many of the assignments require starting with sample programs from text and making multiple additions and/or changes. For these assignments, the idea is to make a better program. You should make one change at a time. It’s a good idea to save the program with a new name after completing each successful change so that if you make a mistake and “break” the program you can go back to an older version.

Some assignments will include a programming problem from a previous chapter as a review.

Project Submissions

Assignments should be submitted trough Canvas. Include the code, as one or more .cpp files, and sample output, as a text file with the .txt extension (a screenshot can be used if necessary). Please don’t hesitate to contact the course instructor with questions,

Project Expectations

There are a number of expectations that apply to any programs turned in:

  • All programs must compile and be accompanied by sample output.
  • All programs should begin with a comment containing the student’s name, section number, date and assignment number.
  • All programs should be adequately commented.
  • Variable names should be descriptive.
  • Programs should be broken into functions where appropriate.
  • Output should be clear.
  • Requests for input should be clear.
  • Programs should be adequately tested to show that they function properly under ‘reasonable’ conditions.

Exam Guidelines

  • Exams contain a mixture of question types, including: short answers, matching, multiple choice, true/false, analyzing code, and writing short pieces of code.
  • Before taking exams, students MUST wait for grades and feedback on assignments, which may take up to three weeks after date of receipt by the instructor.
  • All exams require a proctor.
  • At least two weeks before scheduling your first exam, submit the completed Proctor/Exam Request Form to the ISI office. ISI sends all exams directly to the proctor after receiving the Proctor/Exam Request Form.
  • You must schedule the examination time with your proctor before each exam.
  • For exams, students should bring their photo ID and V number.
  • The proctor administers the exam and returns it to the ISI office. Graded exams are not returned to the student.
  • Exams are cumulative.

Email Standards

  • Subject line: include your name, V number, course subject and number, and assignment number(s). Ex. Joe Vandal, V01234567, CS 1120, Assignments 1, 2
  • Email body: place questions or comments for the instructor
  • Copy the ISI office at indepst@uidaho.edu

Grade Information

ALL assignments and exams must be submitted to receive a final grade for the course. There are 15 assignments, 15 short quizzes and three exams in the course. The percentage of the overall grade assigned to each of these is:

  • Assignments: 20%
  • Quizzes: 15%
  • Exam 1: 15%
  • Exam 2: 15%
  • Final exam: 25%

Course Policies

Refer to the ISI Policies for the most current policies and procedures, including information on setting up accounts, student confidentiality, exams, transcripts, course exchanges, refunds, academic integrity, library resources, disability support and other services.