Free text answers on our December 2019 engagement instrument

1. The team engagement practices that were both used by my team and useful to the project were:

The team engagement practices that our team used was a combination of slack, notion, and google drive. Slack was helpful in organizing disucussions so no conversation was negelected because of a chat log being spammed with a lot of messages. Notion was useful for everyone to track their todo items and for team members to know about the status of parts of the project they might not be directly working on. Lastly Google Drive was useful because we could work on documents while tracking history of changes and creating assignments are simple.

One thing that really helped was when we ate together. On numerous occasions, especially when we were doing late night sprints, we would order Chinese or McDonalds or something nearby. I definitely think this helps with team cohesion and I think it is one the most important team engagement practices.

Pair, collaborative programming. Having two people operate over a discrete application functionality led to increased productivity. Questions could be answered on the spot, design challenges could be addressed with free discord, and accountability can be managed by the other team member. Meet often, over food, and work in the same space.

Regular direct and online communication, shared communication platform (discord), advance scheduling for meetings, regular ticketing and logging practices and team bonding experiences for better productivity and functionality. We planned all of this in the beginning of the semester and made sure we stuck to the plan.

Team bonding over something non-technical was suggested at the beginning of the project. We didn't take advantage of it until later on but I know I'm not just speaking for myself when I say that our group dynamic, workflow, and attitude toward the project changes towards the better after implementing team bonding.

The peer mentoring was extremely useful. It allowed for honest feedback so you could see things that your group members would like to see more of, or receive praise for the things that you've done. Also using Discord for communication on the project was amazing. We were able to make different channels for different purposes. It was also extrememly easy to hop on voice calls. This made a huge difference.

The meetings with the business school mentors were very beneficial. I think the guided discussions allowed us to set expectations and learn more about each other. CS students typically wouldn't engage in these types of discussions organically.

Team bonding outside of project really helped.

Meetings with MBA advisor that helped us align our priorities and vision for the project. We used discord, and Trello to track our project throughout the semester.

We attempted to use an agile-sprint framework. The framework was heavily discussed during team meetings, and attempts at setting agile meetings to set up the sprint for the week were performed, but not always upheld. So the framework helped give some shape to our team behaviors, which help us organize in groups for some sprints, generate appropriate channels for communication, and delegate tasks. But at times, due to worry to follow the framework faithfully, some time spent discussing the epics and their story liens might have been lost, and that time might have been best spent in some other way. However given that the class aims to emulate the professional development of a software product in a higher education semester setting, it might be the biggest reason the framework wasn't as fruitful as an actual professional instantiation of it. As a student must juggle many other courses at the same time as this course's project, which probably leads to getting some of the benefits of the framework, but not all of them, and if so, inconsistently.

Team bonding was the most useful engagement practice to our project as being able to engage with other group members outside of project hours doing something we both enjoy allowed for the establishment of trust that carried over to project hours.

constant communication over discord, and then breaking it up into different channels when there was too much.

Setting expectations. It was really useful to expectations for team members so we know who is responsible for what part, and we used Notion for task tracking.

One of the team engagement practices that were used by our team was the delegation of roles during the project. Specifically, B, C, and N were responsible for testing, C and I were responsible for a decent amount of the coding, B and J were responsible for communication, and John and I were responsible for general planning and providing guidance to the group. This process of assigning people roles was beneficial for our group because it served as our method for determining how tasks were assigned. Whenever new tasks come up during the development of our project, we knew immediately who to call on to get it done. In the long run, this resulted in key components of the program being done in as efficiently as a manner as possible because we rarely had an issue when people were stepping on each other toes or nothing was getting done.

Another team engagement practice that was beneficial was trying to find the right environment for our group to work together. To elaborate, we would often get together as a group so that we could work on our individual tasks together. This was very helpful for use because it made it incredible easy to get in contact with another group member if someone needed them to quickly do something along with generally knowing what everyone was doing at any given time. Because we had this close support and knowledge of what group members were doing, we saved a lot of development time by not waiting for members to respond to messages.

Regular meetings twice a week, getting food together Towards the end we started doing regular timeline adjustments, reporting where we were and where we expected to be.

We used discord and trello to stay up to date on what everyone was doing and keep open communication channels between group members. This helped us stay on track and continue to work hard throughout the semester, even in the middle of the development phase when motivation tends to wane and team direction tends to get fuzzy.

A combination of Slack and Hangouts, mostly Slack.

Slack Hangouts Notion PM software Email SVN

Using discord to facilitate team communication via text chat, voice chat, and file sharing. We used meetings to help encourage each other to get work done. In my opinion we were more productive when we were working together either online or in person, rather than when we were working individually.

The initial meetings we had to get to know each other and establish communication conventions went a long way to help our group to get and stay engaged.

Meeting with team members. Having discussions not just about the project, but also less stressful discussions.

We used Discord and Trello to keep the lines of communication open.

We are able to say things that is helpful for them but may not be very suitable to say it in person.

Using an effective communication platform, Slack, that allowed us to keep in touch with our team members and reach out to anyone when necessary. we regularly checked this for messages and always made sure we're available to answer other team members questions. Setting weekly meetings and sending invites to everyone through an online calendar. We had two regular meetings every week for 3 hours, on Monday and Wednesday, where we would touch base and grind out work as a team. These meetings were crucial as they kept everyone on the same page and allowed us to work as a team getting a substantial amount of work done during these meetings.

Assigning activities to team members and planning in advance also played a critical role in team engagement. Many tasks depended on the completion of other tasks and sticking to a timeline and knowing when to expect things from team members made it easier for us to communicate and interact with each other.

During the proposal phase we made a good job of having consistent meetings every Sunday. We were very good about being open to other peoples ideas and letting people explore different options - to a fault if I'm going to be honest...But we never shut anybody's ideas down and never had an individual impose their ideas as being the best...at least during the proposal phase.

We used Trello and Discord for organization and communication. We also encouraged people to talk to the team and attend meetings. The best thing we did was be constantly available for eachother.

Taking the time in the beginning to get to know each other and discuss each other's strengths and weaknesses. I feel as though this was a good way to set foundational understanding of what people were good at and were interested in.

Setting up a Slack channel for communication and creating a shared calendar. Both of these tools were very helpful throughout the semester as it helped increase communication and transparency between group members.

The three main team practices that we used that I found to be the most useful are communicating, being able to play more than one role, and supporting. Our communication is probably the best thing about our team. We really communicated well and it helped us a lot especially during the green light process. Everyone on our team for the most part had multiple roles throughout the project, including me. It was very helpful to be able to ask many people questions when I needed help. The support we had for one another also played a big part in carrying us through tough times, whether it be project related or not.

Communicating via Discord, having scrum meetings either or in person or calling in via the app as schedules permitted. I think outside of communication via discord and in person we sometimes exchanged texts person to person but I can only speak to my experience. Text was primarily used to check in with folks if they weren't normally responsive on our discord channel, and as such was a way to also make sure they were okay (first and foremost), and were able to contribute/stay engaged.

Trello was a good engagement tool that we used, and it significantly increased my awareness of personal project tasks.

I found it really useful when we discussed our personal traits per the Gallup report. Helped flesh out who would be comfortable where and weaknesses each person had.

The most helpful thing that my team did to keep me and the rest of us engaged was to leverage several project management tools. Slack was incredibly useful, it made sure that everyone on our team was always connected to one another, and we were able to have a place to instantaneously answer each other's questions, concerns, and other items that might pop up. It also offered a place for us to have discussions asynchronously and remotely. We committed to multiple grind sessions every week, and if anyone was unable to be there physically, it was great that we could be there remotely via Slack or Google Hangouts.

We also developed a culture of meticulously tracking meeting notes and tickets on Google Drive and Notion, respectively. On Google Drive, we have meeting notes for many times that we got together to discuss the product, as well as meeting notes for client meetings as well. This helps keep everyone on the same page, and creates a paper trail for us to look back on.

2. If I could make ONE change to CMSC435 to make it a great class, it would be:

If I had to make one change to the class I think I would change the version control software that we use. While subversion worked well and I found it kind of useful I think it would be better to use a more widly known program like git. I think this because our group and probably most people in the class aren't farmiliar with subversion and that adds a layer of complexity to everyone's work flow that seems to be unnecessary.

If I could make one change, I would probably try not to do research based projects. While I certainly learned a lot in the process, I feel as though the research aspect sort of took away from the software engineering goal of the project, at least for glassbox. To get more from the design process, it would help if we already knew a fair amount about what we were attempting to design. Now I understand there's always some unknowns involved with SE but I just feel like I may have gotten more from the design phase if I had a better understanding of the project to begin with.

Have it broken across n different courses. I know this isn't reasonable, but a much longer degree track for SE would be a fantastic educational opportunity for incoming students. I'm sure I'm preaching to the choir on that one. More reasonably: I think smaller teams would lead to better learning outcomes. With large teams, there almost seemed to be an allure of potential grandeur. A web app, with 7 people, how hard could it be? If my team was composed of three people instead, I think we would've picked up on our limited time resources and adapted from the outset. Then, we would actually have time to perform long, sustained and professional development.

Adding in another day in the week for lecture. I learned a lot from this course, probably more than any other course, but I definitely would have liked a bit more lecture time to dive deep into the nuances of software engineering. However, the class' main teaching tool is the project so there needs to be a good balance in lecture time and project time for students. An extra day would provide a lot of flexibiity for discussion time and project time.

Get rid of the earlier scrimmages. They felt needlessly stressful, and led to apathy toward the actual project. Although I would concede that they were helpful exercises to step out and learn something without a step-by-step guide were so used to throughout our program. Perhaps there is another way to teach this lesson, quicker, and reinforce an early start to the project.

I loved this class. It falls under my top three computer science courses I have taken. The only thing I would change may be to make the final less writing. The only reason I say this is because I am not a big fan of writing. Again, overall, this class was amazing, and my change is nit-pick if anything.

More examples of what not do. Seeing why we don't do certain things may be benificial.

Have a lab or scheduled lecture times for groups to talk. My group found it hard to meet in person so thath would have been helpful.

Not assigning a student client to your software team.

I would recommend dropping the having some deadlines by COB, as those are awkward times for a student to handle, as a student's schedule varies drastically from a professional employment one. I understand that emulating these types of deadlines in this manner might help set the framework for the project, this doesn't take into account the fact that the "business" for a student doesn't necessarily end by 5 PM, as there are late hour classes, and many other projects and Homeworks normally due at midnight. This being said about COB, SOB deadlines I find them to be more student-friendly as 7 AM aligns more with a student's "free" time.

Allow more time earlier on to meet with the group and build relationships within that group instead of switching groups.

there's alot of free reign in CMSC435 which I like, however it would be nice if we had some applications of the concepts we learned in class. Like many concepts are interwined with each other. Like "how much planning is too much", it feels more so guess work in figuring out that amount and less clear cut. We talk about signs where it could be too much, but it is still hard to concretely pinpoint it down. Which makes it rather a elusive concept despite reading and reviewing about design in class so often, actually applying these concepts were difficult.

Having all of the information in ELMS during the first month of class. In the beginning, it was really difficult to find out what assignments were due since I didn't know about the class site. This would especially be helpful for people that added the class late.

I believe the ONE change that should be made is to have blog posts emailed to students. This would go a long way towards keeping students aware of what is going on in the class, what they need to know, and what assignments and due dates are coming up. All of this could help keep students organized since they would no longer have to go out of their way to navigate to the blog to figure out what is going on in the class.

More concise lectures. There's at least a little wisdom in each of them, but also a lot of content I felt could be cut for more lab time. Perhaps you could keep the lectures as is, and maybe add a "How you can apply this to your project" slide at the end of each.

Much of the content that we went over was covered way too late for us to make use of it during the semester. Obviously something has to be taught at the end, but in particular talking about things like agile vs waterfall at the end of the semester when its too late for us to use that seems like a waste.

The first scrimmage could have a bigger focus on the planning aspect because I feel thats the part most people didn't take as seriously and it hurt during main project.

Let students choose their own problem statements during the first couple weeks instead of the scrimmage assignment. If the problem statement wasn't up to standards, then you could assign it. I would love to put a large SE project on my resume for a cause I truly care about.

If I were to take the class again I wouldn't change anything. In my opinion, the way the class is structured to have everyone learn through experience is probably the best way to frame this course in the absense of a software engineering concentration in the Computer Science major.

lab time. It is nice when every one else can verify when all members are available.

I think a design meeting with the professor would help teams focus. Also, I think a cover of best practices in code would be interesting.

Go easier on the proposal, so we can start the project earlier.

Providing a stronger template/framework for the proposals/CDR/final report. While these activities are somewhat self-explanatory, without any experience it was a challenge to envision what the result should look like.

I remember our talk that we had after our CDR and realize that this might be on of the 'foxholes' that you want us as a team to end up deep diving into. I think its a very delicate balance, but maybe especially with a group that is having a lot of trouble being cohesive in the early stages, one round of 1 on 1 meetings with you might be beneficial just to make sure we aren't entirely stranded early in the process (doesn't have to be 1 on 1 but maybe a team meeting). That being said, again, its a difficult balance as learning the hard way is extremely effective as well.

I think more talk of the practices put into the act of programming would be useful. Thats the one thing we are never exposed to in any other classes and this is the perfect class to learn about it.

I would set stricter checkpoints for what teams should have finished at certain points in the semester. There were times that if we had to have certain database things finished or a basic prototype, it would have forced us to shorten our conversations around logistical things and focus on actually failing fast.

Introduce a small project with the larger semester-long team. The first two scrimmages were a great opportunity to get a taste of what was to come in the rest of the semester. However, I think it would have been beneficial to do a small scrimmage like activity with the semester long team as well to get an idea of strengths and weaknesses in the team and the overall dynamic before jumping into a big project.

The class is already great, but if I had to make one change to the class it would be to have some of the lecture slides posted somewhere. Maybe not all of them, but some of them are very useful and it would be nice to have a place to reference them.

The one thing I could see being changed is having the CDR require acceptance testing be a part of the criteria, giving teams the expectation to plan accordingly. As such, the remainder of the course time post CDR could be used to clean up any issues found from the tests or conduct additional meaningful ones. It is hard to appropriately think of tests when the project is so high level (at proposal time), because as we learned, we tend to deviate from the proposal as more of the unknown becomes known.

Maybe do a smaller project/assignment as part of the larger final project group to establish team dynamics and roles earlier, instead of working on completely different smaller teams.

No critiques for yourself but I didn't like how the class schedule played out at the end with one week of class after Thanksgiving. Made it seem like it all fell together. More of a campus issue, I guess.

I would personally have a more visible assignments section. I understand that more specific requirements is kind of against the spirit of a class that encourages self driven thinking, but having a place where we can at least see what's coming up would be great. I remember in the beginning I had a hard time finding our project description and scrimmage information. Scouring through the blog is cool because it's interesting to read, but I shouldn't have to Control-F to find my assignments.

3. The one thing that most gets in the way of me doing my best work in CS here at UM is:

The one thing that inhibits me from doing my best work in CS at UMD would be the many different class web pages. I can be confusing when classes have different ways of communicating with the students. I know that ELMs isn't optimal for certain classes and therefore some CS classes need to have their own web pages but it can be very easy to miss assignments and announcements when they aren't with every other class.

Access to resources. Say, for instance, I want to learn more about machine learning. The best way to learn is by doing. So if I have some side projects going to further my understanding of a concept, there should be more resources available to us as students to both learn more, and implement our projects. For example, say I'm interested in quantum finance or computer vision, wouldn't it be great if the University had a giant database that had hundreds or thousands of free datasets to train on. Then if they had downloadable pdf guides or tutorials from professors or grad students that explained the basics of algo-trading or facial recognition. Even further, wouldn't it be great if we had machines with gpu's that we could train our models on.

Discussion sections. Where do discussion sections go? Is the implication that they don't teach upper level material well enough? Then why can you learn BSTs on a hands-on exercise but not the Median of Medians Algorithm or color segmentation with GMMs? That logic doesn't follow, a method of learning is either good or its not, it doesn't suddenly change when material's complexity increases in difficulty. Sitting down with a child to walk them through algebra works just as well with algebra as calculus III or algorithmic analysis (I am not proposing that teaching staff need to literally sit down one-on-one with students, although that is probably the utopian outcome). Isn't repetition the secret to long-term learning? Isn't multiple unique ways of seeing a topic linked to long-term learning? Aren't humans naturally tactile creatures who learn by doing? Then why doesn't the university want to structure their program to align towards the cutting-edge of educational science and psychology? Perhaps the implication is that you should know how to teach yourself by 351 and 400 level courses? To me, that sounds like a scapegoat answer. University needs to teach critical thinking, of course, not just to cajole students to regurgitate lecture, but surely critical thinking isn't fully taught by the end of a CS student's second year. And surely critical thinking can be accelerated, honed, and germinated in intimate settings where students with their fellow colleagues can roll up their sleeves and stick their hands in the heady muck of CS with a passionate TA. Perhaps, there is just a shortage of credentialed TAs. Maybe that is the real issue, but I still wonder, how can we have such a large, monied, and long-running university while maintaining a shortage of the very component that constitutes education, the very disseminators of higher thought themselves: educators. A football team, a football team! My university education for a football team! -- Richard III, probably.

Confidence and responsibility. Personally, I had issues with confidence through a condition that I have that induces uncontrollable tremors with mainly my fingers and voice (essential tremor). However, I am now able to put that behind me and look forward to my strengths as I have seeked treatment. Responsibility and prioritization have also been a problem for me. However, CMSC435 put me in a position to showcase what I can do when I take responsibility and prioritize things that need to be done to be successful.

Although the projects are hard, they are mostly hard because people do them last minute throughout the program. Not allowing students to learn from this behavior without otherwise fail the class is hindering many students.

It would definitely be outside distractions. Invitations to do things that I feel like I would only do when I am young typically causes me to delay completing assignments. The logic is that college life is only four years, but work is forever, so I need to enjoy the four years to the fullest.

Laziness

The school Wifi. Affordable stuff didnt work on it which meant that i could do any of that stuff on campus.

Motivation, and tied up in that is personal mental and physical health.

Probably myself, insecurities, hints of ADD and dyslexia, and depression, all of which I am attempting to improve over therapy. Also, the fact that I commute from Rockville, which has allowed me to somewhat alienate myself from campus community/experience, which incentivized me to leave campus, opposed to stay and take advantage of the many resources campus has. Although I must say that the team experience has helped me explore more of these resources and finding better workspaces in campus, rather than unproductive ones at home.

The restrictions of the campus wi-fi got the most in my way. All of the Affordable sites were blocked on campus but access to the VM was more difficult off campus. Submitting tickets also required logging in to my campus account which has a verification process that required access to a phone which I did not always have when working on the project.

possibly other non-CS classes, which means I don't get to spend more time in cs.

Motivation. Need interesting but not frustrating classes.

Simply not having enough time to work on my CS courses while also take caring of my other course responsibilities and maintaining my own health. Often times, I would get bogged down by other assignments that simply had deadlines that were coming up, and by the time I would have completed those assignments, it would be far too late into the night to realistically get any good work done.

Time commitments from other classes.

The courseload of an engineering student is such that I just don't have a lot of extra time on my hands. This prevents me from being willing to try more creative (and potentially) better solutions to cs problems because they may be more difficult or take longer to implement. In an ideal world I'd have the time to explore some of these more interesting solution paths, but I just don't have the free time floating around to waste time on something when an easier option will get me the same grade.

A lot of the interesting classes are elective and we only get to take two which means I have to take classes I'm not necessarily interested in (not this class though), which leads to a lack of motivation to learn.

Time commitments from other classes/extracurriculars/job search

The advising department. I hate the advising department. Why is it that I have to get special permission to take courses, but they still run out of seats?! This should be a project for next semester in my opinion, because this needs to change, outside of hiring more professors to teach the highly desirable classes this is the only tractable solution I see.

I need to sleep. Too many people in classes. Scheduling makes me want to die (lots of classes, few seats, stressful to play the game of signing up for classes waitlists)

Finding interesting projects and communicating with group members

Higher level concentration is limited to one field

The starter classes don't help build a good foundation. There are projects but without guidance on how to do them and a lot self learning is required. But for someone with no prior experience this is difficult.

The biggest thing I think for me is the curriculum forces you to start taking classes in realms that I am not inherently interested in. I want to be able to focus all my energy in becoming a better software developer so that I can continue to develop the software I want. I feel that it is important to build not he skills we do until 351 and 330, after that I would like more of a delineated path for a software engineer, or any specific popular field in computer science. (Like what they have with data science). A more subtler one I feel is that I think UMD has a very disconnected world of teaching, especially when we talk about the later 400X level classes. Like you mentioned, there are students here who have never even spoken to a professor that has already graduated. When you mentioned that, I thought back to my experience and realized its as almost the same. I do believe this was in large part my fault, as no professor is closed off to students, but I also feel that professors don't really try and encourage meeting outside of class. I have had a few that have and I have interacted with them when I can, but I think more interaction between professors and students would be more beneficial.

Time to fit everything in.

Realistically the desire to be well rounded socially. I've talked to many poeple about it and there is a huge struggle to maintain a healthy social life and do well in computer science. This is definitely due to the amount of time that it takes to do computer science projects. I personally think it makes sense how annoying/difficult it is considering the payout at the end, but it does offer limitations on developing soft skills.

Lack of "newer" courses taught by faculty. I think a lot of graduate level classes cover interesting topics and are pertinent to today's industry, but it's hard to take them as an undergraduate since they don't count towards any of the CS concentration areas. STICS is providing a way to get a light exposure to some more interesting topics but a full fledged, 3 credit course for some of the topics would be great to have at an undergraduate level. Class sizes should also be smaller in the 400s so students are able to build a personal connection with the professor (To at least a certain level). This class has been the smallest class I've been in and I can definitely see the difference when there isn't a disconnect between the professor and their students.

I'm assuming that this is referring to CS classes only, as I am not a CS major. One thing that gets in the way of me doing my best work here at UM is the lack of practical projects offered by the CS courses. Many of the projects don't seem to be entirely relevant and this is the only CS class that I've taken here that has any type of team projects. It seems a bit unrealistic, seeing as without this class, I most likely would have never taken a CS class that involves teamwork.

I think this course was one that promotes both working together and learning from one another. I understand that as a grading yardstick it is hard to allow group work to be a large criteria for an overall grade in some of the earlier courses, but at least having 1-2 projects be with groups OR to encourage discussion of ideas rather than scaring folks from communicating via academic dishonesty threats is a better way to go.

Large class sizes (in lower level courses) can obstruct personal instruction time and individual engagement.

My personal mental health issues like ADHD and depression. Was off my meds most of the semester due to changing insurances. So that sucked for motivation.

Myself. Although there are a few things I would change about the CS curriculum here, the biggest thing that gets in the way of my education and work is definitely my own discipline. Most classes (especially this one) are definitely not uninteresting - if they were, I probably shouldn't be in this major.

4. The obstacles that prevent me from knowing what is expected of me in this degree program are:

The CS counselors are not very helpful in giving students and understanding of what certain classes are like and what they are expecting from their students. Most of the time you have to ask someone who took that same class with the same professor and sometimes you might not have someone to go to.

It would be nice if we had more tracks other than data and cyber. I carved my own path focusing on math concepts, machine learning, and computer vision to go along with my math major. But if there was a computer vision track or software engineering track or quantum finance track or computer graphics track or database management track etc. The list goes on.

I really don't agree with curving. Maybe I don't understand it because I don't understand how education logistics work, but why are there exams that have a historical average of 50%, 40%, etc? Why tweak the grades after the ordeal instead of controlling the mapping function so that the inputs result in a reasonable output? I'm certainly not going to publicly argue with curving, because then I would be taking away my better grade on the exam, and why would I want that! But after a while of keeping your head down, it makes you wonder, if nobody says anything or does anything, then nothing is going to change and we will depart this world the same as when we arrived in it. Perhaps I am just too ignorant in the field, but it just seems strange to me that huge swaths of students (for instance in CHEM131 or CMSC351) have a 50% average for the entire semester and then jump up to a 70%, 80%, etc. Why not just skip the extra step and adopt a more realistic grading system? Is it a weed-out strategy? Okay. Do we have any proof that weed out courses weed out the right students? Which hardworking, smart, or creative students are caught in the crossfire of weeding out non-serious candidates? STEM shouldn't be easy, it shouldn't be spoon-fed, but I think we can remove those structural obstacles behind curving which will not reduce the difficulty, but represent it more accurately, and in the process increase the price-to-time-to-learning ratio. Even my father, who graduated with a mechanical engineering degree two and a half decades ago remembers the class-wide 30 point engineering curves. It just seems like a symptom of something deeper to me and confuses my expectations; if the traditional failing cutoff in our national education system (< 70%) is a passing condition in engineering or science degrees, what does that say about our engineering and science degrees? It's hard to judge myself and set expectations when the yardstick keeps changing from course to course, educator to educator, and even institution to institution.

Lack of vision or direction of what I wanted from this degree from the start. Upon entering this degree program, I had no vision on what to do with what I am learning or things to learn and try on my own to be successful. Part of this is definitely my fault as I could have been assertive and networked to see what things are commonly done. Not taking advantage of opportunities around me have created obstacles to move forward.

Comp Sci students not feeling part of the community the schoolboard boasts (certain) statistics for and charges us extra money for.

Differences in how teachers go about the same class. An example of this is in CMSC420. I took this course with Professor Meesh. At the time, the other teacher was Jason. I thought the point of the course was to not only learn more data structures, but iterate on a project throughout the entirety of the course, rather working on multiple different projects. Meesh has one huge project, MeeshQuest, and Jason had multiple smaller projects. It is hard to know what to get out of classes when they are taught so differently. And since understanding what classes will allow you to gian is difficult, it also becoems hard to know what is expected of me within the CS program.

There aren't any expected outcomes posted anywhere. I haven't seen any formal document that states what skills and experiences the typical student should have upon leaving program. Aside from completing coursework, there aren't any inherent expectations.

If we are talking about Computer Science as a whole I wouldsay that Advisors are the obstacles. My advisor was great but a lot of students complain that their advisors arent giving them the right advice.

N/A, I know what is expected of me, usually it is more a matter of doing it.

Late grading, and when courses have to slash their curriculums due to being 'behind schedule'. If its been more than a month for an assignment to be graded, or when a class happens to only release assignments' grades by the end of the semester, this hinders progress and learning reckoning. Prompt grading helps realize if my application of knowledge in the assignment is appropriate and correct, and if not helps find where I was lacking and wrong. And when the curriculum gets slashed, this makes me unweary of what had been lost, if it was relevant, or something that is of my interest in the field. I mean I could investigate some of the subjects by myself, and more often than not I do, but the subject is introduced by an educator from UMD will provide much more light on its relevance than me dabbling in the dark about a subject.

Changing requirements for specific tracks within the degree, lack of advisers, and vast differences in expectations between different classes are all obstacles.

when I struggle in CS major, I usually go to TA office hours. However, being that usually the time when I start struggling, is usually around midterms when other students struggle, it tends to be hard to have sufficient time with TA. Another thing is in some CS classes, grading on homeworks take far too long, and solutions are not released. And if we don't go over homeworks nor solutions it makes it harder to verify what I did was correct or not. This means I would have to schedule more time with TA which is much much less efficient than just releasing solutions. Overall, I feel due to limited staffing in CS department in comparison with the students in department, considerations in classes need to be taken into account how to help students the most possible outside of TA office hours with questions/solutions. Piazza is wonderful... when there is response which is not always the case. Also goes to the idea that I shouldn't work harder than needed to get answers I need. If I can get an answer to something without scheduling TA office hours or appointments and use more time, then that would be preffered.

N/A

The fact that most of the resources for CMSC 435 are separate from ELMS and Piazza. I am used to receiving notifications about what is happening in my various courses in addition to having a place where I can both easily retrieve course documents and contact one or more instructors from these two resources. As such, I was not used to having to go out of my way to accessing and logging into an additional web platform, the blog, along with having to rely entirely on in-class notes. I understand why the class's online resources are set up this way and why you do not want to post files online, but I believe trying to get back on ELMs and making course notes available online would make it easier to know what is expected.

I think that I have a pretty good idea of what's expected of me.

Insufficiently documented project descriptions grouped with hidden tests that test expected behavior that was not well documented along with insufficient numbers of TAs when the TAs don't even really know what's going on anyway is a recipe for a dreadful semester in terms of grades and mental health. 412 is by far the worst culprit of this, but other 400-levels exhibit some of these traits as well. CS is hard enough without needing to make it artificially more difficult by giving courses poor infrastructure and a lack of resources for students to find the information they need to learn the material that is expected of them.

There's isn't much interaction between advisors and students. They can feel more like a obstacle (when registering for classes) than a helpful resource the rest of the year.

We are never really told the reasoning behind taking different courses, especially the 400 levels. the wide variery that you can take makes it difficult to know which path will set us up for success

I only have trouble knowing what is expected of me when the professor doesnt outline expectations for me or make it difficult for me to know these expectations.

Classes can definitely feel to theory oriented at times, but on the flip side 131 and 132 in particular could do a better introduction to program design ideas.

Having mismatched info between TAs and the professor about the expected functionality of programs.

Nothing, I think I know where I am going along the way.

Lack of motivation. While computer science is interesting and I do enjoy coding I sometimes do assignments just for the sake of completion, without understanding them in the process because I lack motivation.

There is such a huge disconnect with industry and school that it almost seems as though the things we are learning here are simply superfluous at one point. Especially when you reach the 400 levels, where you should be able to focus more on what track you want to go to, the university forces you to take classes that have no relation and ultimately no tangible benefit to you.

Although I spent more hours on this class than any of my other classes (I think in college), it was never work that I really hated doing. I actually enjoyed our grind nights (for what its worth) as getting an application to work is one of the most rewarding experiences as a computer scientist. I also learned so much more about my industry and gained so much more confidence in my skills

Lack of detail in official documents.

The advisors do the bare minimum from what I've experienced. It has never once felt like the advisor had my best interest at heart and I've had to switch multiple advisors or see people who aren't even my main advisor if I wanted to get something done. I came to college not really knowing anything so I just went with the flow and there was not really an advisor that stepped in to help me figure things out and I myself thought I was doing all that I could.

I believe that the degree program at Maryland isn't too rigid so I get some flexibility on what I make of my experience. I don't see any real hurdles at the moment.

As a computer engineering major, the only obstacle that I think prevented me from knowing what is expected of me is the wide range of classes that are required. Other than that, I think what is expected of me is pretty clear.

I think the expectations in the degree program are laid out well online, but I feel like some of the advisors go through the advising process rather mechanically, and I know that I personally have had 4-5 different advisors over my time at UMD before sticking to one I actually found who knows/cares a bit about my learning and further, my post college goals/aspirations.

Spending more time memorizing commands to write code on paper (???????????????) than actually learning about computer science theory or programming in some lower level courses.

Final exam expectations are still a little vague but a lot of it seems to be you get what you put in which is a completely valid way of going about this.

I really can't think of much. I honestly think this major is pretty clear about what it wants from me.