You are on page 1of 4

Course Syllabus

CS 3376.001 – C/C++ Programming in a UNIX Environment


TR 2:30 - 3:45 p.m. in ECSS 2.410

Instructor: Dr. Jey Veerasamy


Office: ECSS 3.231
Office Phone: 972-883-4241
E-Mail: jeyv@utdallas.edu
Web Site: www.utdallas.edu/~jeyv

Office Hours: Monday 1:45pm – 2:30pm


Tuesday 1:15pm – 2:30pm
Wednesday 1:45pm – 2:30pm
Thursday 1:15pm – 2:30pm
Other hours by appointment.

TA:
Altaf Rahman
Office Room: ECSS 4.703
Office hours: Mondays 2:30 – 4:30pm
Email: altaf@student.utdallas.edu

Course Pre-requisites, Co-requisites, and/or Other Restrictions

Computer Science I and II (CS 1337 and CS 2336, or equivalent courses)


Basic Object Oriented Programming Skills

Course Description

CS 3376 C/C++ Programming in a UNIX Environment (3 semester hours) Advanced programming


techniques utilizing procedural and object oriented programming in a UNIX environment. Topics include
file input and output, implementation of strings, stacks, queues, lists, and trees, and dynamic memory
allocation/management. Design and implementation of a comprehensive programming project is
required. Prerequisite: ECS 2336 or equivalent (Same as SE 3376). (3-0) S

Student Learning Objectives/Outcomes

1. Ability to create classes of abstract data consisting of variables and functions


2. Ability to utilize C++ constructors, copy constructors, and destructors
3. Ability to utilize C++ OOP features using static member data and member functions
4. Ability to utilize C++ File and Stream Input/Output Processes
5. Ability to generate reusable code using inheritance
6. Ability to use polymorphism and virtual member functions
7. Ability to generate reusable code using templates
8. Ability to create and utilize dynamic data structures such as linked lists
9. Ability to create and utilize recursive functions

Required Textbooks and Materials

None. We will use free e-books and other web resources in this course.

Suggested Course Materials

How to Think Like a Computer Scientist http://www.greenteapress.com/thinkcpp/


Data Structures and Algorithms with Object-Oriented Design Patterns in C++

http://www.brpreiss.com/books/opus4/html/book.html
More resources will be added as the course progresses.
Assignments & Academic Calendar (subject to change throughout the term)

Class Date Class Activity/Notes Assignment

1 Thursday, August 19 Review of Syllabus

2 Tuesday, August 24 C/C++ Fundamentals

3 Thursday, August 26 C++ Fundamentals

4 Tuesday, August 31 File/Stream processing Project 1 out

5 Thursday, September 2 Pointers & dynamic memory allocation

6 Tuesday, September 7 Pointers & dynamic memory allocation Quiz 1

7 Thursday, September 9 Classes

8 Tuesday, September 14 Constructors/Destructors

9 Thursday, September 16 Inheritance & Virtual methods

10 Tuesday, September 21 Inheritance & Virtual methods ... Project 1 due


Quiz 2

11 Thursday, September 23 Exceptions & Templates Project 2 out

12 Tuesday, September 28 Template classes ...

13 Thursday, September 30 Template classes ...

14 Tuesday, October 5 Debugging

15 Thursday, October 7 Mid-term preparation

16 Tuesday, October 12 Mid-term exam

17 Thursday, October 14 Strings, Linked lists Project 2 due

18 Tuesday, October 19 Stacks & Queues

19 Thursday, October 21 Trees

20 Tuesday, October 26 Linux introduction

21 Thursday, October 28 Linux ...

22 Tuesday, November 2 Linux ... Project 3 due

23 Thursday, November 4 Linux ...

24 Tuesday, November 9 APIs in Linux

25 Thursday, November 11 Multi-threading & Multi-processing

26 Tuesday, November 16 Multi-threading & Multi-processing

27 Thursday, November 18 Multi-threading & Multi-processing

28 Tuesday, November 23 Advanced topics (design patterns)

Thursday, November 25 Thanksgiving holiday, no class


29 Tuesday, November 31 Advanced topics (design patterns)

30 Thursday, December 2 Exam Review, final day of class Project 4 due

Tuesday, December 7 No class, Final Project I due

Sunday, December 12 No class, Final Project II due

Study break

31 Tuesday, December 14 Final Exam @ 2pm

Grading Policy
(including percentages for assignments, grade scale, etc.)

Projects and exams determine grades. All exams are closed book and closed notes. The final grade will
be composed as follows:

Quizzes 10%
Projects 50%
Exam 1 20%
Exam 2 20%

Letter grades will be assigned as follows:

98-100 A+
92-97 A
90-91 A-
88-89 B+
82-87 B
80-81 B-
78-79 C+
72-77 C
70-71 C-
68-69 D+
62-67 D
60-61 D-
Below 60 F

Course & Instructor Policies

All make-up exams are scheduled during the week following the actual exam date at the discretion of the
instructor. Make-up exams are only given to those students who coordinate the missing of an exam prior
to the originally scheduled exam date and time.

Course credit is only given for work assigned and scheduled in the course schedule. No extra work will be
assigned nor will extra credit be given for any extra work performed by a student.

Class attendance is not recorded or required except for exam dates and times. However, 5-10 quizzes
will be given on randomly selected days. Those quizzes will typically test your understanding of course
materials covered recently & 10% of the final grade will determined by your performance in those
quizzes. Make-up quizzes will not be given for absentees.

There will be 5 C++ projects in this course. Comprehensive final project will account for 30%, all other
projects will contribute 5% each towards your final grade. All these assignments should be submitted
through eLearning. More details on these projects will be given as the course progresses.
Assignments are due at midnight on the day listed in the syllabus. Even if you cannot complete a project
in timely manner, you are encouraged to submit the partial version on time to get maximum possible
partial credit. If you are able to complete your assignment fully within a day beyond the deadline, you
are encouraged to submit it again – it will be considered for additional points at the discretion of the
instructor.

Students are expected to be respectful to each other and to the course instructor. Disruptive behavior in
the class room is not tolerated.

Off-campus Instruction and Course Activities

No off-campus activities are scheduled.

Policies and Procedures for Students

The University of Texas at Dallas provides a number of policies and procedures designed to provide
students with a safe and supportive learning environment. Brief summaries of the policies and
procedures are provided for you at http://provost.utdallas.edu/home/index.php/syllabus-policies-and-
procedures-text
and include information about technical support, field trip policies, off-campus activities, student conduct
and discipline, academic integrity, copyright infringement, email use, withdrawal from class, student
grievance procedures, incomplete grades, access to Disability Services, and religious holy days. You may
also seek further information at these websites:
http://www.utdallas.edu/BusinessAffairs/Travel_Risk_Activities.htm
http://www.utdallas.edu/judicialaffairs/UTDJudicialAffairs-HOPV.html
http://www.utsystem.edu/ogc/intellectualproperty/copypol2.htm
http://www.utdallas.edu/disability/documentation/index.html

These descriptions and timelines are subject to change at the discretion of the Professor.

You might also like