CS 2213.001 - Advanced Programming

Spring 2013

http://www.cs.utsa.edu/~korkmaz/teaching/cs2213

Course Description

2213 Advanced Programming
(3-0) 3 hours credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 2211 is required.
An implementation level view of data structures in a specific language with an emphasis on pointers and memory management. Dynamic data structures such as dynamic lists, heaps, 23-trees, graphs, etc. are considered.

2211 Advanced Programming Recitation
(1-0) 1 hour credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 2213 is required.
Recitation to accompany CS 2213.

Objectives

An implementation level view of data structures in a specific language with an emphasis on pointers and memory management. Dynamic data structures such as dynamic lists, heaps, balanced trees, graphs, etc. are considered.

Time and Location

TR 11:00 am-12:15 pm --- Jan 14, 2013 - May 11, 2013
MH 2.02.16
[McKinney Humanities (f. HSS)]

Recitation/Lab Time and Location

CS 2211-001 Adv Prog Recitation/Lab: T 12:30 pm-1:20 pm, SB 3.02.10A
CS 2211-002 Adv Prog Recitation/Lab: R 12:30 pm-1:20 pm, SB 3.02.10A

Instructor

Dr. Turgay Korkmaz
Office: SB 4.01.13
Email: korkmaz at cs.utsa.edu
Phone: (210) 458-7346 Fax: (210) 458-4437

Office Hours

TR 1:00pm-3:00pm (or by appointment)

TA

Mark Corsi e-mail: mark@corsi.us
Office Hours: TR 1:20pm-3:00pm (after recitations) (or by appointment)
Office: PhD offices (SB third floor, next to the elevators)

Elvira Teran e-mail: xca367@my.utsa.edu
Office Hours: TR 2:00pm-4:00pm   (or by appointment)
Office: SB 3.01.06

Tutoring

You can also get help from CS tutors: CS Tutoring Schedule

Prerequisite

CS 2123/2121 and concurrent enrollment in CS 2211.

Required Textbook

Programming Abstractions in C: A second Course in Computer Science by Eric S. Roberts, Addison-Wesley, 1998

Optional reference books

  1. The C Programming Language by Kernighan and Ritchie (highly recommended)
  2. A Book on C by All Kelley and Ira Pohl, 4th edition, Addison-Wesley, 1998
  3. The Algorithm Design Manual by Steven S. Skiena
  4. Data Structures and Algorithm Analysis in C 2/e by Weiss
  5. A Practical Guide to Linux by Sobell

Grading

  • 10% Attendance, class participation and quizzes
  • 30% Two midterm exams: (first one is 10% + second one is 20%)
    • First Midterm  TBD
    • Second Midterm TBD
  • 30% Assignments (class + recitation, 3:1 ratio):  ! NO LATE SUMBISSION !
  • 30% Final Exam: Tuesday 7-May 10:30 AM - 1:00 PM

Assignments

We will have at most 9 regular programming assignments and 9 relatively simple recitation exercises/assignments.

The lowest one of both regular assignments and recitations will be dropped; so we will consider the best eight in a 3:1 ratio to determine your 30% assignment score.

Officially they will be posted and submitted on the UTSA Learn (f. Blackboard)

!!!! NO LATE HOMEWORK WILL BE ACCEPTED !!!

Course Topics 

  • C Programming Language
    • C Program Structure
    • Variables and Arithmetic Expressions
    • Control Flow
    • Functions
    • Arrays
    • Pointers
    • Structures
    • Dynamic Allocations
    • I/O Libraries
    • Recursion
  • Data Structures
    • Stack, Queue, Linked Lists
    • Dynamic Lists
    • Trees, Binary, AVL, 2-3 Trees
    • Heaps and Priority Queues
    • Graphs
  • Linux/Unix and Our Systems (Mostly covered during recitations)
    • Program Compilation and Execution in Unix/Linux
    • Debuggers and other tools (make, gdb, ddd, valgrind, etc.)

Online materials and Class Notes

Accessible from utsa.edu computers
or you need to know the user name and password given in class

Some external links

Software

C/C++ compiler

We will use linux and gcc. See Quick Intro to Linux and gcc

We will also use the C libraries provided by the textbook and gccx.

As an editor you can use vi, pico, gedit, xemacs, etc.

  • To learn vi/vim, run vimtutor on linux. Here are some vi cheat sheets obtained from web: s1, s2, s3

Computer Accounts

You will have an account on the CS network as long as you are enrolled in a CS course at UTSA. This account gives you access to Windows and Linux in various CS laboratories. You may also access your account from off-campus via the Internet using secure shell. A free version of secure shell is available at http://www.cs.utsa.edu/~javalab/lab/SSHSecureShellClient-3.2.0.exe, if you wish to install it on your home machine.

After installing and running SSH: Click Quick Connect, enter elk03.cs.utsa.edu as the hostname, enter your cs account id (first initial followed by up to 7 letters of your last name) as username, then click connect. First time it may ask if you want to save keys etc., say yes then enter your password...

Your CS account name will usually be your first initial followed by up to 7 letters of your last name. However, account names sometimes vary because of name conflicts. New account names are posted in the lab. Your initial password is your 8-digit student ID without the leading @ sign.

Course expectations for professional conduct

Students will treat their classroom obligations as they would any serious professional engagement. These obligations include:
  • Preparing thoroughly for each session in accordance with the course calendar and instructor's request.
  • Notifying the instructor in advance if missing a class.
  • Being set up to begin work (logged in and set-up) for each class period at the time the class starts.
  • Staying on task during work sessions.
  • Participating fully and constructively in all course activities and discussions.
  • Adhering to deadlines and timetables established by the instructor.
  • Displaying appropriate courtesy to all involved in the class sessions.
  • Providing constructive feedback to the instructor regarding the class.

Note: Turn off and put away all cell phones, iPods, and other electronic devices. You should only have class materials on your desk. You should only have the course web pages, and the classroom query software up on your screen. The instructor and TAs can observe and will record incidents of inattention, which will seriously impact the Homework/Attendance/Participation portion of your grade. Unauthorized electronic devices in use or on the desktop during class are subject to confiscation.

Academic support services

I encourage you to utilize the academic support services available to you through the Tomas Rivera Center (TRC) to assist you with building study skills and tutoring in course content. These services are available at no additional cost to you. The TRC has several locations at the Main Campus and is also located at the Downtown Campus. For more information, visit the web site at www.utsa.edu/trcss or call (210) 458-4694 on the Main Campus and (210) 458-2838 on the Downtown Campus.

Other university policies

This syllabus is provided for informational purposes regarding the anticipated course content and schedule of this course. It is based upon the most recent information available on the date of its issuance and is as accurate and complete as possible. The instructor reserves the right to make any changes deemed necessary and/or appropriate. The instructor will make his or her best efforts to communicate any changes in the syllabus in a timely manner. Students are responsible for being aware of these changes.

University wide policies and services regarding disabilities may be found online at: http://www.utsa.edu/disability/students.htm.

You are also responsible for knowing UTSA's policies regarding academic dishonesty. Plagiarism (see Section 203) will not be accepted. If you are in doubt be sure to make a proper citation to the author.

Note: (a) Students are not automatically dropped from a class if they stop attending the class. (b) University policy does not permit visitors in a class. (c) University policy does not permit faculty or office staff to report grades by telephone, fax, or email.

Academic Dishonesty

As an entity of The University of Texas at San Antonio, the Department of Computer Science is committed to the development of its students and to the promotion of personal integrity and self-responsibility. The assumption that a student's work is a fair representa- tion of the student's ability to perform forms the basis for departmental and institutional quality. All students within the Department are expected to observe appropriate standards of conduct. Acts of scholastic dishonesty such as cheating, plagiarism, collusion, the sub- mission for credit of any work or materials that are attributable in whole or in part to another person, taking an examination for another person, any act designated to give un- fair advantage to a student, or the attempt to commit such acts will not be tolerated. The Coordinator for Student Judicial A®airs or faculty may initiate disciplinary proceedings against any student accused of scholastic dishonesty. Consequences of academic dishonesty may be as severe as dismissal from the University. See the website for the Students Code of Conduct at http://www.utsa.edu/infoguide/appendiceb.cfm for more information.

The University of Texas at San Antonio Academic Honor Code

  1. Preamble

    The University of Texas at San Antonio community of past, present and future students, faculty, staff, and administrators share a commitment to integrity and the ethical pursuit of knowledge. We honor the traditions of our university by conducting ourselves with a steadfast duty to honor, courage, and virtue in all matters both public and private. By choosing integrity and responsibility, we promote personal growth, success, and lifelong learning for the advancement of ourselves, our university, and our community.

  2. Honor Pledge

    In support of the ideals of integrity, the students of the University of Texas at San Antonio pledge:

    "As a UTSA Roadrunner I live with honor and integrity."

  3. Shared responsibility

    The University of Texas at San Antonio community shares the responsibility and commitment to integrity and the ethical pursuit of knowledge and adheres to the UTSA Honor Code.

The Roadrunner Creed

The University of Texas at San Antonio is a community of scholars, where integrity, excellence, inclusiveness, respect, collaboration, and innovation are fostered.

As a Roadrunner,

I will:

  • Uphold the highest standards of academic and personal integrity by practicing and expecting fair and ethical conduct;
  • Respect and accept individual differences, recognizing the inherent dignity of each person;
  • Contribute to campus life and the larger community through my active engagement; and
  • Support the fearless exploration of dreams and ideas in the advancement of ingenuity, creativity, and discovery.
Guided by these principles now and forever, I am a Roadrunner!

Disclaimer

This syllabus is provided for informational purposes regarding the anticipated course content and schedule of this course. It is based upon the most recent information available on the date of its issuance and is as accurate and complete as possible. The instructor reserves the right to make any changes deemed necessary and/or appropriate. The instructor will make his or her best efforts to communicate any changes in the syllabus in a timely manner. Students are responsible for being aware of these changes.