CSCI 1112: Algorithms and Data Structures

Course overview, policies



About
Announcements
Modules
Coursework
FAQ


Java API

  • Instructor: Prof. James Taylor

    Email: jrt@gwu.edu

  • Time/place:
    • Class Section 10 - Tuesday and Thursday 2:20p - 3:35p; Phillips Hall B152; Instructor: James Taylor
    • Lab Section 30 - Monday 9:00a - 10:50a; Tompkins Hall 405; Instructor Jie Hou
    • Lab Section 31 - Wednesday 11:10a - 1:00p; Tompkins Hall 405; Instructor: Kevin Robbins

  • Office Hours: TBD, Science and Engineering Hall (SEH) 4665

  • Prerequisites: CSCI 1111 with a minimum grade of C, and MATH 1220 or MATH 1231 .

  • Official course description: Object-oriented software. Inheritance, exceptions, development of classes, event-driven programming. Data structures such as trees, lists, stacks, queues, and strings. Sorting and searching. Introduction to algorithm performance prediction.

  • My description: This is your second course in programming (in Java). You will learn fundamental data structures such as linked lists, stacks and queues, and a little about trees (more of which will be covered in CSCI 3212). We will also spend some time with arrays, even though you might have covered some in CSCI 1111. You will learn about problem-solving, especially recursion. You will get better and more confident in Java while learning a little about objects, software development and debugging.

  • Textbook: It's fair to say that you can do without a textbook since all the lecture material will be available to you on this site. However, some students like books, so I decided to go with the best match I could find:
    Data Structures and Other Objects Using Java. M.Main (Addison-Wesley).

  • Supplemental material: Each module is accompanied by supplemental material. Most of this additional material is meant for reading. You will see variations of examples presented in class, along with a few small exercises. By reading the variations you will both developing your code-reading skills and will learn alternative ways of accomplishing the same tasks.

  • Programming load: The course will be fairly programming-intensive, perhaps a little more than CSCI 1111. But then, you know more about programming now, so it should balance out.

  • Email policy: You can send email to my GW email address. I will answer most class email during specific times set aside during the week for this purpose - so do not expect an instantaneous response. You may not perform "debugging by email". That is, do not send me code snippets and ask me to identify the problem. If you want me to look at your code, you have to stop by in person during office hours and bring along hardcopy. Email is typically used for clarification regarding coursework. If there is a TA assigned to the course, you ought to try to email the TA assignment-related questions before emailing me.

  • Academic Integrity policy:
    • In this course, you will be expected to work on all assigned coursework by yourself, unless otherwise specified by instructions on this page. If you have any questions whatsoever regarding these policies, see me during office hours.
    • You may not, without permission from the instructor, exchange course-related code with anyone (including anyone not registered in the course), or download code for use in your coursework, or use material from books other than the textbook. Likewise, you may not look at anyone else's code or show your code to anyone else. Protect your work: for example, be careful not to leave your printouts around.
    • If using a tutor, you may not show your CS151-related code to your tutor nor use code shown or written by your tutor. All tutors for this class need to first register with me, by meeting me during office hours.
    • If you use material in your assignments that are from outside the course material, then you should be prepared to explain that material. The instructor and TA's reserve the right to question you on your use of extraneous material. Failure to answer such questions might be viewed as grounds for an integrity violation.
    • The Academic Integrity Code or Student Conduct Code will apply to this course. Please read through the code carefully.
    • Penalties for violating the code or the policies described here include failing this course, and are elaborated in the Academic Integrity Code.

  • If you have a disability that may effect your participation in this course and wish to discuss academic acommodations, please contact me as soon as possible.

  • Coding standards:
    • We will be a little fastidious about proper indentation in this course. Points may be taken off if you don't stick to a consistent and standardized indentation style.
    • You will need to document/comment all your code. Again, we might take off points if your comments are too sparse.
    • We would like you to test your code. Generally, you should address the question "What did you do to ensure that your code works?"