Telcom 2300: Software Tools & Techniques

Updated 26 August 2003

History of Updates to this page

 

 

Telecommunication 2300 introduces C and Unix in the context of telecommunications and information system problem solving.  The C language and the Unix operating system have continuously grown in importance since their development in the early 1970's.  Recently, Unix served as the basis for much of the thinking about the Portable Operating System Interface -- POSIX.  Additionally, a variant of Unix, Linux  is experinecing explosive growth in popularity. Unix is also the most common operating system for machines on the Internet -- although machines running other operating systems (MacOS and MS Windows) are also part of the internet.  Similarly, C has become the base language for C++ and has been the first language for the development of several important libraries such as the X Window System.  Because of the opportunities presented, more and more people have been moving to C and Unix for project development over the last several years.  This course will offer an overview of C and Unix, and, as time permits, will introduce the X Window System and C++ extensions to C.

 

Course Goals

 

 

 

1. Instructor Information

    Dr. Joseph Kabara

    Office: 702 IS

    Phone: 624-9417

    email: kabara@tele.pitt.edu

    WWW: http://www2.sis.pitt.edu/~jkabara

    Class Hours: Thursday 2:00 - 5:15, 405 IS

    Office Hours: 4:00-5:00 Mon., Wed., and by appointment.

 

 

2. Textbook

TBA

 

Reference:

 

Common Desktop Environment FAQ

Open Source

The tutorials page off my home page

UNIX® For Dummies®, 4th Edition By John R. Levine, Margaret Levine Young

Newmarch, The X Window System and Motif, Addison Wesley, 1992

Schildt's Turbo C/C++ The Complete Reference, Osborne McGraw-Hill.

Pohl, C++ for C Programmers, Benjamin Cummings, 1989.

Scheifler, Gettys and Newman, X Window System

Sobell, A Practical Guide to Unix System V

Young, The X Window System, Programming Applications with Xt

Martin and Odell, Object Oriented Analysis and Design

Bronson and Menconi, A First Book of ANSI C

Kernighan and Ritchie, The C programming language

Peek, Todino & Strang, Learning the Unix Operating System

Johnsonbaugh & Kalin, Applications Programming in ANSI C

Van Der Linden, Expert C Programming

Berg, Threads Primer

 

3. Grading and Evaluation

Letter Grade             Point Range

A                     930-1000

A-                    900-929

B+                    880-899

B                      830-879

B-                    800-829

C                      650-799

F                      0-649

 

4. Course policies

·         Students must do their programming assignments Unix workstations using the C compiler there. Assignments are to be mailed to  (TBA) the subject must include tele2300 and the assignment #.

·         Assignments submitted after the date they are due will be graded on the basis of a 10% maximum point award reduction per week.  Thus an assignment worth 100 points and due in week 3 will be graded on the basis of a maximum award of 90 points if received in week 4, 80 points in week 5, etc.

·         The descriptions of assignment requirements provided below specify the basic nature of the assignment.  Students who complete the minimal requirements will receive 85% of the points.  A perfect grade is reserved for students who go beyond the minimal requirements in some way and make no mistakes in execution of the basic requirements.

·         Code that is not properly commented will receive a maximum of 50% of the points for the assignment

·         The instructor will adjust the schedule as needed if the lectures fall off the announced schedule to allow time for you to work on the various assignments after the related issues have been covered in class.

·         Students who find themselves in situations where they will not be able to work on schedule for business or personal reasons should petition the instructor in advance and in writing providing: 1) a reason for the special schedule and, 2) a copy of the proposed schedule. This personal schedule will become binding on the student with the same grading provisions as the general schedule for the class.

·         A Few Words about Assignments and Requirements It is your responsibility to come to class prepared to ask questions and explore problems related to the lecture topic.  If you are not prepared,  the concepts discussed and the nuances of the language will not be seen.  You will be at a significant disadvantage if you simply come to class with a clear head!

·         The reading assignments for each class are to be done before class.  The lecture will reflect on these.  The lectures will not provide notes to review after class to make the readings more intelligible.

·         The programming assignments will be as meaningful as possible within the constraints of a course.  In the real world, software systems are extremely complex and consist of thousands to hundreds of thousands of lines of code.  You should anticipate many hours of work on some of your assignments to make them work.  If you take on a real problem, the code you develop will be extensive.

·         The final programming assignment is the only "real" assignment that will be possible in this class.  To make it possible for you to work on this and other more complex assignments, you may work in a team.  This means you will need to coordinate your efforts.  Grading will reflect group effort.  That is, more will be expected of projects completed in groups.  Because of the energy required to coordinate groups, it is recognized that the quality of a product of a group effort will be somewhat less than a multiple of the number of people involved.  At the same time, it should be more complete and sophisticated than an effort completed by an individual. If you work in a group, it is very important that you contribute in a timely fashion and be cooperative about meetings.

·         Students working in groups who "take a vacation" and then try take credit for the work of your teammates will not be tolerated.  They will receive a zero for the assignment.

·         Students wishing to earn extra credit must first clear their proposed project with the instructor.

·         Electronic copy and/or personal demonstration are the only acceptable means of submission for this course. Any work submitted on paper will be lost before grading unless you make prior arrangements with the instructor.

·         I reserve the right to modify course requirements administering surprise quizzes for up to 50 points  if I feel that students are not pursuing a reasonable amount of course related reading, writing and computing. Should this option be exercised, the point distribution for grades will be changed accordingly.

·         You are expected to check this page on a regular basis for any changes to the problems and syllabus. All are subject to change as the course proceeds and will be publicized in the updates section. Important updates will be emailed to the class mailing list.

·         The easiest means of contacting me is by electronic mail first (kabara@tele.pitt.edu). This helps me organize my time, and ensures a more accurate and efficient response outside of office hours. I read my electronic mail throughout the day every day and will usually respond with an answer within a few hours of reading it, and almost always the same day. If the nature of your question requires an interactive session, please come to my office during office hours as scheduled. If, for some unforeseen reason, I cannot make office hours, I will announce that in class whenever possible. I do not make appointments during office hours; I will be available on a first come, first served.

·         You are expected to read the assigned material before the associated lecture

 

 

5. Project Details:

 

 

Final Project:

 

            Points

1          18 May             Review of Syllabus; Intro to C; Intro to Unix C syntax & Basic Unix comamnds             Pohl: 1, 15 & 14, Sobell 1-4, 6

AB: User Guide,

Advanced User Guide

User CDE

AB: C users guide                 

2          25 May             Data types, storage, pointers, signals, GUI Unix tools (nedit, reading mail, net surfing, editing html)             Pohl: 6, 7, 8, 9   hello-world.c

user environment             25

25

3          1 June             Flow Control, I/O, Unix file structure; Unix configuration files      Pohl:

3, 13

AB: CDE Advanced Guide    good-hye world.c

Web Page             25

25

4          8 June             Functions, Command line arguments, computer architecture in a networked world, code version control, using /tmp, code documentation             Pohl:

4, 14, A                            

5          15 June             Passing functions by value & by reference, scope of variables, man pages    Pohl 5, 6

Sobell: 7, 8, 15             file dump    50

6          22 June             Bit Operations, Arrays, Complex logic, core files, finding files, process status disk space, quotas disk usage    Pohl: 2, C

AB: Adv. User Guide    create a secure

directory

address book read      25

50

7          29 June             Unix Shell Commands, Shell Scripts, Functions, and Aliases             Sobell: 5          parse configuration file        50

8          6 July             library and header files             Pohl 7,8, B    merge address books              50

9          13 July             make, Makefiles, compiling packages, structures and linked lists             Pohl: 9, 10

Sobell: 14

AB: utilities             socket communication             50

10         20 July             Regular Expression and File Manipulation             Pohl: 12, 13

Sobell: 11, Part 3 appendix A-C             package installation             50

11         27 July             Arrays and Array Pointers, X window coding             Pohl: 9, 10         shell script    50

12         3 Aug.             Final Exam                  Final Project

Final Exam             300

100

 

 

Copyright (C) 1999 Joseph Kabara

 

This page is available at no charge to non-profit eduational institutions; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

 

For-profit educational or training corporations must contact the original author for licensing information.

 

This information is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License  along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.