 |
CS 2420-EAE: Introduction to Computer Science II
|
|
INSTRUCTOR: | Adam Bargteil
Office hours:
by appointment, WEB 2666 |
|
TEACHING ASSISTANT: | Taylor Stapleton (Email: taylorstapleton@gmail.com) Office hours: Tue/Wed/Thur 3:30-6:30, WEB L130
|
|
WEB PAGE: | http://www.eng.utah.edu/~cs2420-eae/
|
| HELP: |
teach-cs2420-eae at list dot eng dot utah dot edu
| | LECTURE: | M/W 1:25-2:45, WEB 112 |
| LAB: | F 3:05-3:55, MEB 3225
|
| UNITS: | 4 |
| Midterm Exam: | Wednesday, February 27 |
| Final Exam: | Monday, April 29, 1-3pm |
| Class Roster |
|
|
COURSE OVERVIEW:
The second course required for students intending to major in computer science and computer engineering. Introduction to the problem of engineering computational efficiency into programs. Classical algorithms (including sorting, searching, and graph traversal) and data structures (including stacks, queues, linked lists, trees, hash tables, and graphs). Analysis of program space and time requirements. Extensive programming exercises that require the application of elementary techniques from software engineering.
|
TOPICS TO BE COVERED:
- Algorithms
- Algorithm Analysis
- Data Structures
- Computer Graphics and Animation
- Programming in Java
|
|
PREREQUISITES:
CS 1410, permission of instructor
|
TEXT:
Recommended:
Data Structures & Problem Solving Using Java, 4th Edition
by Mark Allen Weiss
ISBN: 0321541405
Alternatives:
Data Abstraction & Problem Solving with Java (Walls & Mirrors)
by Janet J. Prichard and Frank M. Carrano
Data Structures: Abstraction and Design Using Java
by Koffman and WolfGang
Data Structures & Algorithms in Java
by Michael T. Goodrich and Roberto Tamassia
Java Reference:
Head First Java
by Kathy Siearra and Bert Bates
OpenGL Quick Reference Guide
|
METHOD OF EVALUATION:
| Assignments (Programming & Written) | 50% |
| Quizzes | 5% |
| Midterm Exam | 20% |
| Final Exam | 25% |
Late Policy:
Assignments will generally be due Fridays at 6am. Any written portion should be handed in during the Friday lab. Late assignments will be penalized as follows:
| Up to 24 hours late: | 10% |
| Up to 48 hours late: | 30% |
| Up to 72 hours late: | 50% |
| More than 72 hours late: | 100% |
Cheating Policy:
The penalty for cheating is an Failing Grade for the course.
What is not considered cheating
- Working with (one) partner to complete assignments
- Talking with other students about assignments
- Studying for exams with other students
- Getting help on assignments from the TA or Professor
- Reading about a topic on the internet
- Teaching a skill, i.e. sharing some feature of eclipse or how to make a nicer webpage.
What is considered cheating
- Sharing code (looking at code on someone's screen, emailing a code snippet, etc) with anyone other than your partner (both the sharer and the sharee are cheating).
- "Giving away the answer" to written homework assignments
- Downloading code from the internet and submitting it (or something close to it) as your own.
- Allowing someone else (e.g. a friend who has taken this course) to do your assignments
Please also see the School of Computing Policy Statement on Academic Misconduct.
|
CLASS SCHEDULE (subject to change)
|
Week #1: January 7 - January 11
| |
|
Week #2: January 14 - January 18
|
| Reading: | Chapeter 5, 6.2, 7 |
| Monday lecture: |
Iterators, Big-O
|
| Wednesday lecture: |
Recursion
| | Friday lab: |
Working with images (ImageManipulation.java)
|
|
|
Week #3: January 21 - January 25
|
| Reading: | Chapter 7 |
| Monday lecture: |
Martin Luther King, Jr. Day --- no class
|
| Wednesday lecture: |
Dynamic Programming
| | Friday lab: |
Dynamic Programming (DynamicProgramming.java)
|
|
|
Week #4: January 28 - February 1
|
| Reading: | Chapter 7, 8 |
| Monday lecture: |
Backtracking
|
| Wednesday lecture: |
Sorting
| | Friday lab: |
Tic-tac-toe (TicTacToe.java)
|
|
|
Week #5: February 4 - February 8
|
| Reading: | Chapter 8, 16 |
| Monday lecture: |
Sorting
|
| Wednesday lecture: |
Sorting
| | Friday lab: |
Timing Code (Timer.java)
|
|
|
Week #6: February 11 - February 15
|
| Reading: | Chapter 18 |
| Monday lecture: |
Sorting, Stacks and Queues
|
| Wednesday lecture: |
Trees
| | Friday lab: |
Trees (BinaryTree.java)
|
|
|
Week #7: February 18 - February 22
|
| Reading: | Chapter 19, see also Binary Search Trees |
| Monday lecture: |
President's Day -- no class
|
| Wednesday lecture: |
Binary Search Trees
| | Friday lab: |
Practice Exam Solutions
|
|
|
Week #8: February 25 - March 1
| |
|
Week #9: March 4 - March 8
|
| Reading: | Chapter 19, see also Binary Search Trees |
| Monday lecture: |
Exam Answers, AVL Trees
|
| Wednesday lecture: |
Red Black Trees
| | Friday lab: |
Cancelled
|
|
|
Spring Break: March 11 - March 15
|
|
Week #10: March 18 - March 22
| |
|