The purpose of the CS160 course is to introduce students to
fundamental concepts in computer science. Concepts from mathematics
(the "theory" component), programming and architecture will be
interleaved to show how software and hardware complement each other.
Theory will provide the basis for understanding the software and
hardware design. The course will adopt a problem solving focus with
an integrated view of the computer. For programming, the course
covers the basic Java syntax and language features, compilation,
interpretation, execution, primitive data types, class and object
usage, parameter passing, flow of control constructs and arrays. For
theory, the course will cover sets, functions, logic, simple proof and
invariants. Architecture concepts will include simple computer
models, data representations and memory models.
Instructor: Gareth Halladay
Lecture: 1:00-2:15pm, MTWR, CSB130
Office Location: COMSC 415
Office Hours: See Help Desk Hours
- Addy "Affable" Moran
- Justin Daniels
MATH 118 (College Algebra in Context II) with a C or better
Java Programming (Required):
Java: An Introduction to Problem Solving and Programming
Savitch (7th edition)
Discrete Math (Required):
Mathematics and Its Applications (7th Edition)
Rosen text will be used in CS161 and CS200 as well.
You are required to purchase an iClicker remote for in-class
participation. iClicker is a response system that allows you to
respond to questions we pose during class, and you will be graded
on that feedback and participation. In order to receive this
credit, you will need to register your iClicker remote on Canvas
by noon, Jun. 15, 2016. See the instructions for registering your
iClicker on the resources tab.
This term we will be using Piazza for class discussion. The
system is highly catered to getting you help fast and efficiently
from classmates, the teaching staff (TAs and instructors). Rather
than emailing questions to the teaching staff, we encourage you to
post your questions on Piazza. If you have any problems or
feedback for the developers, email firstname.lastname@example.org. Piazza will
be accessed via the Module tab on Canvas.
Piazza does not cost anything to students or the department. It
allows students to post questions and get answers about the
We expect to post clarifications about assignments as well as
answering questions relating to assignments. Also, please use the
existing topics we have created, do not create new ones. There
are a number of things that we prohibit on Piazza, as follows:
- Java Programming
- Linux Operating System
- Eclipse Development Tools
- Programming Assignments
- Please do not post any of your assignment code on Piazza.
- No profanity, sexism, racism, or anything in bad taste, of course!
- Please no grade inquiries, use the help desk or cs160 email alias instead.
Lectures and Labs
| Lecture || MTWR || 1:00pm - 2:15pm || Gareth Halladay || || CSB130 |
| Lab (L01) || TR || 10:30am - 12:10pm || Addy Moran || Justin Daniels || COMSC 215 |
| Lab (L02) || TR || 8:30am - 10:10am || Addy Moran || Justin Daniels || COMSC 215 |
The help desk is held in the COMSC 120 lab. This is where students
can go to get help with assignments and resolve grading
| Mon. || 9:00am-1:00pm || Addy Moran || COMSC 120 |
| Mon. || 2:30pm-4:30pm || Gareth Halladay || COMSC 120 |
| Tue. || 9:00am-11:00am || Cole Frederick || COMSC 120 |
| Wed. || 9:30am-1:00pm || Addy Moran || COMSC 120 |
| Thur. || 9:00am-11:00am || Cole Frederick || COMSC 120 |
| Fri. || 9:00am-11:00am || Cole Frederick and Gareth Halladay || COMSC 120 |
The course requires you to demonstrate a grasp of the concepts on
a number of evaluation components. Here is the grading scheme:
| Assignments || 35% || Java Assignments, Math Homeworks |
| Reading Quizzes || 5% || Canvas (Math) |
| Labs || 10% || Lab Attendance and Completion |
| Peer Instruction || 5% || In-Class iClicker |
| Programming Quizzes || 10% || In-Lab Programming |
| Midterm || 15% || First Midterm |
| Final Exam || 20% || Comprehensive Exam |
Teaching assistants, grade assignments, labs, and quizzes.
If you believe you have been graded unfairly, please send
an email to email@example.com (assignments) or your
teaching assistant (labs) first. Grade complaints will be
considered only for two weeks immediately following when the
assignment grade appears on Canvas!
Assignments will be done individually. As required by the
department, we will check for collaboration using a software tool,
so do your own work!
Lab participation is mandatory. A portion of
the class grade comes from successfully finishing the assigned lab
work, and our previous students have indicated that labs are the
best part of this class.
Programming Quizzes will be taken during lab hours with no
additional aids. They are used for attendance and to test your
understanding of Java topics.
Canvas has online discrete math reading quizzes. In
addition there will be two math homeworks on paper that will be
graded during your lab.
Peer Instruction sessions are held during lectures and
require you to bring an iClicker. These are usually but not
always held on Fridays, and we will announce in class and online
whenever iClickers are needed Monday or Wednesday. Scores are
weighted (approximately) as follows: 70% for participation, 30%
for correctness. There will not be any paper quizzes during
The assignment of letter grades will be made as follows:
| A || ≥90% |
| B || ≥80% |
| C || ≥70% |
| D || ≥60% |
| F || <60% |
We will not
assign lower grades than shown. However, your
average score on exams must be ≥60% to receive a passing grade in
Midterms and the final exam will be held in the same classroom as
regular lectures. The final exam is comprehensive.
|First day of classes||Mon., Jun. 13 |
|Last day of classes ||Fri., Aug. 5 |
|Deadline to add/drop without override||Wed., Jun. 15 |
|Last day to withdraw||Sun., Jun. 26 |
|Midterm Exam ||Thu., Jul. 7, during class |
|Final Exam ||Thu., Aug. 4, during class |
All students taking this course are expected to participate
actively. This includes asking and responding to questions.
Students are also expected to scan the announcements on the home
page and the progress page every day for updates. If an
assignment changes significantly, we are responsible for sending
out an email.