Course Syllabus

Kahlert School of Computing - Computer Science Internship


Course Information

This course provides credit for students completing a CS internship. Students are expected find and obtain their own internship that should be viewed (and presented to your employer) as an educational opportunity focusing on training and development.

There are no lectures associated with this class. The learning takes place at your place of employment with the help and interactions of your work supervisor/mentor and your teammates.

Interested students should read this Syllabus in its entirety and complete the pre-enrollment checklist (details below).

Course Staff

Instructor: Dr. Noelle Brown

  • Email: noelle.brown@utah.edu
  • Office: MEB 3120 (along the west face of the MEB 3rd floor)
  • Office Hours: by appointment
    • Feel free to email me with any questions or concerns. Please do not use Canvas Inbox.

Please call me "Professor Brown." To learn more about why this is important, here are a few resources: BBC Article, Cornell University Article, short video.

Course Goals

The purpose of the internship for credit program is to give students who have not previously worked in the computing industry a chance to embark on a structured "real-world" learning program that reinforces the student's Computing education.

The prerequisite for this course is successful completion of the software practice course: CS 3505.

🎯 Learning Objectives 🎯

The successful student will be able to:

  • create (predefined and specific) deliverables over a three month full-time work experience.
  • effectively convey information by writing concise, informative, and interesting summaries of the high-level weekly results of their internship. These essays should be formal in tone and reflect not only the accomplishments of the student, but also how these tasks are helping the student grow and develop.
  • be able to describe the attributes of an invested mentor as well as appraise the benefits of a mentor/mentee relationship in industry.
  • learn how to approach co-workers and mentors in order to form the relationships that build a successful professional network.
  • apply the necessary practices of a successful long term software development project, including task management, versioning, collaboration, meetings, Agile, etc.
  • discuss the necessary path of a long term software development project including requirements analysis, coding, testing, and deployment.
  • judge the effectiveness of the companies organization structure.
  • demonstrate specific examples showing the benefits of self motivation, professionalism, and initiative.

These learning objectives will be measured via individual writing assignments in the course as well as the midterm and final evaluations by the student's employer.

Pre-Enrollment Checklist

Before you enroll for in the SoC Internship program you will be required to fill out several forms, meet with the course instructor, and petition for admittance into the program. You should complete these steps well before starting your internship. Credit will not be given for prior work experience. Part-time internships are not allowed.

Step 1: Determine that your internship meets the qualifications

You must answer "yes" to all of the following questions:

  • Is your internship full time?
  • Is it for 10 or more weeks?
  • Are you not taking any additional classes during this time (i.e., you are working full time and that is your only responsibility)?
  • Will this be your first time in a formal software industry position?
  • Is this internship a software development position? (Some small leeway is made for Data Science or other strongly related CS internships.)
  • Does this internship meet an academic need and compliment the other CS electives you are taking? Do you have (or have a plan for) a strong broad set of CS electives?
  • Have you completed the prerequisite: CS 3505?

If you answered "yes" to all of these questions, you can proceed to Step 2.

Step 2: (Partially) Complete the Paperwork

Fill out what you can on the following forms. Note that some of these forms will need your internship advisor/mentor's signature, which you can obtain during Step 4 (after an initial meeting with the course instructor). Once enrolled in the course, will will need to submit the forms on Canvas via the appropriate "assignments." 

Step 3: Initial Meeting with the Course Instructor

To verify that the internship course is an option, you should have an initial meeting with the course instructor well before the internship begins. You can schedule the meeting via email from your university email address (do not use Canvas Inbox). During this meeting, you will:

  • show the (partially) completed forms
  • briefly discuss your proposed internship
  • review the requirements and expectations of the internship course
  • determine if the internship course is a probable "good fit"

Assuming everything looks "good", you can proceed to Step 4.

Step 4: Meet with your Employer

Take the Letter to Employer Links to an external site. and the (partially) completed Employer Agreement Links to an external site. forms to a meeting with your employer. This will provide your employer with an overview of the internship program and their responsibilities. During the meeting:

  1. Obtain a Formal Job Description from your employer outlining your responsibilities. This letter should:
    • be on company letterhead (or identifiable as having been developed by your employer).
    • outline your job responsibilities.
    • provide you with responsibilities appropriate to your educational level.
    • give you the opportunity to gain experience relevant to your career goals.
    • describe other requirements and "perks" of the job.
  2. Identify your Employer Supervisor/Mentor. Your employer must be willing to assign you a supervisor/mentor who will be responsible for your training, education, and evaluation during the internship. The supervisor should sign the sponsor agreement form.
  3. Write a plan of your internship. This should include (1) a paragraph overview and (2) four learning objectives, which are detailed below.
    • Paragraph Overview: write a paragraph or two overview describing the overview of the internship (i.e., what are the high-level duties/projects/etc. that you will be expected to accomplish over the semester). This paragraph should answer questions such as:
      • What is the main goal (or goals) and project (or projects) of the internship?
      • What technologies will you be working with? 
      • Will you be working with real users? 
      • Will you be working in the "cloud"? 
      • What deliverables will you be responsible for? 
      • What software engineering practices might you utilize (e.g., Agile, versioning, testing, QA, etc.)?
    • Learning Objectives: Based on the internship overview, identify four specific learning goals that will occur during the semester. These objectives should be achievable, task-oriented goals that relate your job to your career and your education. The four learning objectives MUST reflect new learning and new responsibility related to your career goals. Summarize each goal with a single sentence; then write a more comprehensive paragraph elaborating on each. Examples of learning objectives might be:
      • I will experience the project life cycle (from requirements analysis to deployment/maintenance) and learn about real world issues by doing [job] for [project name].
      • I will learn to work across a full web-stack including database queries, controller functionality, model building, and front-end design (UX/UI) by doing [job] for [project name].
      • I will develop documentation or a user manual for [new program/system/project].  This will involve technical writing and user surveys/interactions.
      • I will create a suite of scripted QA test cases for a [program/system/project]. 
      • I will be involved in helping create a comprehensive suite of unit tests for [system/project/etc].
      • I will create a new feature to [what does it do], along with unit tests, for project [name].
      • I will experience the requirements gathering step as our group meets with an end user to define the required functionality of [application/project/etc].
      • I will develop new API endpoints to deliver data for a new font-end application.
      • I will learn how to work on an Agile software engineering team, including attending scrum meetings, using task management software, versioning systems, and code reviews.
      • I will develop the low level driver software for a hardware device.

Important: Until the employer is able to tell you the "big picture" of what you will be doing, you will not be able to be enrolled in the internship. Further, you must identify specific Computing degree learning outcomes based on the expected work for the summer.

Step 5: Email Signed/Completed Documents to Course Instructor

The purpose of this step is to confirm that the learning outcomes for the internship meet the course requirements. The course instructor will review your objectives and approve them as is, recommend changes, or explain why your job/internship does not meet the internship program criteria.

Send the following (filled out and/or signed) forms as an attachment to an email to Prof. Brown:

  1. A completed Internship and Student Information Form Links to an external site.
  2. The signed Student Agreement Links to an external site. documenting that you agree to the terms and conditions of the internship program
  3. The signed Employer Agreement Links to an external site. documenting that your internship agrees to assist in the educational mission and provide feedback, training, and evaluation
  4. The formal job description you obtained from your employer
  5. The four learning objectives you wrote with your employer

Assuming all goes well, the course instructor will sign the necessary forms and send you an add code for the course via email. (Note: add codes are usually available a month before the start of the semester.)

Save the signed/completed forms, as you will submit these on Canvas as your first assignment in the course.

Step 6: Register for the Course

Once all of your paperwork is completed, and assuming there is still space in the course, you will receive a course add code. You can use this code to enroll, as per all of your classes, on the UofU's student web portal. A successful full-time Cooperative Education/Internship experience will be normally be awarded 3 credit hours of Computer Science elective credit (note: when signing up for the course, please make sure to sign up for the appropriate number of credit hours as well as to make sure you are taking the course for a grade, not CR/NC). Make sure to register for the approved number of credits and for a letter grade

Keep a copy of all the forms.  You will be asked to submit them as assignments in Canvas once the semester starts.

The enrollment cap for the internship course is approximately 15 students. Students will be enrolled in the course on a first-come/first-serve basis, where "first-come" means having all the outlined steps completed and approved by the course instructor. This will often require the student to meet with their internship supervisor/mentor before the internship semester begins.

Required Course Work

You are responsible for all information/assignments/etc. posted on the Canvas course page.

Weekly Discussions

Students are required to actively communicate with their peers through weekly Canvas Discussion posts and responses. 

Weekly Essays

Students will be required to complete 10 essays plus a final paper on various aspects of their internship. 

Employer Evaluations

Employers will be required to complete midterm and final evaluations of students and review the feedback with the student. It is expected that School of Computing students will perform in an exemplary manner during their entire internship and should earn high praise in the written reviews by the industry sponsor.

Grades

Grading for the course will be divided between your performance in the internship (as described by the employer evaluations) and your technical writing abilities. The following categories will be used to determine your final course grade:

  • Initial paperwork
  • Weekly discussions
  • Weekly essays
  • Midterm and final employer evaluation
  • Final essay

The grades for each category are used in a holistic evaluation of the entire internship semester. The following point system will be used:

  • (6 pts) Initial Paperwork
  • (30 pts) Weekly Essays (10 total)
  • (22 pts) Midterm and Final Employer Evaluation (11 pts each)
  • (9 pts) Final Essay

At the end of the internship, the following grading scale will be used:

  • A  : 56+  (e.g., proficient writing and excellent evaluations)
  • A- : 53-55
  • B+ : 51-52 (e.g., adequate+ writing and good evaluations or adequate writing and glowing evaluations)
  • B : 45-50 
  • B- : 37-44  (e.g., adequate writing and adequate evaluations)
  • C  : 25-36
  • E : < 24

In addition to the above points, students who fail to actively participate in weekly discussions will receive a letter step reduction in their final grade (e.g., from an B+ to a B). Students are encouraged to meet with the course instructor at the midpoint and end of the internship process to discuss their work, grade, and experience.

Please note that the above grades are a guideline and will be used in most cases. If special circumstances warrant, the instructor reserves the right to adjust the grade as appropriate. If this is the case, your final letter grade will contain a description of why the grade was adjusted up or down (usually due to problems/excellence in the internship itself) and you will be given a week to discuss the grade with the professor.

Employer Evaluations Grading Scale

This category is worth a total of 22 points.  11 points for the mid-term review and 11 points for the final review.

  • (0 pts) A failing review. (It should be noted that no University of Utah Computing student has ever received a failing review.)
  • (5 pts) An adequate evaluation. For example, when a student does what is required of them, but does not standout or go above and beyond.  
  • (8 pts) A good evaluation. For example, when a student is praised by their employer for taking initiative and/or getting extra work done, and done well: "We are happy to have [student] on our team and expect them to grow more valuable as time goes by.".
  • (11 pts) A glowing/top of class type of evaluation. For example, when an employer mentions that the student has far exceeded expectations and is functioning at or above the level of regular employees:  "[Intern] greatly exceeded the expectations for a [company] employee with less than two years of experience."

Essay Grading Scale

Your essay assignments will be graded on a three point scale. The final report is worth three normal essays.

The grading categories are:

  • (1 pt) Needs Work: indicates that there are grammatical and/or spelling errors that detract from the writing.  Alternatively, logistical mistakes such as an incorrect title or not following the template instructions can result in this score.  It can also mean a) that the information presented does not match the topic of the essay, or b) the essay does not address the "meta" issue of how the student has grown as a result of the analysis, or c) the essay is uninspiring or dull.  It is expected that many students will have multiple weekly essays in the “needs work” category, unless you spend considerable time on your essays, including multiple drafts.
  • (2 pts) Adequate: indicates the student has written a reasonable essay but it contains errors, either in form or content.  Most students who have practiced their writing and spend a reasonable amount of timing writing and proofing will land in this category or the next.
  • (3 pts) Proficient: indicates a well written essay, with one or zero grammatical/spelling errors and with a compelling narrative.  The structure should flow well throughout each paragraph and throughout the entire document.  The writing should not only cover "what" was done in a given week, but "how" you individually are growing/learning/evolving as a software engineer.  A good college level writer should be able to achieve an Adequate grade with a single draft of a paper.  A Proficient grade will often require making one (or several) editing passes. 

Please be aware that Canvas may show your grade for an adequate essay as 2/3 or 66% which it may equate to a D (or some such). Please be aware that this is an artifact of Canvas' traditional grading roots, and does not reflect the appropriate meaning for this course.  Please see the overall way grades are computed for more information.  


University Resources

The University of Utah has a number of offices to help you be successful. Please look over this collection of resources.

Americans With Disabilities Act (ADA)

Your experience in this class should not be negatively affected by any disabilities that you may have. The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities.

All written information in this course can be made available in an alternative format with prior notification to the Center for Disability & Access (CDA). CDA will work with you and the instructor to make arrangements for accommodations. Prior notice is appreciated. To read the full accommodations policy for the University of Utah, please see Section Q of the Instruction & Evaluation regulations.

In compliance with ADA requirements, some students may need to record course content. Any recordings of course content are for personal use only, should not be shared, and should never be made publicly available. In addition, recordings must be destroyed at the conclusion of the course.

If you will need accommodations in this class, or for more information about what support they provide, contact the Center for Disability & Access801-581-5020.

Safety at the U

The University of Utah values the safety of all campus community members. You will receive important emergency alerts and safety messages regarding campus safety via text message. For more safety information and to view available training resources, including helpful videos, visit safeu.utah.edu.

To report suspicious activity or to request a courtesy escort, contact Campus Police & Department of Public Safety801-585-COPS (801-585-2677).

Addressing Sexual Misconduct

Title IX makes it clear that violence and harassment based on sex and gender (which includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status, or genetic information.

If you or someone you know has been harassed or assaulted, you are encouraged to report it to university officials Title IX Coordinator & Office of Equal Opportunity and Affirmative Action: 801-581-8365 or the Office of the Dean of Students801-581-7066.To file a police report, contact the Campus Police & Department of Public Safety801-585-COPS (801-585-2677). If you do not feel comfortable reporting to authorities, the U's Victim-Survivor Advocates provide free, confidential, and trauma-informed support services to students, faculty, and staff who have experienced interpersonal violence. To privately explore options and resources available to you with an advocate, contact the Center for Student Wellness801-581-7776.

Student Wellness

Personal concerns such as stress, anxiety, relationship difficulties, depression, cross-cultural differences, and more can interfere with a student’s ability to succeed and thrive at the University of Utah. For helpful resources, contact the Center for Student Wellness or call 801-581-7776.

Veterans Center 

If you are a student veteran, the University of Utah has a Veterans Support Center located in the Union Building. Please visit their website for more information about what support they offer, a list of ongoing events, and links to outside resources. Please also let the instructor know if you need any additional support in this class for any reason.

Learners of English as an Additional/Second Language

If you are an English language learner, please be aware of several resources on campus that will support you with your language and writing development. These resources include the Writing Center, the Writing Program, and the English Language Institute. Please let the instructor know if there is any additional support you would like to discuss for this class.

School of Computing & College of Engineering Policies

Please read through the SoC undergraduate handbook and the CoE policies on appeals, adds/drops, etc.

All students are expected to maintain professional behavior, according to the University of Utah Student Code. Students should read the Code carefully and know that they are responsible for the content. 


This syllabus is meant to serve as an outline and guide for your course. Please note that your instructor may modify it to accommodate the needs of your class.