|
|
| Course Description |
CS 4593.008 Prog Fund. and Data Structures (non-CS) (3-0) 3 Credit Hours.
In the new catalog (Fall 2020), this course will be listed as
CS 2173. Programming Fundamentals and Data Structures. (3-0) 3 Credit Hours.
Prerequisite: Consent of instructor. This course is a bridge course for the non-CS students.
It cannot be applied to the undergraduate degrees in computer science. Topics include programming fundamentals and basic data structures such as arrays, stack, linked-lists, trees, graphs. Only one of CS 2193, CS 2173, and CS 2124 (or previously CS2123/2121) will be counted towards a degree.
|
|
Objectives
|
This bridge course is designed for the non-CS students who are
interested in (or accepted to) Computer Science Master program. For more
details about this MS program, click
here
In this bridge course, we mainly cover the foundations of programming
and data structures from two regular CS
courses (CS 1713/1 and CS 2123/1). To be able to cover all the topics
and better prepare students for Master in CS, we will provide most of
the lecturing in video forms and require students to
watch/study a set of video lectures in each week before the class
time. In class, we will first give a quiz to check students'
understanding of the materials for the week. We then mainly focus on
problem solving and actual coding exercises in class.
Through the video lectures, slides, quizzes and problem solving
in class, and
weekly programming assignments, students will be able to acieve the
following objectives:
- Learning fundamentals of computer programming using a specific
language known as C.
- Learning algorithm development and practicing problem solving
methodology.
- Learning advance programming concepts with an emphasis on
pointers and dynamic memory management in C.
- Understanding the implementation details of basic data structures
like arrays including multidimensional arrays, and dynamic
data structures such as linked lists, binary search trees, graphs,heaps,
hashing.
|
| Time and Location |
Saturday 11:00am-1:45pm
NPB 1.226
|
Instructor |
Dr. Turgay Korkmaz
Office: NPB 3.330
Email: korkmaz at cs.utsa.edu
Phone: (210) 458-7346
Fax: (210) 458-4437
Office Hours: Sat @2pm-5pm
(or by appointment)
|
TA TA office hours: |
TBD
|
|
Tutoring
|
You can also get help from CS tutors: CS
Tutoring Schedule
|
|
Prerequisite
|
Consent of instructor.
|
|
Textbook
|
There is no required textbook!
|
|
Other reference books/sites (optional) |
C programming Language:
-
Online C tutorials: zentut.com
-
C Programming: A Modern
Approach by K. N. King
-
The C Programming Language by Kernighan and Ritchie
- A Book on C by All Kelley and Ira Pohl,
Data Structures:
-
Programming Abstractions in C: A second Course in Computer Science
by Eric S. Roberts, Addison-Wesley, 1998 (Higly recomended. I used
this to prepare many of my slides in this course)
- The Algorithm Design Manual by Steven S. Skiena
- Data Structures and Algorithm Analysis in C 2/e by Weiss
- Data Structures Using C and C++ by Y. Langsam, M. Augenstein & A.
Tenenbaum
Linux:
- A Practical Guide to Linux by Sobell
|
|
Grading
|
- 10% Attendance, class participation and weekly quizzes
- 25% One midterm exam (Date: Oct 12, 2019 (tentative) )
- 30% Programming Assignments ! NO LATE SUMBISSION !
- 35% Final Exam:
(in the same classroom) but time is different! Date: Sat, Dec 07, 09:45 am - 12:15 pm
Final letter grade:
A-, A : ≥ 90%
B -, B, B+ : ≥ 80%
C -, C, C+ : ≥ 70%
D : ≥ 60%
F : ‹ 60%
|
|
Class Assignments
Recitation Exercises
|
We will have 12 pogramming assignments/homeworks (30%)
Each of the first 10 will have a week to complete. Each of the last
two will have 10 days to complete.
Officially they will be posted and submitted through the
UTSA Learn (f. Blackboard). For convience, they will be posted at
that web page, too (see the links under Online Materials below)
!!!!
Please carefully check the due dates on BB Learn because NO LATE SUBMISSION WILL BE ACCEPTED !!!
|
|
Course Topics
|
- Fundamentals of Computer Programming using C Programming Language
- C Program Structure
- Comments
- Variables
- Built-in data types
- Basic Input/Oputput functions
- Arithmetic/Logical Operations and Expressions
- Control Flows
- Selections: if-else, switch;
- Loops: for, while, do-while
- Functions (call-by-value)
- Advanced Programming Concepts in C Language
- Pointers
- Arrays (1D and 2D)
- Pointer Arithmetic and Arrays,
- Command Line Arguments (2D char array)
- Structures
- Dynamic Memory Allocations
- I/O Libraries (File Input/Outout)
- Recursion
- Data Structures
- Asymptotic Algorithm Analysis, Searching, Sorting
- Interface-based programming and Abstract Data Tyeps (ADT)
- Stack,
- Linked Lists,
- Queue,
- Binary Search Trees
- Graphs
- Heaps and Priority Queues
- Hashing
- Linux/Unix and Our Systems (Mostly covered outide
the classroom, you should get help from TAs/tutors)
- 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
|
- You are required to study a set of videos and the corresponding
slides before each class.
|
|
Software
C/C++ compiler
|
We will use Linux and gcc in the CS lab.
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
|
|
|
|
| Additional Links |
-
- Dev-C++
Install this software for C program development if you use a windows PC
- Dropbox Install this software to
maintain synchronized folder of programs
- xemacs A lot of information about
xemacs available on this site
- putty ssh and telnet client
- winscp ftp client
- You can use this to move files between your home machine and
department elk machines
- Xming X windows
server
- You can use this to access elk machines from home
-
C standard
|
| 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 the hostname
given in the class, enter your account id.
From CS system admin:
"If a student is registered for a CS course and needs to login to the CSNET domain or Linux LDAP domain the default username is their
myUTSAid (abc123) and their password is their banner number without the @ character. Please have them reset their passwords when they
login. If they do not change their password their account may be locked when we run our password audit. "
|
| 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.
|
| University policies |
For common syllabus information that should be part of every syllabus, see
the page
http://utsa.edu/syllabus
It includes the links and the mandatory administrative information
concerning disability services, the academic dishonesty policy, and other
important issues.
|
| 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.
|