Honors Introduction to Computer Science I
CS181A Fall 2017
Antonio R. Nicolosi
Office hours: Wednesdays & Thursdays 1:00–3:00pm, 317
Mondays, Wednesdays & Thursdays 12:00–12:50pm, Carnegie 316
- Sec. A
- Tuesdays, 11:00am–12:40pm, Babbio 319
- Sec. B
- Tuesdays, 3:00–4:40pm, Burchard 229
This is a fast-track introductory course in computer science using the
Java programming language. Experience with Java is assumed (though
most of the main features of the language will be reviewed in class),
as is considerable prior exposure to computer programming. In
particular, you should be familiar with the following concepts:
variables, arithmetic and Boolean operators, the assignment statement,
(nested) if–else statements, (nested) loops, basic I/O.
Topics to be covered include: basic facts about computer systems;
binary arithmetic; data representation; essential features of Java;
elements of object-oriented programming in Java (encapsulation,
polymorphism, inheritance); exceptions; GUI/event-driven programming;
queue abstract data type;
recursion; searching and sorting; binary trees.
The Java Tutorial,
S.Zakhour, S.Hommel, J.Royal, I.Rabinovitch, T.Risser, M.Hoeber
Sun Microsystems, 2000–2008
Creating a GUI
Swing Components & Writing Event Listeners
Also available in book form: ISBN 0321334205 (ISBN-13: 978-0321334206)
to Java Programming and Data Structures
Prentice Hall, 2017
Currently, the latest edition is the 11th (ISBN-13: 9780134670942).
This is not a required book, but a solid reference if you are
looking for one (either in its "brief" or
- Work load breakdown
2.5 hrs/week: Class attendance
2.0 hrs/week: Programming assignments—Lab work
2.5 hrs/week: Readings
5.0 hrs/week: Programming assignments—Homework
Intro: Computer architecture overview.
Machine programs: Instructions + Data.
Computer representation of numerical data:
Unsigned integers. Binary,
octal, and hexadecimal number systems. Binary arithmetic.
Working via the command line: A brief
tour. (Windows setup
Computer representation of numerical data: Signed integers.
Two's complement, sign-and-magnitudes, and bias/excess notations.
Signed and unsigned overflow.
boolean primitive type. Review of Boolean
operators. The bitwise operators. Operators precedence and
Computer representation of non-numerical data: Characters and strings.
Character encodings: ASCII and Unicode.
Computer representation of numerical data: real numbers.
Binary periodic fractional values.
Java and the (reduced)
IEEE 754 floating-point standard.
Command-line arguments and simple I/O via the Java API.
(Coding conventions for the
(Java source for code discussed in class/lab.)
- Programming Assignment
(due: September 18).
- Homework 1
(due: September 21).
Midterm & Final Exams
- Midterm I: TBA
- Midterm II: TBA
- Final: TBA
Misc On-line Resources
Credits: Antonio Nicolosi, Dan Duchamp, David Naumann
Permission hereby granted for anyone to copy, modify, and redistribute
any lecture note material from this class that belongs to the