Syllabus CS265 Advanced Programming Tools and Techniques
Course
CS 265 - Advanced Programming Tools and Techniques
Term and Credits
- Spring 2024
- 3 Credits
Room and Time
- Room: 1053 in 3675 Market Street
- Days: Monday and Wednesday
- Time: 12pm - 1:20pm
- Lecture will be streamed on Zoom and also Echo 360. Recordings will be made available using Echo 360.
Instructor
- Joseph Gallego
- Electronic Mail Address: jg3959@drexel.edu
- Office: --
- Extension: -
- Office Hours: 3-5PM Wednesday in 3675 Market Street room 1129
- Only Zoom and In-Person will run concurrently (check Blackboard for the Link).
Teaching Assistant(s)
- Kruthika Ravi
- Electronic Mail Address: kr3254@drexel.edu
- CLC Website: https://www.cs.drexel.edu/clc
- Office: Zoom
- Office Hours: Tuesday and Wednesday: 6:00 PM - 8:00 PM in 1066 of 3675 Market Street
- Yahmmin Haj
- Electronic Mail Address: ykh23@drexel.edu
- CLC Website: https://www.cs.drexel.edu/clc
- Office: Zoom
- Office Hours: Thursday: 6:00 PM - 8:00 PM in 1066 of 3675 Market Street
Office Hours
| Who | Monday | Tuesday | Wednesday | Thursday | Friday |
|---|---|---|---|---|---|
| Joseph Gallego | 15:00 - 17:00 | ||||
| Kruthika Ravi | 18:00 - 20:00 | 18:00 - 20:00 | |||
| Yahmmin Haj | 18:00 - 20:00 |
Course Description
This course provides an introduction to the Unix environment and the C programming language. Students will learn Unix command-line basics, Bash scripting, Regular Expressions, and C programming concepts such as pointers, linked lists, and interface development.
Goals
- Introduce students to a command-line interface.
- Provide experience with a compiled, statically-typed language with pointers.
Objectives
- Use the Linux command line and navigate a filesystem.
- Write scripts to aid development and other tasks.
- Develop non-trivial C programs.
- Effectively use pointers in C.
- Manage heap memory using C memory management functions.
- Utilize a debugger.
- Employ the Make utility to manage builds.
Audience
This is a required sophomore-level course for Computer Science students.
Prerequisites and Assumptions
- CS 172 [Min Grade: C] or CS 176 [Min Grade: C] or ECEC 105 [Min Grade: D] or ECEC 201 [Min Grade: D]
- Comfortable writing programs in a general-purpose, high-level programming language like Java or Python.
- No previous knowledge of Unix is required.
Course Materials
- Optional Textbooks:
- C Programming : A Modern Approach by K.N.King, 2nd ed., 2008, ISBN 978-0393979503
- Linux in a Nutshell by Siever, Figgins, Love, Robbins, 6 ed., O'Reilly, 2009, ISBN 978-0-59615448-6
- Available from the Drexel Library through this link
- Additional supplemental material and online resources will also be provided.
Software and Hardware Requirements
- Homework must be done on the CCI Unix servers (tux.cs.drexel.edu). Assignments not running on tux will not be accepted for credit.
- An account on the CCI Unix computers tux.cs.drexel.edu (tux) is required.
Drexel Blackboard Learn
This course operates using the Drexel Blackboard Learn Course Management System, enabling electronic submission of assignments.
Labs, Assignments, and Exam
- Labs: Weekly labs reinforcing class material, to be submitted on Blackboard.
- Assignments: 2 longer projects completed over a 2-week period.
- Exam: Final exam during finals week.
Course Schedule (Tentative)
The schedule is tentative and may change during the course.
Late Submissions
- Each student has two "late passes".
- A student may exchange one of their late passes for an one day extension on any assignment.
- Contact the TA/Professor to request one of your late passes be used.
- You may use both late passes of the same assignment to get a 2 day extension.
- A late pass must be requested no later than 24 hours after the original due date for the assignment.
- Without late passes, -5 points per day with a max penalty of 60 points on an assignment. Late Submissions may be made until June 16, 2024 at 11:59PM.
- SPECIAL NOTE: Late Passes may not be used on the Final Report. This is the only assignment they cannot be used on.
| Week | Start Date | Topic | Assignments |
|---|---|---|---|
| 1 | 4/1/2024 | Introduction to Unix, Unix Editors | - Activity 1 - In class - Due Wednesday 4/3 at 11:59PM |
| - Laboratory 1 - Due Sunday 4/7 at 11:59PM | |||
| 2 | 4/8/2024 | More Unix, Introduction to Bash | - Activity 2 - In class - Due Wednesday 4/10 at 11:59PM |
| - Laboratory 2 - Due Sunday 4/14 at 11:59PM | |||
| 3 | 4/15/2024 | Bash Scripting | - Activity 3 - In class - Due Wednesday 4/17 at 11:59PM |
| - Laboratory 3 - Due Sunday 4/21 at 11:59PM | |||
| 4 | 4/22/2024 | Regular Expressions, AWK, sed | - Activity 4 - In class - Due Wednesday 4/24 at 11:59PM |
| - Laboratory 4 - Due Sunday 4/28 at 11:59PM | |||
| 5 | 4/29/2024 | C Fundamental | - Activity 5 - In class - Due Wednesday 5/1 at 11:59PM |
| - Laboratory 5 - Due Sunday 5/5 at 11:59PM | |||
| 6 | 5/6/2024 | C Pointers & Strings, Command Line Arguments | - Activity 6 - In class - Due Wednesday 5/8 at 11:59PM |
| - Assignment 1 - Due Sunday 5/12 at 11:59PM | |||
| 7 | 5/13/2024 | C Pointers and Arrays, Functions, Dynamic Memory | - Activity 7 - In class - Due Wednesday 5/15 at 11:59PM |
| - Laboratory 6 - Due Sunday 5/19 at 11:59PM | |||
| 8 | 5/20/2024 | C Structs, Unions, Enumerations, Linked Lists | - Activity 8 - In class - Due Wednesday 5/22 at 11:59PM |
| - Laboratory 7 - Due Sunday 5/26 at 11:59PM | |||
| 9 | 5/27/2024 | C Declarations, Interfaces | - Activity 9 - In class - Due Wednesday 5/29 at 11:59PM |
| - Laboratory 8 - Due Sunday 6/2 at 11:59PM | |||
| 10 | 6/3/2024 | Debugger | - Activity 10 - In class - Due Wednesday 6/5 at 11:59PM |
| - Laboratory 9 - Due Sunday 6/9 at 11:59PM | |||
| 11 | 6/10/2024 | Assignments | - No Lectures - Exam Week |
| - Final Exam - Due Wednesday 6/12 at 12:00PM | |||
| - Assignment 2 Due Wednesday 6/12 at 11:59PM |
Extra Credit
- Weekly optional quizzes
- In this course, we value the course survey results. It is important for you to receive grades so you can determine how you are performing in class. We also want to know how we are doing. The course survey is our most important tool for determining how the students feel about the class. We also understand that completing the survey takes time and effort. Due to the importance of the course survey, extra credit will be provided to those students who complete it and provide evidence it has been completed. The extra credit will be 1 point added to the final grade for the class. This will take place at the end of the term.
Grading
- 10 Weekly Labs (3% each) : 30%
- 10 Weekly Activities (3% each) : 30%
- 2 Assignments (10% each) : 20%
- 1 Final Exam : 20%
- 10 Optional Quizzes : 10%
Final grades will be determined by your total points weighted according to this distribution. Grades may be curved but are generally computed via the formula below. It may be modified at the instructor's sole discretion, but letter grades will generally not be lower than those shown here.
- [100-97] A+
- (97-93] A
- (93-90] A-
- (90-87] B+
- (87-83] B
- (83-80] B-- [80-77] C+
- (77-73] C
- (73-70] C-
- (70-67] D+
- (67-60] D
- (60-0] FGrading Policies
- All activities, labs, and assignments will be posted on Bb Learn with a due date.
- Late submissions have a 2-day window with penalties.
- All work must be submitted in Tux.
- Missing the final without documented reason results in a zero.
- Cheating results in a zero and academic dishonesty report.
- Two extra credit.
- Grade disputes should be initially discussed with TAs.
University Policies
In addition to the course policies listed on this syllabus, course assignments or course website, the following University policies are in effect:
- Computer/Software Help provided by iCommons: https://drexel.edu/cci/current-students/icommons/
- Academic Honesty: http://www.drexel.edu/provost/policies/academic_dishonesty.asp
- Judicial Affairs Academic Integrity: http://drexel.edu/studentlife/community_standards/facultystaff/integrity/
- Official Final Exam Schedule: http://www.drexel.edu/registrar/scheduling/exams/
- Students with Disability Statement: http://drexel.edu/oed/disabilityResources/overview/
- Course Drop Policy: http://www.drexel.edu/provost/policies/course_drop.asp
- Drexel Student Learning Priorities: http://www.drexel.edu/provost/irae/assessment/outcomes/dslp/
- The instructor may, at his/her/their discretion, change any part of the course during the term, including assignments, grade breakdowns, due-dates, and the schedule. Such changes will be communicated to students via the course web site Announcements page. This page should be checked regularly and frequently for such changes and announcements. Other announcements, although rare, may include class cancellations and other urgent announcements.
Appropriate Use of Course Materials
It is important to recognize that some or all of the course materials provided to you are the intellectual property of Drexel University, the course instructor, or others. Use of this intellectual property is governed by Drexel University policies, including the IT-1 policy found at: https://drexel.edu/it/about/policies/policies/01-Acceptable-Use/ Briefly, this policy states that all course materials including recordings provided by the given prior written approval by the University. Doing so may be considered a breach of this policy and will be investigated and addressed as possible academic dishonesty, among other potential violations. Improper use of such materials may also constitute a violation of the University's Code of Conduct found at: https://drexel.edu/cpo/policies/cpo-1/ and will be investigated as such.
Recording of Class Activities:
In general, students and others should not record course interactions and course activities in lecture, lab, studio or recitation. Students who have an approved accommodation from the Office of Disability Resources to record online lectures and discussions for note taking purposes should inform their course instructor(s) of their approved accommodation in advance. The recording of lectures and discussions may only be carried out by the students enrolled in the class who have an approved accommodation from Disability Resources with their instructors' prior knowledge and consent. Students with approved accommodations may be asked to turn off their recorder if confidential or personal information is presented. If a student has any comments, concerns, or questions about provided class materials and/ or recording, talk to your course instructor first. If this does not resolve the issue, you can also reach out to the Department Head, and use the process described for a grade appeal to move your concern forward. The process described for grade appeals can be found at: https://drexel.edu/provost/policies/grade-appeals/
CCI's Commitment to Diversity, Equity, and Inclusion (DEI)
The College of Computing & Informatics commits to creating a positive and safe learning environment for everyone - instructors, professional staff, and students - both inside and outside of the classroom. We embrace the diversity of thoughts, perspectives, and experiences that each community member brings, and we honor everyone's identity (including, but not limited to, race, ethnicity, age, gender, socioeconomic status, sexuality, religion, veteran status, and disability). We encourage each community member to share information regarding pronouns, religious and cultural holidays, accommodations, and any other information that will assist instructors in fostering a supportive and inclusive community environment. For more information about CCI's commitment to DEI, visit Diversity, Equity & Inclusion Council | Drexel CCI.
