CS 181 Introduction to Computer Science Honors I
Fall 2013
Instructor | Georgios Portokalidis | ||||||
Teaching assistant | Sadia Akhter | ||||||
Mailing list | cs181@lists.stevens.... | ||||||
Meetings |
|
||||||
Office hours | Mondays 1:00-2:00pm (L213) |
Instructor | Georgios Portokalidis | ||||||
Teaching assistant | Sadia Akhter | ||||||
Mailing list | cs181@lists.stevens.... | ||||||
Meetings |
|
||||||
Office hours | Mondays 1:00-2:00pm (L213) |
This is a fast-track introductory course in computer science using the Java programming language. Experience with Java is not required, as all topics will be developed from scratch, but you are expected to have had considerable high-school exposure to computer programming. 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.
Your final grade will be determined by your performance in the following:
1st Midterm Exam | 15% | |
2nd Midterm Exam | 15% | |
Final Exam | 30% | |
Assignments | 40% |
Assignments should be done individually. You can discuss the problems with your classmates, but you must not share details of the solutions.
Stevens honor system:
"The Honor System at Stevens [..] insures that work submitted
by students can be trusted as their own and was performed in an
atmosphere of honesty and fair play."
Subjects covered in lectures are tentative and will change (last update 8/20/13).
Week | Subjects | Readings | Assignments |
---|---|---|---|
1. 8/26/13 |
Course logistics. Introduction to Computer architecture. Representation of numerical data, arithmetic and bitwise operations. A sip of Java: setup your environment and run your first programs. |
Chapter 1 |
Assignment 1 |
2. 9/2/13 No class on Monday. |
Programming basics: object-oriented programming, writing algorithms, testing and debugging. Java fundamentals: Variable declaration and initialization; data types; expressions: operators precedence and associativity; assignments. Simple I/O, formatted output, input delimiters. |
Chapters 1 and 2 |
|
3. 9/9/13 |
The Java String class. Documentation and coding style. Control flow: branching. The boolean type. |
Slides: Comments and coding style Slides: Control flow: branches Chapters 2 and 3 |
Assignment 2 |
4. 9/16/13 |
Control flow: loops. while, do..while, for, and foreach loops. |
Chapter 4 |
|
5. 9/23/13 |
Defining classes and methods. OOP concepts: Information hiding and encapsulation. Class types, objects and references. |
Slides: defining classes and methods Slides: class types and object references Chapter 5 |
|
6. 9/30/13 |
Class constructors. Method overloading. Static variables and methods. Java packages. |
Slides: more about objects and methods Chapters 6, 7.1, 7.2, 7.3, and 7.5 |
Assignment 3 |
7. 10/7/13 |
Select sort. Inheritance, polymorphishm, and interfaces. |
Slides: Inheritance and Polymorphism Slides: Interfaces and abstract classes Chapter 7.4 and 8 |
|
8. 10/14/13 Fall recess on Monday Monday class schedule on Tuesday |
1st Midterm Exam |
||
9. 10/21/13 |
Java exceptions, exception handling, and defining your own exceptions. Java stream I/O. Text and binary file I/O. |
Chapters 9 and 10 |
Assignment 4 |
10. 10/28/2013 |
Recursion. Solving problems with recursion. Merge Sort. |
Chapter 11 |
|
11. 11/4/13 |
2nd Midterm Exam |
||
12. 11/11/13 |
Dynamic data structures Recursive data structures: Linked lists Generic types and classes Array-based data structures Using the Java collections framework |
Slides: Recursive data structures Chapter 12 |
|
13. 11/18/13 |
Tree data structures. Tree traversal algorithms: Pre-order, in-order, post-order traversals. Binary trees and binary search trees. Differences of Java from other OOP languages. |
Lecture slides Appendix 6 |
|
14 and 15. 11/25/13 - 12/6/13 Thanksgiving recess from Wednesday 11/27/13 to Sunday 12/1/13 |
Building GUIs. Introduction to event driven programming. |
Lecture slides Chapters 1-12 |