CSCE 315-913/914/915 Programming Studio:
Fall 2020


NEWS: 10/9/20, 10:36AM (Fri)
Read-Only Bulletin Board.: 8/13/20, 10:53PM (Thu)

Page last modified: 9/2/20, 09:36PM Wednesday.

General Information Weekly Schedule University Policy Lecture Notes Example Code Read-Only Board

I. General Information

Course Information:

CSCE 315-913/914/915 Programming Studio: Fall 2020
Lectures [All sections]: MWF 12:00pm-12:50pm (ONLINE)
Lab [Section 913] Tue/Thu 8:00am-8:50am ZACH 353;
Lab [Section 914] Tue/Thu 6:45pm-7:35pm ZACH 310;
Lab [Section 915] Tue/Thu 8:00am-8:50am ZACH 310;
Credit hours = 3;
* Note: Students can choose to attend the lab session online.

The course is listed as a 2-hour per week lecture, and 2-hour per week lab, however the classroom/ONLINE sessions have been intentionally scheduled for 3 hours per week of lecture (along with the lab). We will meet a minimum of 2/3 of the allocated lecture periods over the course of the semester. The idea is to "front-load" these lectures in the earlier part of the semester, to cover material that might be useful when working on the programming projects, and spend less lecture time during the project periods themselves. Also, some days when the instructor travels might be used as some of the "missed" days. The specific list of days we will meet will be provided on the course web page.

There is a final exam time reserved for this class. Although the plan is to wrap up the course before this time, students should leave the final exam time available until instructed otherwise, since it might be used for project presentations or something similar. However, there will not be a final exam in the course.

Instructor Details:

Dr. Yoonsuck Choe
Email: choe at
Office: HRBB 322B
Phone: 979-845-5466
Office Hours: MWF 5pm-6pm (Online)


Zhenhua He
Email: happidence1 at
Office hours: Mon 3:00 - 5:00 pm Mon 4:00 - 6:00 pm Mon 1:00pm-3:00pm


Rahul Sridhar
Email: sairahul5223 at
Office hours: Wed 1:00 - 3:00 pm

Course Description:

Intensive programming experience that integrates core concepts in Computer Science and familiarizes with a variety of programming/development tools and techniques; students work on 2 or 3 month-long projects each emphasizing a different specialization within Computer Science; focuses on programming techniques to ease code integration, reusability, and clarity.

Course Prerequisite:

Prerequisites: CSCE 312 and CSCE 314; or CSCE 350/ECEN 350.
Corequisite: CSCE 313.

Special Course Designation:

As a writing intensive course (W), written material is an important part of the assignments in this course. Graded writing will account for 20% of each student's overall grade in the course, and the written portion must be passed to get credit for the class.

See W-C-Course Facts.


This course is intended as an intensive programming experience that integrates core concepts in Computer Science and familiarizes students with a variety of programming/development tools and techniques. Students will primarily work in small teams on month-long projects emphasizing different specializations within computer science. The course focuses on honing good programming techniques to ease code integration, reuse, and clarity.

The primary goal for this class is to have students emerge with strong programming skills, able to address both individual and team programming challenges competently. The class is meant to allow students to improve their programming skills through significant practice.


The expected accomplishments of the students are as follows:
  1. Become a confident software developer experienced in the full software development cycle.
  2. Become a capable and effective member in a small software development team.
  3. Become an effective communicator (both oral and written) within the context of software projects.

Course Learning Outcomes:

The students who take this course should be able to demonstrate the following upon the completion of this course.
  1. Knowledge of programming and debugging tools.
  2. Knowledge of various programming paradigms.
  3. Ability to design and refine large software systems based on rough system requirements.
  4. Ability to implement and test software system design.
  5. Ability to work as a member of a software project development team.
  6. Knowledge of various software development paradigms.
  7. Ability to manage software development projects.
  8. Ability to write technical documentation regarding software systems.
  9. Ability to communicate the overall design and details of software systems.
  10. Introductory-level knowledge in database systems, artificial intelligence, and software engineering.


We will be using the following textbook: Other books that may be drawn from, and that might be useful references include both the first edition of Code Complete, as well as:

Computer Accounts:

  1. Computer accounts: if you do not have a unix account, ask for one on the CSE web page.

Topics to be covered:

Among the topics to be covered in lecture periods are: Though many topics will overlap, this course is not intended to be as in-depth or comprehensive as a standard software engineering course, which focuses more on project management - students may take the software engineering class after taking this class.

Note: You should expect to spend a significant amount of time (>10 hours/week) outside of class time on programming projects. This may require meeting with team members outside of the class/lab periods.

See the Weekly Schedule section for more details.


The grading will be based on various class activities:
  1. Writing : 20% (two short reports, 400 words each; and one long report, 1200 words). To receive a passing grade in this course, you have to get a passing grade on the writing component: 70% of the 20%.
  2. Three projects: 65% : 1 individual project (20%15%) and 2 team projects (project 2: 20%25%, project 3: 25%),
  3. Attendance: 5%, based on attendance (Online and/or Face to face). For online attendance (zoom), students logged in with NetID will be automatically logged by zoom. For face-to-face attendance, login to zoom with your mobile, laptop, or tablet when you're in the room. Every 2 absences will deduct 1% (out of 5%) of the attendance score. Excused absences will only be allowed for those listed in the university rules.
  4. Quizzes: 10%
There will be three projects in the course. Specific grading practices for each project will be announced when that project is given out, but the grade may include factors such as evaluation of code clarity, teamwork, etc. Peer evaluation may be used as a significant contributing factor to these grades (see below).

The projects are scored by the team, however, different individual contribution can lead to differential grades given the same team score.

The grading scale expected to be used is: >90 = A; >80 = B; >70 = C; >60 = D; all else F.

Late work Policy:

Every two hours past deadline will lead to 1 point (out of total of 100) deduction from the assignment score. For example, if you scored 100/100 but submitted the assignment 12 hours late, your final score will be 94/100 (6 points penalty).

II. Weekly Schedule and Class Notes

1 8/17          
1 8/19 [First day of class] Introduction;[Chapters 1, 9.1, 9.2]; Project 1 announcement: PHP-driven web site Thu: Team assignment survey, GIT, infinityfree setup     slide01.pdf
1 8/21 Project 1: HTML /PHP / CSS/ Javascript basics ; Finding your way around for resources for fast prototyping;       315-coding-tips.pdf
2 8/24 Naming, Style, Commenting [Chapters 11.1, 11.2, 31] Tue: Project 1: Design ; PHP basics     slide02-naming.ppt
2 8/26 Software Design Principles;
Testing Test-Driven Development (TDD)
[Chapter 5, Chapter 22]
Thu: Project 1: Regular expressions; Handing data files     slide05-sw.ppt
2 8/28 Software Design Principles ; Testing
Debugging, Software development approaches; Agile Development [Chapter 5.1, 5.2, 5.3, 8.1, 8.2, 8.3]
    Project 1: data file + Wikitext processor code due (Sunday 11:59pm) slide06-testing.ppt
3 8/31 Test-Driven Development, Debugging [Chapter 23]
Agile Development; Collaborative Code Development; Project 1 intermediate review
Tue: Project 1: HTML forms (POST / GET), Javascript     slide07-tdd.ppt
3 9/2 Software Development Methodologies; Agile Development; Collaborative Code Development; Project 1 intermediate review Thu: Project 1: Code review     slide09-methodology.ppt
3 9/4 Design patterns; Code portability [Chapter 21, 24]     Project 1: interactive gallery code due (Sunday 11:59pm) slide12-dp.ppt
4 9/7 Project 2: Intro to Databases, Entity-relationship model, relational DB [Chapters 1, 9.1, 9.2]; Tue: Project 1: Code review     slide14-db.ppt
4 9/9 Project 2: SQL Schema; Project 2 announcement Thu: Project 1: Code review
Project 2 design
4 9/11 Project 2: SQL queries;     Project 1 final version (including search) + written assignment due (Sunday 11:59pm) slide16-sql1.ppt
5 9/14 Project 2: SQL queries, Database implementation; Tue: Project 2 Design     slide17-sql2.ppt
5 9/16 API design Thu: Project 2, Design
5 9/18 Network protocols and socket programming
    Project 2 design documents due (Sunday 11:59pm) slide20-xml.pptx
6 9/21 Project 2 design reviewProject 1 showcase (volunteers) Tue: Project 2, JDBC DB client      
6 9/23 Code Portability; Code performance; Code Tuning [Chapter 25, 26] Thu: Project 2: JDBC DB client     slide13-port.ppt
6 9/25 Code Portability; Code performance; Code Tuning [Chapter 25, 26]     Project 2 DB client code due (Sunday 11:59pm) slide13-port.ppt
7 9/28 SOLID principles Tue: Project 2: GUI     slide23-solid.pdf
7 9/30 Writing tips Thu: Project 2: GUI     slide24-writing.pptx
7 10/2 Human Computer Interaction (HCI) introduction;
Project 2 DB GUI code review
8 10/5 No class Tue: Project 2: DB analytics      
8 10/7 HCI design principles and user studies;
Thu: Project 2: DB analytics   Project 2 DB GUI code due (Wednesday 11:59pm) slide26-hci2.pptx
8 10/9 Project 3: G-Suite Add-ons;
Project 3 announcement
9 10/12 No class Tue: Project 2: DB analytics      
9 10/14 No class
Project 2 DB dashboard review
Thu: Project 2: Code review      
9 10/16 No Class     Project 2 final version due (Dashboard + writing)(Sunday 11:59pm)  
10 10/19 Project 2 presentations (913: all teams) Tue: Project 3 Design      
10 10/21 Project 2 presentations (914: all teams) Thu: Project 3, G-Suite hands-on demo      
10 10/23 Project 2 presentations (915: all teams)     Project 3 Design documents due (Sunday 11:59pm)  
11 10/26 No class Tue: Project 3 G-Suites User interface      
11 10/28 No class Thu: Project 3 G-Suites UI Code review      
11 10/30 No class     Project 3 user interface code due (Sunday 11:59pm)  
12 11/2 Project 3 intermediate review Tue: Project 3 : UI User Study: Teams 1, 3, and 5 (subject: Teams 2, 4, and 6, respectively [For 913 team 5, the TA and the instructor will be the subject])      
12 11/4 No class Thu: Project 3 : UI User Study: Teams 2, 4, and 6 (subject: Teams 1, 3, and 5, respectively)      
12 11/6 No class        
13 11/9 No class Tue: Project 3: Code review (major functionality)      
13 11/11 No class Thu: Project 3: Code review (UI)      
13 11/13 No class     Project 3 major functionality code due (Sunday 11:59pm)  
14 11/16 Project 3 intermediate review Tue: Project 3: Code review      
14 11/18 No class Thu: Project 3: Code review      
14 11/20 No class        
15 11/23 Course wrap up (with instructor)/ Course evaluation (in the absence of the instructor)     Project 3 final submission due (Monday 11:59pm)  
17 12/7(Monday) Final exam: December 7 (Monday): 11am-1:30pm, on Zoom: Project presentations Degree candidate grades due 12/10

III. University Policy

Attendance Policy:

The university views class attendance and participation as an individual student responsibility. Students are expected to attend class and to complete all assignments.

Please refer to Student Rule 7 in its entirety for information about excused absences, including definitions, and related documentation and timelines.

Makeup Work Policy

Students will be excused from attending class on the day of a graded activity or when attendance contributes to a student's grade, for the reasons stated in Student Rule 7, or other reason deemed appropriate by the instructor.

Please refer to Student Rule 7 in its entirety for information about makeup work, including definitions, and related documentation and timelines.

Absences related to Title IX of the Education Amendments of 1972 may necessitate a period of more than 30 days for make-up work, and the timeframe for make-up work should be agreed upon by the student and instructor (Student Rule 7, Section 7.4.1).

The instructor is under no obligation to provide an opportunity for the student to make up work missed because of an unexcused absence(Student Rule 7, Section 7.4.2).

Students who request an excused absence are expected to uphold the Aggie Honor Code and Student Conduct Code. (See Student Rule 24.)

Academic Integrity Statement and Policy:

AGGIE HONOR CODE: An Aggie does not lie, cheat, or steal or tolerate those who do.

Texas A&M University students are responsible for authenticating all work submitted to an instructor. If asked, students must be able to produce proof that the item submitted is indeed the work of that student. Students must keep appropriate records at all times. The inability to authenticate one's work, should the instructor request it, may be sufficient grounds to initiate an academic misconduct case (Section, Student Rule 20).

You can learn more about the Aggie Honor System Office Rules and Procedures, academic integrity, and your rights and responsibilities at

For this class, certain aspects of the honor code need to be clarified.

  1. There may be times in this course where you or your team make use of external code/software/libraries. Whenever this is done, you must make sure that, in addition to following any restrictions on that code itself, you clearly document what the source of the external code was, and how it was used.
  2. There may be cases in this course where you or your team seeks outside assistance related to one of the projects. Any assistance received from people other than members of your team, the professor, teaching assistant, or peer teacher needs to be clearly documented.
  3. You will be working in team environments in this course, and your work as a team will be used to determine grades. As such, it is your responsibility, when asked, to:
    • accurately describe the work that you have done on a team project. Claiming credit for work that you have not done or that others did instead is a violation of the code.
    • accurately describe (to the best of your knowledge) the performance of other team members. "Covering" for another team member (claiming they did more work than you know they did) or "spiking" them (claiming they did less work than you know they did) are examples of honor code violations.
    • prevent (as best you can) or report (known) violations of the honor code by your other team members. You share responsibility when a project is turned in; if you are aware of a teammate having violated the code in his/her work on the project, and do not report it, you are claiming credit for that violation yourself.
    • MOSS will be used to check for plagiarism in your code.

If there are any questions or concerns about whether an action is appropriate, you should check with the professor or teaching assistant first. If in doubt, assume that it is not appropriate.

Americans with Disabilities Act (ADA) Policy

Texas A&M University is committed to providing equitable access to learning opportunities for all students. If you experience barriers to your education due to a disability or think you may have a disability, please contact Disability Resources in the Student Services Building or at (979) 845-1637 or visit Disabilities may include, but are not limited to attentional, learning, mental health, sensory, physical, or chronic health conditions. All students are encouraged to discuss their disability related needs with Disability Resources and their instructors as soon as possible.

Title IX and Statement on Limits to Confidentiality

Texas A&M University is committed to fostering a learning environment that is safe and productive for all. University policies and federal and state laws prohibit gender-based discrimination and sexual harassment, including sexual assault, sexual exploitation, domestic violence, dating violence, and stalking.

With the exception of some medical and mental health providers, all university employees (including full and part-time faculty, staff, paid graduate assistants, student workers, etc.) are Mandatory Reporters and must report to the Title IX Office if the employee experiences, observes, or becomes aware of an incident that meets the following conditions (see University Rule 08.01.01.M1):

Mandatory Reporters must file a report regardless of how the information comes to their attention including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Although Mandatory Reporters must file a report, in most instances, you will be able to control how the report is handled, including whether or not to pursue a formal investigation. The University's goal is to make sure you are aware of the range of options available to you and to ensure access to the resources you need.

Students wishing to discuss concerns in a confidential setting are encouraged to make an appointment with Counseling and Psychological Services (CAPS)

Students can learn more about filing a report, accessing supportive resources, and navigating the Title IX investigation and resolution process on the University's Title IX webpage.

Statement on Mental Health and Wellness

Texas A&M University recognizes that mental health and wellness are critical factors that influence a student's academic success and overall wellbeing. Students are encouraged to engage in proper self-care by utilizing the resources and services available from Counseling and Psychological Services (CAPS). Students who need someone to talk to can call the TAMU Helpline (979-845-2700) from 4:00 p.m. to 8:00 a.m. weekdays and 24 hours on weekends. 24-hour emergency help is also available through the National Suicide Prevention Hotline (800-273-8255) or at

Campus Safety Measures

To promote public safety and protect students, faculty, and staff during the coronavirus pandemic, Texas A&M University has adopted policies and practices for the Fall 2020 academic term to limit virus transmission. Students must observe the following practices while participating in face-to-face courses and course-related activities (office hours, help sessions, transitioning to and between classes, study spaces, academic services, etc.):

Personal Illness and Quarantine

Students required to quarantine must participate in courses and course-related activities remotely and must not attend face-to-face course activities. Students should notify their instructors of the quarantine requirement. Students under quarantine are expected to participate in courses and complete graded work unless they have symptoms that are too severe to participate in course activities.

Students experiencing personal injury or Illness that is too severe for the student to attend class qualify for an excused absence (See Student Rule 7, Section 7.2.2.) To receive an excused absence, students must comply with the documentation and notification guidelines outlined in Student Rule 7. While Student Rule 7, Section, indicates a medical confirmation note from the student's medical provider is preferred, for Fall 2020 only, students may use the Explanatory Statement for Absence from Class formin lieu of a medical confirmation. Students must submit the Explanatory Statement for Absence from Class within two business days after the last date of absence.